nmk_base.venvbuilder

Python module for nmk-base venv tasks.

Classes

ExeResolver

Resolver class for venvPython config item

BinResolver

Resolver class for venvBin config item

FileDepsContentResolver

Resolver class for venvFileDepsContent config item

VenvUpdateBuilder

Builder for py.venv task

Module Contents

class nmk_base.venvbuilder.ExeResolver(model: nmk.model.model.NmkModel)

Bases: nmk.model.resolver.NmkStrConfigResolver

Resolver class for venvPython config item

get_value(name: str) str

Resolution logic: returns sys.executable

class nmk_base.venvbuilder.BinResolver(model: nmk.model.model.NmkModel)

Bases: nmk.model.resolver.NmkStrConfigResolver

Resolver class for venvBin config item

get_value(name: str) str

Resolution logic: returns sys.executable parent folder

class nmk_base.venvbuilder.FileDepsContentResolver(model: nmk.model.model.NmkModel)

Bases: nmk.model.resolver.NmkListConfigResolver

Resolver class for venvFileDepsContent config item

get_value(name: str) list[str]

Resolution logic: merge content from files listed in venvFileDeps config item

class nmk_base.venvbuilder.VenvUpdateBuilder(model: nmk.model.model.NmkModel)

Bases: nmk.model.builder.NmkTaskBuilder

Builder for py.venv task

build(pip_args: str = '', requirements_updated: bool = False, is_ci: bool = False)

Build logic for py.venv task

This logic depends on the backend used: - if the backend is not mutable, it just warns the user that requirements have been updated (+exit properly) - if the backend is mutable, it simply calls backend upgrade logic to apply changes, In all cases, all dependencies are listed in secondary output file.

Parameters:
  • pip_args – Extra arguments to be used when invoking pip install; deprecated, not used anymore

  • requirements_updated – State if requirements file content was actually updated