# Python
__pycache__/
*.py[cod]
*.egg-info/
dist/
build/

# Environments & tooling
.venv/
.env
.env.*
.pytest_cache/
.ruff_cache/
.coverage
htmlcov/

# No `*.tmp` rule, deliberately. Nothing here produces one (#167), and the stray that
# prompted #116 came from a manual spec fetch into the clone — a thing this repo's
# conventions now send to ~/scratch instead. Ignoring the class would only *hide* the
# next stray; leaving it unignored makes it a finding in `git status`, which is what the
# cleanup rule asks for (constitution.md → How We Build). Reverses #116; decided in #169.

# OS
.DS_Store
