Install AMMM4

Install from an authorised checkout or supplied wheel. The package requires Python 3.12 or newer; the repository’s validation commands select Linux and Python 3.12.11. Compatibility declarations are broader than that tested profile.

From the repository root:

uv sync --locked
uv run --no-sync python -c "from ammm.mmm import MMM; print(MMM.__name__)"

Use uv sync --locked --extra test --extra lint for development. Keep required extras on subsequent sync commands, because a new sync can remove extras that are no longer requested.

ExtraWhen needed
holidaysPrepare a new Prophet-derived holiday component
dagOptional causal graph tools; some dependencies require system libraries
pieThe separate PIE incrementality model
plotlyInteractive plots
mlflowMLflow integration
testTest suite and optional sampler integrations
lintLocal lint, formatting and typing tools

NetCDF persistence dependencies are included in the base installation. The Python quickstart explicitly selects the PyMC sampler. Other samplers need their own installed dependencies; a sampler name in YAML does not install one.

The supplied container is a Jupyter environment. Follow the container instructions; the image does not include runme.py. For the repository runner, use the checkout directly.

AI credentials are unnecessary for fitting. If you deliberately enable a live advisor, configure the provider key described in the advisor guide.

Resolve installation and import failures

Use the same checkout and locked environment as the command you intend to run. Check uv run --no-sync python -V and the imported package path before assuming an import comes from this repository. The package and supported extras are specified in pyproject.toml:8 and pyproject.toml:25.

FailureAction
ammm cannot be importedRun the installation command from the authorised checkout; use uv run with that environment rather than an unrelated system Python
Optional prophet, PIE, Plotly or MLflow dependency missingSync the relevant extra and retain all other required extras in the same command; see the table above
A selected sampler cannot import its backendInstall the corresponding declared dependency or use the quickstart’s PyMC sampler; do not rename a backend and assume identical diagnostics
Locked sync reports dependency/lock disagreementConfirm checkout and lockfile belong together; report the mismatch before changing dependency versions
Graph rendering fails on a system dependencyCheck the optional DAG/Graphviz environment and the supported container profile; a Python package alone may not provide the system library
NetCDF output already existsChoose a new output path and preserve the earlier fitted artefact; inspect persistence errors through the model lifecycle guide

Record the command, Python/platform versions and complete error without credentials. These are diagnosis steps, not a claim that every installation profile was qualified. For graph, inference or retained-stage failures, use workflow troubleshooting.

Implementation reference at 7cb7f20: pyproject.toml:1.