Installation

Requirements

MeasureIA supports Python 3.10 – 3.14 and requires NumPy 2. The remaining dependencies (astropy, scipy, h5py, matplotlib, pyccl, sympy) are resolved automatically; their versions are pinned in pyproject.toml / uv.lock.

Installing with pip

pip install measureia

That is the whole installation — everything MeasureIA needs is on PyPI.

Installing with uv

If you manage your project with uv, add MeasureIA as a dependency:

uv add measureia

Your scripts then run inside that environment:

uv run my_script.py

To install into an existing environment instead of a uv project, use:

uv pip install measureia

Installing an unreleased version

Released versions are on PyPI; work in progress lives on the dev branch of the repository. To install straight from a branch, without cloning:

pip install "git+https://github.com/MarloesvL/measure_IA.git@dev"
uv add "measureia @ git+https://github.com/MarloesvL/measure_IA.git@dev"   # uv equivalent

Clone the repository instead if you want to edit the code, run the test suite, or contribute:

git clone https://github.com/MarloesvL/measure_IA.git
cd measure_IA
uv sync              # creates .venv with the locked dependencies
uv run pytest        # optional: check the suite passes
uv run my_script.py

uv sync also installs a compatible Python interpreter, so no separate setup is needed. If you use neither uv nor pip, the dependencies are listed in requirements.txt. See Contributing for the full development workflow.

Optional extras

The cross-package validation scripts compare MeasureIA against external codes, and the performance benchmarks time it against those same codes — halotools for the periodic box, TreeCorr for the lightcone. Both use one extra:

pip install measureia[validation]   # halotools + treecorr
uv add "measureia[validation]"      # uv equivalent

Neither package is needed to use MeasureIA or to run its test suite. The scripts themselves live in validation/ and benchmarks/ in the repository rather than in the installed package, so running them means cloning it as described above:

uv sync --extra validation                                    # or: pip install -e ".[validation]"
uv run python validation/run_box_halotools.py
uv run python benchmarks/run_sweep.py --smoke --machine laptop