# --- Python ---
__pycache__/
*.py[cod]
*$py.class
*.so
.Python
*.egg
*.egg-info/
.eggs/

# Virtual environments (repo-local and readme-named)
.venv/
.venv-*/
venv/
ENV/
env/
rsna-anonymizer/

# --- Tooling / tests / coverage ---
.pytest_cache/
.ruff_cache/
.mypy_cache/
.hypothesis/
.cache/
.tox/
.nox/
.coverage
.coverage.*
coverage.xml
htmlcov/
.dmypy.json
dmypy.json

# --- Packaging / build ---
build/
dist/
wheels/
src/build/
src/dist/
*.spec
**/versionfile.txt

# --- Secrets / local runtime ---
.env
.env.*
!.env.example
*.pem
.anonymizer_state.json
*.anonymizer_state.json
*.db
ProjectModel.json
!src/eval/midi_b/assets/ProjectModel.json

# --- OS / editors ---
.DS_Store
Thumbs.db
.idea/
# .vscode/ is intentionally tracked (shared launch/settings)
.cursor/

# --- Logs / temp ---
*.log
*.tmp
tests/controller/tmp/
src/logs/
src/certs/
.midi_b_runs/

# --- gettext / editor backups ---
*~
*.po~
*.mo~
*.swp
*.swo

# --- App / ML artifacts (downloaded or local PHI) ---
*.dcm
!tests/controller/assets/test_dcm_files/**/*.dcm
*.pth
*.pt
*.dmg
*.zip
src/anonymizer/assets/ai/ocr/
src/anonymizer/assets/ai/embedded_phi/model/
src/anonymizer/assets/ai/tseg/
src/anonymizer/assets/ai/xp_bodypart/
src/anonymizer/assets/ai/xr_chest_view/
# Legacy cwd-relative trap (do not recreate at repo root)
/assets/ai/
src/prototyping/falcon/assets/models/
phi_imgs/
**/radon_results.txt
tests/controller/dicom/support/orthanc_runtime/

# --- Legacy ---
Pipfile.lock

# Local interpreter pin (pyproject.toml is the source of truth)
.python-version

# --- MkDocs ---
site/
.cache/
docs/.capture_work/

# --- Pseudo-PHI de-id experiment outputs ---
src/prototyping/pseudo_phi_deid/results/**
!src/prototyping/pseudo_phi_deid/results/.gitkeep
src/prototyping/midi_b/results/**
!src/prototyping/midi_b/results/.gitkeep
src/prototyping/midi_b/vendor/**
# Generated Pixel PHI experiment output. Help-site screenshots under docs/ stay tracked.
src/prototyping/ocr/pixel_phi_easyocr/out/
src/prototyping/**/.model_cache/
src/eval/midi_b/vendor/MIDI_validation_script
