Installation

These instructions assume you are working from an authorised AMMM3 checkout. The distribution is named ammm3; its Python import namespace remains abacus.

Prerequisites

ItemNotes
PythonThe package requires Python 3.11 or later. The repo development environment uses Python 3.12.
Local checkoutInstall from the repository root.
Writable temp/cache directoryUseful for PyTensor compiledir and local verification commands.

This is the supported local development path for the repository.

conda env create -f environment.yml
conda activate ammm3-dev
python3 -m pip install -e .

This gives you:

  • the repo-managed development environment from environment.yml
  • an editable install, so local code changes are picked up immediately

Minimal pip install from source

If you do not want the full Conda environment, you can install AMMM3 directly from the repository root.

Standard install

python3 -m pip install .

Editable install

python3 -m pip install -e .

Use the editable install if you are changing code, configs, or docs locally.

Optional extras

AMMM3 defines a small set of optional extras in pyproject.toml.

ExtraInstall commandUse when you need
lintpython3 -m pip install .[lint]Ruff, MyPy, and related local linting tools
testpython3 -m pip install .[test]Pytest and test-only dependencies

If you created the environment from environment.yml, most development dependencies are already present.

The statistical scenario API is included in the standard install. Import scenario objects from abacus.scenarios. AMMM3 does not include a dashboard or require Dash, Plotly or Flask. Application wrappers are separate projects.

Verify the install

A quick smoke check from the repository root:

python3 -c "from abacus.mmm.panel import PanelMMM; print(PanelMMM.__name__)"

For a real end-to-end verification path, use the repo smoke target:

make smoke_mmm

If you are working on the repo itself, the main local verification commands are:

make test
make verify_local
make verify_package

Runtime defaults for restricted environments

Some local runs need writable cache directories. If you hit PyTensor compiledir or cache-permission issues, export the same defaults used by the repo verification scripts:

export PYTENSOR_FLAGS="base_compiledir=/tmp/pytensor,linker=py"
export JAX_PLATFORMS=cpu
export XDG_CACHE_HOME=/tmp

Next steps