Runner
runner
Subprocess runner that targets the audited project's venv.
When auditing an external project, tools (ruff, mypy, pytest, etc.) must execute in that project's virtual environment, not axm-audit's own.
run_in_project(cmd, project_path, *, timeout=_DEFAULT_TIMEOUT, with_packages=None, **kwargs)
Run a command in the target project's environment.
Locates the nearest .venv/ — either in project_path itself
or in an ancestor directory (for uv monorepo workspace members).
Uses uv run --directory to execute the command within the
correct environment. Falls back to running the command directly
with cwd set when no virtual environment is found.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
cmd
|
list[str]
|
Command and arguments to run. |
required |
project_path
|
Path
|
Root of the project being audited. |
required |
timeout
|
int
|
Maximum seconds to wait before killing the subprocess. Defaults to 300 (5 minutes). |
_DEFAULT_TIMEOUT
|
with_packages
|
list[str] | None
|
Optional packages to inject at runtime via
|
None
|
**kwargs
|
Any
|
Extra arguments forwarded to |
{}
|
Returns:
| Type | Description |
|---|---|
CompletedProcess[str]
|
CompletedProcess result. On timeout, returns a synthetic result |
CompletedProcess[str]
|
with |