# ── Python ───────────────────────────────────────────────────────────────────
__pycache__/
*.py[cod]
*$py.class
*.so
*.pyd
*.egg
*.egg-info/
dist/
build/
.eggs/
*.whl
.Python

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

# ── Environment / secrets ─────────────────────────────────────────────────────
.env
.env.local
.env.*.local
*.secret

# ── Trained model artefacts ───────────────────────────────────────────────────
models/
*.h5
*.keras
*.pb
saved_model/
checkpoints/

# ── TensorBoard logs ──────────────────────────────────────────────────────────
logs/
runs/

# ── Data files (keep raw data out of version control) ────────────────────────
data/
*.csv
*.parquet
*.feather
*.npy
*.npz
*.pkl
*.pickle

# ── Jupyter notebooks (output cells) ─────────────────────────────────────────
*.ipynb_checkpoints/
.ipynb_checkpoints

# ── OS artefacts ──────────────────────────────────────────────────────────────
.DS_Store
Thumbs.db
desktop.ini

# ── IDEs ──────────────────────────────────────────────────────────────────────
.idea/
.vscode/
*.swp
*.swo

# ── pytest / coverage ─────────────────────────────────────────────────────────
.pytest_cache/
.coverage
htmlcov/
coverage.xml

# ── mypy / ruff cache ─────────────────────────────────────────────────────────
.mypy_cache/
.ruff_cache/

# ── Docker ────────────────────────────────────────────────────────────────────
.dockerignore
