Tasks
The nmk-python plugin defines the tasks described below.
Setup tasks
All tasks in this chapter are dependencies of the base setup task.
py.version – Python version stamping
This task creates/updates the ${pythonVersionStamp} stamp file, only when ${gitVersion} has changed. This allows incremental build depending on python version change (i.e. trigger rebuild if only version changed).
Property |
Value/description |
|---|---|
builder |
|
input |
${gitVersionStamp} file |
output |
The builder is called with the following parameters mapping:
Name |
Value |
|---|---|
version |
Note
Behavior changed in version 1.7.0
In former versions, this task was only triggered if ${pythonSrcFiles} were found.
py.project – Python project file generation
This task generates the ${pythonProjectFile} project file.
Property |
Value/description |
|---|---|
builder |
|
input |
|
output |
${pythonProjectFile} file |
The builder is called with the following parameters mapping:
Name |
Value |
|---|---|
fragment_files |
|
items |
|
plugin_name |
“nmk-python” |
Note
Behavior changed in version 1.7.0
In former versions, this task was only triggered if ${pythonSrcFiles} were found.
Build tasks
All tasks in this chapter are dependencies of the base build task.
py.format – Python code format
This task calls ruff format command to format python code of this project.
Property |
Value/description |
|---|---|
builder |
|
input |
|
output |
|
if |
${pythonSrcFiles} are found |
The builder is called with the following parameters mapping:
Name |
Value |
|---|---|
src_folders |
|
command |
format ${pythonRuffCommonExtraArgs} ${pythonRuffFormatExtraArgs} |
py.fix – Python code fix
This task calls ruff check --fix-only command to fix python code of this project.
See ${pythonAutoFixRules} config item to define rules categories to auto-fix.
Property |
Value/description |
|---|---|
builder |
|
input |
|
output |
|
if |
${pythonSrcFiles} are found |
The builder is called with the following parameters mapping:
Name |
Value |
|---|---|
src_folders |
|
command |
check –fix-only –select ${pythonAutoFixJoinedRules} ${pythonRuffCommonExtraArgs} ${pythonRuffFixExtraArgs} |
Added in version 1.2
py.analyze – Python code analysis
This task calls ruff check command to analyze python code of this project.
Property |
Value/description |
|---|---|
builder |
|
input |
|
output |
|
if |
${pythonSrcFiles} are found |
The builder is called with the following parameters mapping:
Name |
Value |
|---|---|
src_folders |
|
command |
check ${pythonRuffCommonExtraArgs} ${pythonRuffCheckExtraArgs} |
py.editable – Python project install in editable mode
This task installs the project in editable mode in the venv.
Property |
Value/description |
|---|---|
builder |
|
input |
${pythonProjectFile} file |
output |
|
if |
${pythonSrcFiles} are found |
py.deps – Generate Python dependencies metadata
This task generates the ${pythonDepsMetadata} metadata json file, containing all current project dependencies versions (indexed by name).
Dependencies are splitted between internal and external ones:
internal dependencies are all ones matching with any pattern defined in ${pythonLocalDepsPatterns} (if any)
external dependencies are all the other ones
Property |
Value/description |
|---|---|
builder |
|
input |
${pythonProjectFile} file |
output |
|
if |
${pythonSrcFiles} are found |
The builder is called with the following parameters mapping:
Name |
Value |
|---|---|
root_name |
|
local_deps |
Added in version 1.8.0
Tests tasks
All tasks in this chapter are dependencies of the base tests task.
py.tests – Run Python tests
This task calls pytest command to execute python tests.
Property |
Value/description |
|---|---|
builder |
|
if |
${pythonTestSrcFiles} are found |
The builder is called with the following parameters mapping:
Name |
Value |
|---|---|
pytest_args |
Package tasks
All tasks in this chapter are dependencies of the base package task.
py.build – Build Python wheel
This task use the python build module to handle the wheel build.
Property |
Value/description |
|---|---|
builder |
|
input |
|
output |
${pythonWheel} file |
if |
${pythonSrcFiles} are found |
The builder is called with the following parameters mapping:
Name |
Value |
|---|---|
project_file |
|
version_file |
|
source_dirs |
|
artifacts_dir |
|
build_dir |
|
extra_resources |
Install tasks
All tasks in this chapter are dependencies of the base install task.
py.install – Install Python wheel
This task installs the built python wheel in the project venv.
Property |
Value/description |
|---|---|
builder |
|
input |
${pythonWheel} file |
output |
|
if |
${pythonSrcFiles} are found |
The builder is called with the following parameters mapping:
Name |
Value |
|---|---|
name |
|
wheel |
${pythonWheel} |
to_remove |
The builder also removes the ${pythonEditableStamp} stamp file, to force installing the project in editable mode again on the next build.
Clean tasks
All tasks in this chapter are dependencies of the base clean task.
py.uninstall – Uninstall Python wheel and local dependencies
This task uninstalls the built python wheel and its local dependencies from the project venv.
Property |
Value/description |
|---|---|
builder |
|
if |
${pythonSrcFiles} are found |
The builder is called with the following parameters mapping:
Name |
Value |
|---|---|
name |
|
local_deps |
${pythonLocalDepsPatterns} |