# ── Python ─────────────────────────────────────────────────────────────────────
__pycache__/
*.py[cod]
*$py.class
*.so
.Python
build/
dist/
*.egg-info/
*.egg
.eggs/
pip-wheel-metadata/
MANIFEST

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

# ── Testing & coverage ────────────────────────────────────────────────────────
.pytest_cache/
.coverage
.coverage.*
htmlcov/
coverage.xml
*.cover

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

# ── Linting ───────────────────────────────────────────────────────────────────
.ruff_cache/

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

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

# ── IDE ───────────────────────────────────────────────────────────────────────
.idea/
.vscode/
*.swp
*.swo
*~

# ── HuggingFace model cache ───────────────────────────────────────────────────
# (never commit downloaded model weights)
.cache/
~/.cache/huggingface/

# ── Test fixtures ─────────────────────────────────────────────────────────────
# Generated locally; not committed (binary files, download via download_fixtures.py)
tests/fixtures/example_hip.jpg
tests/fixtures/example_mask.png
pre_push_check.py

# ── Dataset files ─────────────────────────────────────────────────────────────
# PelviSet lives on Zenodo/HuggingFace, not in this repo
datasets/
*.csv
*.npy
master.csv
provenance.csv

# ── Checkpoint files ──────────────────────────────────────────────────────────
*.pt
*.pth
*.bin
*.safetensors
checkpoints/
hf_ready/

# ── Logs & outputs ────────────────────────────────────────────────────────────
*.log
outputs/
runs/
wandb/
lightning_logs/

# ── Temporary ─────────────────────────────────────────────────────────────────
tmp/
temp/
scratch/
