Internal API#

Package creation#

Config#

Cmeel configuration.

Parse various configuration files and environment variables.

class cmeel.config.CmeelConfig#

Cmeel config.

get_configure_args(conf: Dict[str, Any], install: Path | str, configure_args: List[str], configure_env: Dict[str, str], run_tests: bool) List[str]#

Get CMake initial arguments.

get_configure_env() Dict[str, str]#

Get CMake initial environment.

get_test_env() Dict[str, str]#

Get test environment.

Build#

PEP 517 & 660 entry points.

cmeel.build.build_editable(wheel_directory, config_settings=None, metadata_directory=None) str#

Build an editable wheel: main entry point for PEP 660.

cmeel.build.build_sdist(sdist_directory, config_settings=None) str#

Generate a gzipped distribution tarball.

cmeel.build.build_wheel(wheel_directory, config_settings=None, metadata_directory=None) str#

Build a binary wheel: main entry point for PEP 517.

Run#

Cmeel run.

cmeel.run.cmeel_run()#

Wrap an executable inside cmeel prefix.

Metadata#

Metadata generation from pyproject conf.

ref. PEP 621, superseeded by https://packaging.python.org/en/latest/specifications/declaring-project-metadata/

cmeel.metadata.get_deps(conf: Dict[str, Any], build_deps: List[str]) List[str]#

Parse ‘dependencies’ keys.

cmeel.metadata.get_keywords(conf: Dict[str, Any]) List[str]#

Parse ‘keyword’ key.

cmeel.metadata.get_license(conf: Dict[str, Any], dist_info: Path | None) List[str]#

Parse ‘license’ and ‘license-files’ keys.

cmeel.metadata.get_people(conf: Dict[str, Any], key: str) List[str]#

Parse ‘authors’ and ‘maintainers’ keys.

cmeel.metadata.get_readme(conf: Dict[str, Any]) List[str]#

Parse ‘readme’ key.

cmeel.metadata.get_urls(conf: Dict[str, Any]) List[str]#

Parse ‘urls’ keys.

cmeel.metadata.metadata(conf, requires: List[str], dist_info: Path | None = None) List[str]#

Return the lines which should go in the METADATA / PKG-INFO file.

Module usage#

Environment#

Tools to help environment management.

cmeel.env.add_paths_arguments(subparsers)#

Append paths commands for argparse.

cmeel.env.get_paths(cmd: str, prepend: bool = False, **kwargs) str#

Get the paths needed by the user.

Docker#

Build a project with cmeel in a container.

cmeel.docker.add_docker_arguments(subparsers)#

Append docker command for argparse.

cmeel.docker.docker_build(image: str, python: str, update: bool, cache: bool, upgrade: bool, cwd: str, env: List[str] | None, cmeel_env: bool, **kwargs)#

Build a project with cmeel in a container.