# ─── Python ──────────────────────────────────────────────────────────
__pycache__/
*.py[cod]
*$py.class
*.so
.Python

# Distribution / packaging
build/
dist/
*.egg-info/
*.egg
wheels/
.eggs/
MANIFEST

# ─── Test / lint / type-check caches ─────────────────────────────────
.pytest_cache/
.ruff_cache/
.mypy_cache/
.coverage
.coverage.*
coverage.xml
htmlcov/
.tox/
.nox/

# ─── Virtual environments ────────────────────────────────────────────
.venv/
venv/
env/
ENV/
.python-version

# ─── Secrets — NEVER commit ──────────────────────────────────────────
.env
.env.*
!.env.example
*.pem
*.key
secrets/

# ─── OS / editor noise ───────────────────────────────────────────────
.DS_Store
Thumbs.db
*.swp
*.swo
*~

# ─── IDE ─────────────────────────────────────────────────────────────
.vscode/
.idea/
*.iml

# ─── uv (Python package manager) ─────────────────────────────────────
.uv-cache/

# ─── FAF-specific ────────────────────────────────────────────────────
# Local-only working files that don't ship
*.local.md
.faf-cache/
