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.
| Extra | When needed |
|---|---|
holidays | Prepare a new Prophet-derived holiday component |
dag | Optional causal graph tools; some dependencies require system libraries |
pie | The separate PIE incrementality model |
plotly | Interactive plots |
mlflow | MLflow integration |
test | Test suite and optional sampler integrations |
lint | Local 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.
| Failure | Action |
|---|---|
ammm cannot be imported | Run 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 missing | Sync the relevant extra and retain all other required extras in the same command; see the table above |
| A selected sampler cannot import its backend | Install 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 disagreement | Confirm checkout and lockfile belong together; report the mismatch before changing dependency versions |
| Graph rendering fails on a system dependency | Check the optional DAG/Graphviz environment and the supported container profile; a Python package alone may not provide the system library |
| NetCDF output already exists | Choose 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.