CI/CD
The CI workflow runs on every push to master and every pull request targeting
master. On Python 3.10, 3.11, 3.12, and 3.13 it checks all three installed
entry points, runs the test suite with coverage, compiles Python files, and runs
flake8, isort, Black, mypy, pydocstyle, and Bandit. These checks are blocking.
Coverage upload to Codecov runs on Python 3.12 and is advisory.
The documentation workflow builds this Sphinx site with warnings treated as
errors on every pull request to master and on relevant pushes. Pushes to
master deploy the generated HTML to GitHub Pages; pull requests build
without deploying. Only the deployment job has Pages write permission.
Pull request builds can cancel older runs for the same pull request. Deployments
on master run separately and do not cancel an active deployment.
Equivalent local checks
python -m pytest tests/
python -m compileall -q scripts tests
python -m flake8 scripts/
python -m mypy scripts/
python -m pydocstyle scripts/
python -m bandit -r scripts/ -ll
python -m isort . --profile black --check-only --diff
python -m black . --check --diff
python -m sphinx -W -b html docs docs/_build/html