Development environment
uv sync --group dev
uv run pytest -m "not slow"
uv run black --check mrrpropy tests
uv run mypy
Repository conventions
- Generated figures from tests live under
tests/figures/. - Generated NetCDF and other non-figure outputs live under
tests/generated/. - Bundled fixtures under
tests/data/remain the reference inputs and outputs. - Test modules are grouped by domain under
tests/raw_mrr,tests/raprompro,tests/rain_processesandtests/hexagram.
Scientific code boundaries
The repository separates workflow improvements from scientific changes. Packaging, documentation, CI, typing and test structure can evolve independently of the RaProMPro scientific kernels. Behavioural changes in the scientific modules should be validated with the equivalence tests already present in the suite.
Documentation build
python -m pip install ".[docs]"
python scripts/build_docs.py
python -m http.server 8000 --directory site
The docs site uses static HTML pages for the narrative sections and
pdoc for the API reference.
Typing scope
Typing currently focuses on the extracted public-package surface used for
release safety: the analysis, processing,
plotting, hexagram and cli modules.
The long retained scientific kernels are typed more conservatively to avoid
accidental behavioural change during refactors.