# skbuild.command package

Collection of objects allowing to customize behavior of standard distutils and setuptools commands.

class skbuild.command.CommandMixinProtocol(*args, **kwargs)

  Bases: `Protocol`

  Protocol for commands that use CMake.

  build_base: str
  distribution: Distribution
  finalize_options(*args: object, **kwargs: object) → None
  install_lib: str | None
  install_platlib: str
  outfiles: list[str]

class skbuild.command.set_build_base_mixin

  Bases: `object`

  Mixin allowing to override distutils and setuptools commands.

  finalize_options(*args: object, **kwargs: object) → None

    Override built-in function and set a new build_base.

## Submodules

## skbuild.command.bdist module

This module defines custom implementation of `bdist` setuptools command.

class skbuild.command.bdist.bdist(dist: Distribution)

  Bases: `set_build_base_mixin`, `bdist`

  Custom implementation of `bdist` setuptools command.

## skbuild.command.bdist_wheel module

This module defines custom implementation of `bdist_wheel` setuptools command.

class skbuild.command.bdist_wheel.bdist_wheel(dist: Distribution, **kw)

  Bases: `set_build_base_mixin`, `bdist_wheel`

  Custom implementation of `bdist_wheel` setuptools command.

  run(*args: object, **kwargs: object) → None

    Handle –hide-listing option.

  write_wheelfile(wheelfile_base: str, _: None = None) → None

    Write `skbuild <version>` as a wheel generator. See PEP-0427 for more details.

## skbuild.command.build module

This module defines custom implementation of `build` setuptools command.

class skbuild.command.build.build(dist: Distribution, **kw)

  Bases: `set_build_base_mixin`, `build`

  Custom implementation of `build` setuptools command.

## skbuild.command.build_ext module

This module defines custom implementation of `build_ext` setuptools command.

class skbuild.command.build_ext.build_ext(dist: Distribution, **kw)

  Bases: `set_build_base_mixin`, `build_ext`

  Custom implementation of `build_ext` setuptools command.

  copy_extensions_to_source() → None

    This function is only-called when doing inplace build.

    It is customized to ensure the extensions compiled using distutils are copied back to the source tree instead of the `skbuild.constants.CMAKE_INSTALL_DIR()`.

## skbuild.command.build_py module

This module defines custom implementation of `build_py` setuptools command.

class skbuild.command.build_py.build_py(dist: Distribution, **kw)

  Bases: `set_build_base_mixin`, `build_py`

  Custom implementation of `build_py` setuptools command.

  build_module(module: str | list[str] | tuple[str, ...], module_file: str, package: str) → None

    Handle –hide-listing option.

    Increments `outfiles_count`.

  find_modules() → list[tuple[str, str, str]]

    Finds individually-specified Python modules, ie. those listed by module name in ‘self.py_modules’. Returns a list of tuples (package, module_base, filename): ‘package’ is a tuple of the path through package-space to the module; ‘module_base’ is the bare (no packages, no dots) module name, and ‘filename’ is the path to the “.py” file (relative to the distribution root) that implements the module.

  initialize_options() → None

    Handle –hide-listing option.

    Initializes `outfiles_count`.

  run(*args: object, **kwargs: object) → None

    Handle –hide-listing option.

    Display number of copied files. It corresponds to the value of `outfiles_count`.

## skbuild.command.clean module

This module defines custom implementation of `clean` setuptools command.

class skbuild.command.clean.clean(dist: Distribution, **kw)

  Bases: `set_build_base_mixin`, `clean`

  Custom implementation of `clean` setuptools command.

  run() → None

    After calling the super class implementation, this function removes the directories specific to scikit-build.

## skbuild.command.egg_info module

This module defines custom implementation of `egg_info` setuptools command.

class skbuild.command.egg_info.egg_info(dist: Distribution, **kw)

  Bases: `set_build_base_mixin`, `egg_info`

  Custom implementation of `egg_info` setuptools command.

  finalize_options(*args: Any, **kwargs: Any) → None

    Override built-in function and set a new build_base.

## skbuild.command.generate_source_manifest module

This module defines custom `generate_source_manifest` setuptools command.

class skbuild.command.generate_source_manifest.generate_source_manifest(dist: Distribution)

  Bases: `set_build_base_mixin`, `Command`

  Custom setuptools command generating a MANIFEST file if not already provided.

  description = 'generate source MANIFEST'
  finalize_options(*args: object, **kwargs: object) → None

    Set final values for all the options that this command supports.

  initialize_options() → None

    Set default values for all the options that this command supports.

  run() → None

    If neither a MANIFEST, nor a MANIFEST.in file is provided, and we are in a git repo, try to create a MANIFEST.in file from the output of git ls-tree –name-only -r HEAD.

    We need a reliable way to tell if an existing MANIFEST file is one we’ve generated. distutils already uses a first-line comment to tell if the MANIFEST file was generated from MANIFEST.in, so we use a dummy file, _skbuild_MANIFEST, to avoid confusing distutils.

## skbuild.command.install module

This module defines custom implementation of `install` setuptools command.

class skbuild.command.install.install(dist: Distribution)

  Bases: `set_build_base_mixin`, `install`

  Custom implementation of `install` setuptools command.

  finalize_options(*args: Any, **kwargs: Any) → None

    Ensure that if the distribution is non-pure, all modules are installed in `self.install_platlib`.

    Note

    setuptools.dist.Distribution.has_ext_modules() is overridden in `setuptools_wrap.setup()`.

## skbuild.command.install_lib module

This module defines custom implementation of `install_lib` setuptools command.

class skbuild.command.install_lib.install_lib(dist: Distribution, **kw)

  Bases: `set_build_base_mixin`, `install_lib`

  Custom implementation of `install_lib` setuptools command.

  install() → list[str]

    Handle –hide-listing option.

## skbuild.command.install_scripts module

This module defines custom implementation of `install_scripts` setuptools command.

class skbuild.command.install_scripts.install_scripts(dist: Distribution, **kw)

  Bases: `set_build_base_mixin`, `install_scripts`

  Custom implementation of `install_scripts` setuptools command.

  run(*args: Any, **kwargs: Any) → None

    Handle –hide-listing option.

## skbuild.command.sdist module

This module defines custom implementation of `sdist` setuptools command.

class skbuild.command.sdist.sdist(dist: Distribution, **kw)

  Bases: `set_build_base_mixin`, `sdist`

  Custom implementation of `sdist` setuptools command.

  make_archive(base_name: str, format: str, root_dir: str | None = None, base_dir: str | None = None, owner: str | None = None, group: str | None = None) → str

    Handle –hide-listing option.

  make_release_tree(base_dir: str, files: Sequence[str]) → None

    Handle –hide-listing option.

  run(*args: object, **kwargs: object) → None

    Force `egg_info.egg_info` command to run.

## skbuild.command.test module