dev engine

Show or update the CLI runtime engine version

Command version
0.0.0
Command configuration
cli:cli.engine@0.0.0

Arguments

ArgumentTypeRequiredDefaultDescription
--updatestringNoRequested engine version (for example: python3.12)
--force, --no-forcebooleanNofalseForce reinstall even when version already matches

It also takes the global arguments.

Output

It answers with a engine.Output.

Types

engine.Output

One of the types engine.report, engine.updated, engine.updateFailed, engine.invalidRequest.

engine.report

FieldTypeRequiredDefaultDescription
statusKindenum one of reportYesWhich answer this is: report, the configured engine beside the Python detected, with nothing changed
configuredVersionstringYesThe engine the runtime configuration states, as python and a version; python3 where it states none
activeDetectedVersionstringNoThe Python found on PATH, as python<major>.<minor>.<patch>; absent where none was found. Always the same value as detectedVersion
detectedVersionstringNoThe Python found on PATH, as python<major>.<minor>.<patch>; absent where none was found
executablestringNoPath of the Python executable that was detected; absent where none was found
updateAppliedbooleanYesAlways false in a report: no update was attempted
autoUpdatedbooleanYesAlways false in a report: nothing was installed

engine.updated

FieldTypeRequiredDefaultDescription
statusKindenum one of updatedYesWhich answer this is: updated, the requested engine is the Python detected and is written to the runtime configuration
requestedVersionstringYesThe engine the update moved to, as python and a version in lower case: the one --update named, or the configured engine where the update was automatic
persistedVersionstringNoThe engine written to the runtime configuration as engine, which is the requested one
activeDetectedBeforeVersionstringNoThe Python found on PATH before the update, as python<major>.<minor>.<patch>; absent where none was found and from an automatic update
activeDetectedVersionstringNoThe Python found on PATH after the update, as python<major>.<minor>.<patch>. Always the same value as detectedVersion
detectedVersionstringNoThe Python found on PATH after the update, as python<major>.<minor>.<patch>
executablestringNoPath of the Python executable detected after the update
installedbooleanYesWhether this run installed and pinned Python and synced dependencies; false where the requested version was already the one detected and --force was not given
updateAppliedbooleanYesAlways true in this answer, whether or not anything had to be installed
autoUpdatedbooleanYesWhether the update was automatic: no --update was given, and the Python detected was older than the configured engine
forcebooleanYesWhether --force was given; always false for an automatic update
updateLoglist[any]No[]One entry per step the update ran, in order -- uv python install, uv python pin, uv sync --group dev -- each with its context, command, exitCode, stdout and stderr; a single update skipped entry where nothing had to be installed
configPathstringNoPath of the runtime configuration file the engine was written to

engine.updateFailed

FieldTypeRequiredDefaultDescription
statusKindenum one of update-failedYesWhich answer this is: update-failed, a step of the update failed (ENGINE_UPDATE_FAILED) or it finished and the requested version is still not the Python detected (PYTHON_VERSION_MISMATCH). The runtime configuration is left as it was
requestedVersionstringNoThe engine the update was moving to, as python and a version in lower case: the one --update named, or the configured engine where the update was automatic
activeDetectedBeforeVersionstringNoThe Python found on PATH before the update, as python<major>.<minor>.<patch>; absent where none was found and from an automatic update
activeDetectedVersionstringNoThe Python found on PATH when the update ended, as python<major>.<minor>.<patch>: the one found before it where a step failed. Absent where none was found. Always the same value as detectedVersion
detectedVersionstringNoThe Python found on PATH when the update ended, as python<major>.<minor>.<patch>: the one found before it where a step failed. Absent where none was found
executablestringNoPath of the Python executable that was detected; absent where none was found
installedbooleanNoWhether the install, pin and sync all ran to their end: false where one of them failed, true where they finished and the requested version was still not the one detected
updateAppliedbooleanNotrue where an update was attempted; absent where an update asked for with --update ran to its end and the requested version was still not the one detected
autoUpdatedbooleanNotrue where the update was automatic: no --update was given, and the Python detected was older than the configured engine. Absent where --update asked for it
forcebooleanNoWhether --force was given; false for an automatic update
updateLoglist[any]No[]One entry per step the update ran, in order, each with its context, command, exitCode, stdout and stderr; a step that failed is the last. Empty where an update asked for with --update ran to its end and the requested version was still not the one detected

engine.invalidRequest

FieldTypeRequiredDefaultDescription
statusKindenum one of invalid-requestYesWhich answer this is: invalid-request, the value given to --update is no engine version (ENGINE_VERSION_INVALID) and nothing was changed
requestedVersionstringYesThe value given to --update, as written