Skip to content

Installation

Requirements

  • Python ≥ 3.9
  • NumPy, SciPy, and (for the Hankel-transform xi(r) providers and Cosmology) Astropy — installed automatically as dependencies.

Use whatever Python environment you prefer (venv, conda, …); the commands below assume it is active.

Editable install

From the repository root:

git clone https://github.com/chzruan/liulu.git
cd liulu
pip install -e .

The skew-t moment-matching lookup table ships pre-built with the repository (liulu/data/skewt_param_table.npz); if it is missing or its grid/version changes, it is rebuilt automatically on first use (a few minutes, once).

Running the tests

The test suite is self-contained — no external data is needed:

# full suite
python -m pytest liulu/tests/ -v

# a single file
python -m pytest liulu/tests/test_los_projection.py -v

Tests live under liulu/tests/ (configured in pyproject.toml). Projection correctness is checked at \(\mu_r \in \{0, 1, 1/\sqrt2\}\) against hand-computed expectations; the integrator is checked against the linear/Kaiser limit.

Building this documentation

pip install -r docs/requirements.txt
mkdocs serve     # live preview at http://127.0.0.1:8000
mkdocs build     # static site into ./site

The API reference is generated from the in-code docstrings by mkdocstrings, so it tracks the source automatically — keep docstrings current and the reference follows.

The scientific report

A companion LaTeX report (docs/streaming_model_report.tex) documents the halo-catalogue validation and the velocity-PDF study in full. Build it with:

cd docs && pdflatex streaming_model_report.tex && pdflatex streaming_model_report.tex

The figures it references live in docs/figs/ (tracked); the compiled PDF is git-ignored. A summary with figures is on the Validation page.