nmk_python.build ================ .. py:module:: nmk_python.build .. autoapi-nested-parse:: Python package build module Classes ------- .. autoapisummary:: nmk_python.build.PackageBuilder nmk_python.build.PythonModuleResolver nmk_python.build.Installer nmk_python.build.Uninstaller nmk_python.build.EditableBuilder nmk_python.build.PythonOptionalDepsResolver nmk_python.build.PythonDevDepsResolver nmk_python.build.PythonArchiveDepsResolver nmk_python.build.DepsMetadataBuilder nmk_python.build.PythonIgnoredLockfileResolver Module Contents --------------- .. py:class:: PackageBuilder(model: nmk.model.model.NmkModel) Bases: :py:obj:`nmk.model.builder.NmkTaskBuilder` Python package builder .. py:method:: build(project_file: str, version_file: str, source_dirs: list[str], artifacts_dir: str, build_dir: str, extra_resources: dict[str, str]) Delegate to python build module, from a temporary build folder :param project_file: path to python project file :param version_file: path to generated version file :param source_dirs: list of source folders for this wheel :param artifacts_dir: output folder for built wheel :param build_dir: temporary build folder :param extra_resources: dictionary of extra resources mapping (original path -> target path) .. py:class:: PythonModuleResolver(model: nmk.model.model.NmkModel) Bases: :py:obj:`nmk.model.resolver.NmkStrConfigResolver` Python module name resolver .. py:method:: get_value(name: str) -> str Return module name from package (i.e. wheel) name .. py:class:: Installer(model: nmk.model.model.NmkModel) Bases: :py:obj:`nmk.model.builder.NmkTaskBuilder` Install built wheel in venv .. py:method:: build(name: str, wheel: str, pip_args: list[str] | None = None, to_remove: str = '') Install wheel in venv :param name: wheel name to be installed :param wheel: wheel path to be installed :param pip_args: pip command line arguments; deprecated, not used anymore :param to_remove: stamp file to be removed .. py:class:: Uninstaller(model: nmk.model.model.NmkModel) Bases: :py:obj:`nmk.model.builder.NmkTaskBuilder` Uninstall current project wheel from venv .. py:method:: build(name: str, local_deps: list[str] | None = None) Uninstall wheel from venv Note that task won't fail if the wheel is not installed :param name: wheel name to be uninstalled :param local_deps: list of workspace local dependencies patterns, used to find additional wheels to uninstall .. py:class:: EditableBuilder(model: nmk.model.model.NmkModel) Bases: :py:obj:`nmk.model.builder.NmkTaskBuilder` Install python project in editable mode .. py:method:: build(pip_args: list[str] | None = None) Install project in venv as editable package :param pip_args: pip command line arguments; deprecated, not used anymore .. py:class:: PythonOptionalDepsResolver(model: nmk.model.model.NmkModel) Bases: :py:obj:`nmk.model.resolver.NmkListConfigResolver` Python optional deps resolver .. py:method:: get_value(name: str, groups: dict[str, list[str]]) -> list[str] Turn dependency options deps dict into a merged list of dependencies .. py:class:: PythonDevDepsResolver(model: nmk.model.model.NmkModel) Bases: :py:obj:`nmk.model.resolver.NmkListConfigResolver` Python development deps resolver .. py:method:: get_value(name: str, package_deps: list[str], all_deps: list[str]) -> list[str] Return development dependencies (all deps minus package deps) .. py:class:: PythonArchiveDepsResolver(model: nmk.model.model.NmkModel) Bases: :py:obj:`nmk.model.resolver.NmkDictConfigResolver` Python archive dependencies resolver .. py:method:: get_value(name: str, archives: list[str]) -> dict[str, str] Return archive dependencies mapping (python package name -> wheel path) .. py:class:: DepsMetadataBuilder(model: nmk.model.model.NmkModel) Bases: :py:obj:`nmk.model.builder.NmkTaskBuilder` Generate python dependencies metadata file .. py:method:: build(root_name: str, local_deps: list[str]) Generate python dependencies metadata file :param root_name: name of the root package :param local_deps: list of workspace local dependencies patterns .. py:class:: PythonIgnoredLockfileResolver(model: nmk.model.model.NmkModel) Bases: :py:obj:`nmk.model.resolver.NmkListConfigResolver` Python ignored lockfile resolver .. py:method:: get_value(name: str) -> list[str] Return the list of lockfiles to be ignored, depending on the env backend and if the project is locked or not