Development
Development Setup
The project requires Python 3.13 or newer and uses uv for dependency and
environment management. From the repository root, install the development
environment with:
uv sync --dev
Running Tests
Run the test suite from the repository root:
uv run pytest
To run a single test:
uv run pytest tests/test_foo.py::test_name
Code Formatting and Linting
The project uses Ruff for both formatting and linting (no separate formatter is configured). Check formatting and linting with:
uv run ruff format --check .
uv run ruff check .
To auto-fix formatting and linting issues:
uv run ruff format .
uv run ruff check . --fix
Build the Documentation
Build the HTML documentation from the repository root:
uv run sphinx-build -b html docs/source docs/build/html
The generated documentation is written to docs/build/html.
Build the Package
Build the distribution packages with:
uv build
Continuous Integration
CI runs three workflows on every push and pull request:
CI (
ci.yml) — runsuv run pytest.Format and lint (
format.yml) — runsruff format --checkandruff check.Documentation (
docs.yml) — builds the Sphinx docs and deploys to GitHub Pages onmainanddevelop.
Release
Tags matching v*.*.* trigger the Publish to PyPI workflow
(publish.yml), which builds the package with uv build and publishes
to PyPI via trusted publishing.