Built from main at 1d902a0 on 2026-11-14

Jupyter

A format, recognised by .ipynb notebooks. Notebooks in a Python project make it use both ecosystems; their results are combined and labelled like any other mixed project's. A CI job works with the ecosystem when it runs jupyter, papermill, nbqa or nbstripout.

data-wellformed

Every notebook parses: JSON with an integer nbformat and a list of cells.

tests-run

The notebooks run as tests: pytest --nbmake (or --nbval, --nbval-lax), jupyter nbconvert --execute, jupyter execute, or papermill. The notebooks themselves are what defines the tests.

code-formatting

ruff format --check, which reads notebooks, or nbQA running black or ruff on the cells (nbqa black --check, nbqa ruff format --check); ruff's settings where the Python profile reads them (ruff.toml, pyproject.toml).

static-analysis

ruff check, which lints notebooks, or nbQA running ruff, flake8, pylint or mypy on the cells.

vcs-ignore

Jupyter's .ipynb_checkpoints/ directories are ignored.

committed-artifacts

A checkpoint is a build output, never committed.

Not judged

Whether notebooks are committed without their outputs (nbstripout as a pre-commit hook or a git filter, or nbstripout --verify in CI) is a later rule of committed-artifacts (#56). The other checks have no tool for notebooks and are skipped.