__pycache__/
*.py[cod]
.venv/
dist/
build/
*.egg-info/
.pytest_cache/
.ruff_cache/

# Nothing reads this. Both workflows install with `-e ".[dev]"`, which
# ignores lockfiles, so a committed lock would only drift.
uv.lock
