Repository navigation
Run coverage from pytest addopts; add Sphinx docs - #8
Merged
Merged
Conversation
…command `[tool.pytest.ini_options] addopts` now carries `--cov --cov-report=term-missing`, so the README's `uv run pytest` prints the coverage table and enforces `[tool.coverage.report] fail_under` the same way CI does. The CI step drops the flags it no longer needs. A single-file run can skip the floor with `--no-cov`. Co-Authored-By: Claude Mythos 5.1 <noreply@anthropic.com>
docs/ builds with sphinx, autodoc, napoleon, autodoc-typehints and myst on the pydata theme (the layout the e11lib.ml docs use), from a `docs` dependency group. The index includes the README; a hand-written page states the rules of Coordinate and Roi (integer arithmetic and division, None as unbounded, half-open intervals, empty ROIs, grow with negative amounts, the three snap_to_grid modes) with examples taken from the tests; the API page is generated from the docstrings. The docs workflow builds with -W on push to main and deploys to GitHub Pages; README and [project.urls] link the site. The Roi class docstring gains the blank line docutils needed. Co-Authored-By: Claude Mythos 5.1 <noreply@anthropic.com>
The tests job times its own `uv run pytest`, measures the cold import of the package's headline modules (benchmarks/run.py), and uploads the two numbers as an artifact from one matrix cell. The benchmark workflow runs when a tests run on main completes, downloads that artifact, creates the gh-pages branch if it is missing, and publishes with github-action-benchmark to gh-pages:dev/bench, with a comparison table in the job summary and a commit comment when a metric gets 1.5x worse. The docs gain a Benchmarks page that charts every metric from that data, one line per metric with the commit on hover and click; the docs workflow now runs after each benchmark run and copies dev/bench from gh-pages into the deployed site, so the charts carry the newest point and the action's own dashboard keeps its URL. Nothing runs the test suite twice. Co-Authored-By: Claude Mythos 5.1 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
uv run pytestnow measures coverage[tool.pytest.ini_options] addoptscarries--cov --cov-report=term-missing, so the README'suv run pytestprints the coverage table and enforces the committedfail_underfloor exactly as CI does. The CI step drops the flags it no longer needs. A single file can be run without the floor:Sphinx docs
docs/builds with sphinx, autodoc, napoleon, autodoc-typehints and myst on the pydata theme, from adocsdependency group. The index includes the README. A hand-written page states the rules ofCoordinateandRoi: integer arithmetic and division,Noneas unbounded, half-open intervals, empty ROIs,growwith negative amounts, and the threesnap_to_gridmodes, with examples taken from the tests. The API page is generated from the docstrings (theRoiclass docstring needed one blank line for docutils). Thedocsworkflow builds with-Won push tomainand deploys to GitHub Pages; the README and[project.urls]link the site, which goes live with the first run onmain.Verified locally:
uv run pytestpasses the floor,uv run --group docs sphinx-build -W docs/source docs/build/htmlsucceeds, ruff and ty clean.Import time and test duration, tracked per commit
The
testsjob times its ownuv run pytestand measures the cold import offunlib.geometry(benchmarks/run.py), and uploads the two numbers as an artifact from the floor-interpreter, highest-resolution cell. A newbenchmarkworkflow runs when a tests run onmaincompletes, downloads that artifact, creates thegh-pagesbranch if it is missing, and publishes with github-action-benchmark togh-pages:dev/bench, with a comparison table in the job summary and a commit comment when a metric gets 1.5x worse. The docs gain a Benchmarks page that charts every metric from that data; the docs workflow now runs after each benchmark run (instead of on push) and copiesdev/benchfromgh-pagesinto the deployed site, so the charts carry the newest point and the action's own dashboard stays reachable under the docs site. Nothing runs the test suite twice.The same setup runs end to end in pattonw/prototype-lib.
🤖 Generated with Claude Code