Skip to content

Development

Tests

make test          # unit tests: pytest tests/ -m "not db"
make test-db       # MySQL via compose, then pytest tests/ -m db

Mark live-database tests with @pytest.mark.db (registered in pyproject.toml).

Documentation

pip install -e ".[docs]"
make docs          # live preview at http://127.0.0.1:8000
make docs-build    # build into site/

The site is built with MkDocs and Material from docs/ and mkdocs.yml. The API reference is generated from the docstrings (Google style), one page per module. Notebooks in examples/tutorials/ are copied into the site by docs/gen_examples.py and shown with their saved outputs, not executed: run them and save before committing.

CI (.github/workflows/docs.yml) builds the site on every pull request and publishes it to GitHub Pages on every push to main.

Changing what a helper writes

Bump the writer version of the ingestion package (_version.py) when a helper changes what it writes or what it hashes; see Row stamps.

Examples

Example code under examples/ is not installed or tested by the package.