vmklib.tasks.python package#

Submodules#

vmklib.tasks.python.build module#

A module for Python-package building tasks.

class vmklib.tasks.python.build.PythonBuild(name: str, *args, execute: Callable[[Dict[str, Dict[str, Any]], Dict[str, Any]], Coroutine[Any, Any, bool]] = None, log: Logger = None, timer: Timer = None, target: Target = None, **kwargs)[source]#

Bases: ConcreteOnceMixin, SubprocessLogMixin

Build a Python package.

async run(inbox: Dict[str, Dict[str, Any]], outbox: Dict[str, Any], *args, **kwargs) bool[source]#

A task for building a Python package.

vmklib.tasks.python.build.register(manager: TaskManager, project: str, cwd: Path, substitutions: Dict[str, str]) bool[source]#

Register package building tasks to the manager.

vmklib.tasks.python.datazen module#

A module for datazen tasks.

class vmklib.tasks.python.datazen.DatazenTask(name: str, *args, execute: Callable[[Dict[str, Dict[str, Any]], Dict[str, Any]], Coroutine[Any, Any, bool]] = None, log: Logger = None, timer: Timer = None, target: Target = None, **kwargs)[source]#

Bases: SubprocessLogMixin

A task for running datazen commands.

default_requirements: _Set[str] = {'python-install-datazen', 'venv'}#
async run(inbox: Dict[str, Dict[str, Any]], outbox: Dict[str, Any], *args, **kwargs) bool[source]#

Create or update a project’s virtual environment.

vmklib.tasks.python.datazen.register(manager: TaskManager, project: str, cwd: Path, substitutions: Dict[str, str]) bool[source]#

Register datazen tasks to the manager.

vmklib.tasks.python.docs module#

A module for Python documentation tasks.

class vmklib.tasks.python.docs.PydepsTask(name: str, *args, execute: Callable[[Dict[str, Dict[str, Any]], Dict[str, Any]], Coroutine[Any, Any, bool]] = None, log: Logger = None, timer: Timer = None, target: Target = None, **kwargs)[source]#

Bases: SubprocessLogMixin

A task for running pydeps.

default_requirements: _Set[str] = {'python-install-pydeps', 'venv'}#
async run(inbox: Dict[str, Dict[str, Any]], outbox: Dict[str, Any], *args, **kwargs) bool[source]#

Create or update a project’s virtual environment.

vmklib.tasks.python.docs.register(manager: TaskManager, project: str, cwd: Path, substitutions: Dict[str, str]) bool[source]#

Register documentation tasks to the manager.

vmklib.tasks.python.lint module#

A module for registering Python linting tasks.

class vmklib.tasks.python.lint.PythonLinter(name: str, *args, execute: Callable[[Dict[str, Dict[str, Any]], Dict[str, Any]], Coroutine[Any, Any, bool]] = None, log: Logger = None, timer: Timer = None, target: Target = None, **kwargs)[source]#

Bases: SubprocessLogMixin

A task for running a Python linter.

default_requirements: _Set[str] = {'venv'}#
linter_args: dict[str, list[str]] = {'ruff': ['check']}#
async run(inbox: Dict[str, Dict[str, Any]], outbox: Dict[str, Any], *args, **kwargs) bool[source]#

Run a Python linter.

static source_args(cwd: Path, project: str, **kwargs) List[str][source]#

Get Python sources within a package.

vmklib.tasks.python.lint.register(manager: TaskManager, project: str, cwd: Path, substitutions: Dict[str, str]) bool[source]#

Register Python linting tasks to the manager.

vmklib.tasks.python.package module#

A module implementing a task for installing individual packages.

class vmklib.tasks.python.package.PythonPackage(name: str, *args, execute: Callable[[Dict[str, Dict[str, Any]], Dict[str, Any]], Coroutine[Any, Any, bool]] = None, log: Logger = None, timer: Timer = None, target: Target = None, **kwargs)[source]#

Bases: ConcreteOnceMixin, SubprocessLogMixin

A task for installing a single Python package.

default_requirements: _Set[str] = {'venv', 'vmklib.init'}#
async run(inbox: Dict[str, Dict[str, Any]], outbox: Dict[str, Any], *args, **kwargs) bool[source]#

Create or update a project’s virtual environment.

vmklib.tasks.python.package.register(manager: TaskManager, project: str, cwd: Path, substitutions: Dict[str, str]) bool[source]#

Register Python package tasks to the manager.

vmklib.tasks.python.release module#

A module implementing a release task for Python projects.

vmklib.tasks.python.release.register(manager: TaskManager, project: str, cwd: Path, substitutions: Dict[str, str]) bool[source]#

Register Python package tasks to the manager.

vmklib.tasks.python.sa module#

A module for Python static-analysis tasks.

vmklib.tasks.python.sa.register(manager: TaskManager, project: str, cwd: Path, substitutions: Dict[str, str]) bool[source]#

Register static-analysis tasks to the manager.

vmklib.tasks.python.test module#

A module for Python unit testing tasks.

class vmklib.tasks.python.test.PythonTester(name: str, *args, execute: Callable[[Dict[str, Dict[str, Any]], Dict[str, Any]], Coroutine[Any, Any, bool]] = None, log: Logger = None, timer: Timer = None, target: Target = None, **kwargs)[source]#

Bases: SubprocessLogMixin

A task for running pytest.

default_requirements: _Set[str] = {'venv'}#
async run(inbox: Dict[str, Dict[str, Any]], outbox: Dict[str, Any], *args, **kwargs) bool[source]#

Run pytest against the project.

vmklib.tasks.python.test.register(manager: TaskManager, project: str, cwd: Path, substitutions: Dict[str, str]) bool[source]#

Register unit testing tasks to the manager.

vmklib.tasks.python.yaml module#

A module implementing a task for running yamllint.

class vmklib.tasks.python.yaml.Yamllint(name: str, *args, execute: Callable[[Dict[str, Dict[str, Any]], Dict[str, Any]], Coroutine[Any, Any, bool]] = None, log: Logger = None, timer: Timer = None, target: Target = None, **kwargs)[source]#

Bases: SubprocessLogMixin

A task for running a YAML linter on project source(s).

default_requirements: _Set[str] = {'python-install-yamllint', 'venv'}#
async run(inbox: Dict[str, Dict[str, Any]], outbox: Dict[str, Any], *args, **kwargs) bool[source]#

Create or update a project’s virtual environment.

vmklib.tasks.python.yaml.register(manager: TaskManager, project: str, cwd: Path, substitutions: Dict[str, str]) bool[source]#

Register YAML linting tasks to the manager.

Module contents#

Utilities for working with Python.

vmklib.tasks.python.python_entry(version: str = None) str[source]#

Attempt to get a Python entry-point as a string.

vmklib.tasks.python.python_version() str[source]#

Get the version of Python to use.

vmklib.tasks.python.venv_bin(cwd: Path | str | None, program: str = None, version: str = None) Path[source]#

Get the path to a virtual environment’s script directory.

vmklib.tasks.python.venv_dir(cwd: Path | str | None, version: str = None) Path[source]#

Get the path for a virtual environment to use.

vmklib.tasks.python.venv_name(version: str = None) str[source]#

Get the name for a virtual environment to use.