nmk_python.build

Python package build module

Classes

PackageBuilder

Python package builder

PythonModuleResolver

Python module name resolver

Installer

Install built wheel in venv

Uninstaller

Uninstall current project wheel from venv

EditableBuilder

Install python project in editable mode

PythonOptionalDepsResolver

Python optional deps resolver

Module Contents

class nmk_python.build.PackageBuilder(model: nmk.model.model.NmkModel)

Bases: nmk.model.builder.NmkTaskBuilder

Python package builder

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

Parameters:
  • project_file – path to python project file

  • version_file – path to generated version file

  • source_dirs – list of source folders for this wheel

  • artifacts_dir – output folder for built wheel

  • build_dir – temporary build folder

  • extra_resources – dictionary of extra resources mapping (original path -> target path)

class nmk_python.build.PythonModuleResolver(model: nmk.model.model.NmkModel)

Bases: nmk.model.resolver.NmkStrConfigResolver

Python module name resolver

get_value(name: str) str

Return module name from package (i.e. wheel) name

class nmk_python.build.Installer(model: nmk.model.model.NmkModel)

Bases: nmk_base.venvbuilder.VenvUpdateBuilder

Install built wheel in venv

build(name: str, pip_args: list[str], to_remove: str)

Install wheel in venv

Parameters:
  • name – wheel name to be installed

  • pip_args – pip command line arguments

  • to_remove – stamp file to be removed

class nmk_python.build.Uninstaller(model: nmk.model.model.NmkModel)

Bases: nmk.model.builder.NmkTaskBuilder

Uninstall current project wheel from venv

build(name: str)

Uninstall wheel from venv

Note that task won’t fail if the wheel is not installed

Parameters:

name – wheel name to be uninstalled

class nmk_python.build.EditableBuilder(model: nmk.model.model.NmkModel)

Bases: nmk.model.builder.NmkTaskBuilder

Install python project in editable mode

build(pip_args: list[str])

Install project in venv as editable package

Parameters:

pip_args – pip command line arguments

class nmk_python.build.PythonOptionalDepsResolver(model: nmk.model.model.NmkModel)

Bases: nmk.model.resolver.NmkListConfigResolver

Python optional deps resolver

get_value(name: str, groups: dict[str, list[str]]) list[str]

Turn dependency options deps dict into a merged list of dependencies