skbuild.utils package

This module defines functions generally useful in scikit-build.

class skbuild.utils.ContextDecorator(**kwargs)[source]

Bases: object

A base class or mixin that enables context managers to work as decorators.

class skbuild.utils.PythonModuleFinder(packages, package_dir, py_modules, alternative_build_base=None)[source]

Bases: skbuild.utils.NewStyleClass

Convenience class to search for python modules.

This class is based on distutils.command.build_py.build_by and provides a specialized version of find_all_modules().

check_module(module, module_file)[source]

Return True if module_file belongs to module.


Compute the list of all modules that would be built by project located in current directory, whether they are specified one-module-at-a-time py_modules or by whole packages packages.

By default, the function will search for modules in the current directory. Specifying project_dir parameter allow to change this.

Return a list of tuples (package, module, module_file).

find_package_modules(package, package_dir)[source]

Temporally prepend the alternative_build_base to module_file. Doing so will ensure modules can also be found in other location (e.g skbuild.constants.CMAKE_INSTALL_DIR).

skbuild.utils.distribution_hide_listing(*args, **kwds)[source]

Given a distribution, this context manager temporarily sets distutils threshold to WARN if --hide-listing argument was provided.

It yields True if --hide-listing argument was provided.


Ensure directory path exists. If needed, parent directories are created.

Adapted from


distutils/setuptools command classes are old-style classes, which won’t work with mixins.

To work around this limitation, we dynamically convert them to new style classes by creating a new class that inherits from them and also <object>. This ensures that <object> is always at the end of the MRO, even after being mixed in with other classes.


This function parses template file (usually

class skbuild.utils.push_dir(directory=None, make_directory=False)[source]

Bases: skbuild.utils.ContextDecorator

Context manager to change current directory.


Return a version of path where all separator are os.sep


Return a version of path where all separator are /