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

# ── Virtual environments ──────────────────────────────────────────────────────
.venv/
venv/
env/
.env/

# ── uv ────────────────────────────────────────────────────────────────────────
# uv.lock is intentionally tracked (reproducible installs for contributors)
.python-version

# ── Build / distribution ──────────────────────────────────────────────────────
dist/
build/
*.egg-info/
*.egg
MANIFEST
.eggs/

# ── Testing ───────────────────────────────────────────────────────────────────
.pytest_cache/
.coverage
.coverage.*
coverage.xml
htmlcov/
.tox/

# ── Type checking ─────────────────────────────────────────────────────────────
.mypy_cache/
.dmypy.json
dmypy.json
.pyright/

# ── Ruff ──────────────────────────────────────────────────────────────────────
.ruff_cache/

# ── Runtime data (locram stores data in ~/.locram, not here) ──────────────────
*.db
*.db-shm
*.db-wal
*.sqlite
*.sqlite3

# ── Secrets / environment ─────────────────────────────────────────────────────
.env
.env.*
!.env.example

# ── macOS ─────────────────────────────────────────────────────────────────────
.DS_Store
.AppleDouble
.LSOverride
._*
.Spotlight-V100
.Trashes

# ── IDE / editors ─────────────────────────────────────────────────────────────
.docs/
.idea/
.vscode/
.cursor/
*.swp
*.swo
*~

# ── Logs ──────────────────────────────────────────────────────────────────────
*.log
logs/

# ── Jupyter ───────────────────────────────────────────────────────────────────
.ipynb_checkpoints/
*.ipynb

# ── Temporary / scratch ───────────────────────────────────────────────────────
.tmp/
scratch.*
