Development¶
uv sync
uv run pytest
uv run python tests/make_fixtures.py # regenerate the test logs
uv run python examples/make_demo.py # regenerate the sample logs
The test fixtures are small, hand-written logs, one per case: a healthy run, a
run that hangs in its coupling setup, two attempts in one file, a generic SLURM
job from an unknown code, output without timestamps, and the degenerate cases
(empty, truncated, and not a log file at all). No real log is committed, since
such files are too large; the figures in this documentation are generated from
examples/demo.log.
Module layout¶
Module |
|
|---|---|
|
line grammar: timestamps, rank labels, streaming reads |
|
loading, composing and detecting YAML profiles |
|
one streaming pass over a log, producing a |
|
the two table shapes printed by models and MPI stacks |
|
conversion of a |
|
the figures |
|
HTML, Markdown and PDF rendering |
|
discovery, cache, parallelism, the watch loop |
Formatting is black via pre-commit:
pre-commit install
Building this documentation¶
The documentation is Sphinx with MyST
Markdown sources under docs/:
uv run --group docs sphinx-build -b html docs docs/_build/html
Open docs/_build/html/index.html. Add -W to turn warnings into errors,
which is what the GitHub Actions workflow
does before publishing to GitHub Pages on every push to main.
License¶
BSD 3-Clause. See LICENSE.