# Local environments and generated caches.
.venv/
.wheel-smoke/
.sdist-smoke/
__pycache__/
*.py[cod]
.pytest_cache/
.ruff_cache/

# Local dev-tool caches (regenerable; ruff/pytest already self-ignore via their
# own nested .gitignore — .coverage does not, so it needs an explicit rule).
.coverage
dist/
build/
*.egg-info/

# Portable repository metadata noise.
.DS_Store
