- Python 3.10+
- uv
- Redis (for integration tests)
uv sync --all-groupsRun all CI checks locally with a single command:
uv run noxThis runs lint, type-check, security scan, and the full test suite — the same sessions that CI executes on every pull request.
List available sessions:
uv run nox -l# Check (same as CI)
uv run nox -s lint
# Auto-fix lint and format issues
uv run nox -s fixuv run nox -s typecheckuv run nox -s securityuv run nox -s testsCoverage is enabled by default (--cov=src, 80% minimum). HTML report is
written to htmlcov/.
Nox runs the suite against every supported Python version (3.10 – 3.14). To target a single version:
uv run nox -s tests-3.12Append arguments after --:
# Run unit tests only
uv run nox -s tests -- tests/unit/
# Run a specific test
uv run nox -s tests -- tests/unit/test_cache.py::TestCacheMissHit::test_first_miss_second_hit
# Skip slow tests
uv run nox -s tests -- -m "not slow"
# Disable coverage for faster iteration
uv run nox -s tests -- --no-covIntegration tests require a running Redis instance (defaults to
localhost:6379). Tests that need Redis are decorated with @requires_redis
and will be skipped automatically if the server is unreachable.
uv run nox -s tests -- tests/integration/Point to a different instance:
REDIS_URL=redis://host:6380/1 uv run nox -s tests -- tests/integration/# Full output, no capture, long tracebacks
uv run nox -s tests -- tests/unit/test_cache.py::TestCacheMissHit -s --tb=long --no-cov
# Drop into the debugger on failure
uv run nox -s tests -- --pdb --no-covOr use uv run pytest directly for the fastest iteration loop (skips nox
virtualenv setup):
uv run pytest -s --no-cov tests/unit/test_config.pyDocumentation is built with MkDocs and the Material theme.
uv run nox -s docs_serveOpen http://127.0.0.1:8000 — changes are live-reloaded.
uv run nox -s docs_buildThe built site is written to site/. Add -- --strict to fail on
warnings (used in CI):
uv run nox -s docs_build -- --strictDocumentation is automatically deployed to GitHub Pages when changes are
pushed to main via .github/workflows/docs.yml.
docs/
├── index.md # Home page
├── getting-started/
│ ├── installation.md
│ └── quick-start.md
├── guide/
│ ├── caching.md
│ └── configuration.md
├── api/
│ ├── dependencies.md
│ └── configuration.md
└── stylesheets/
└── extra.css
Configuration is in mkdocs.yml at the repository root.