# =============================================================================
# EchoROI – .gitignore
# =============================================================================

# ---------- Python ----------
__pycache__/
*.py[cod]
*$py.class
*.egg-info/
*.egg
dist/
build/
*.whl
.eggs/
*.manifest
*.spec

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

# ---------- IDE / OS ----------
.vscode/
.idea/
*.swp
*.swo
*~
.DS_Store
.DS_Store?
._*
.Spotlight-V100
.Trashes
Thumbs.db
ehthumbs.db

# ---------- Jupyter ----------
.ipynb_checkpoints/

# ---------- Data & models (NEVER commit patient data or large weights) ----------
# Raw / processed datasets
data/images/
data/masks/
UNET_training_dataset/
preprocessed_data/
test_data/
epoch_overlays/

# Inference / evaluation outputs (user-generated, not committed)
results/
evaluation_results/

# Empty placeholder dirs
docs/

# Model weights – large intermediate checkpoints stay ignored
models/*.h5
models/*.pb
models/*.csv
models/*SavedModel/
models/tflite/
# The final trained .keras and .onnx weights ARE committed
# models/*.keras  ← NOT ignored
# models/*.onnx   ← NOT ignored

# ---------- Outputs ----------
results/
outputs/
predictions/
*_output/
# Note: training_results/ is NOT ignored – it is committed for the paper
!training_results/
processed_frames/
*.avi
*.mp4
*.mov

# ---------- Logs ----------
logs/
*.log
tensorboard_logs/

# ---------- Testing / QA ----------
.coverage
.coverage.*
htmlcov/
.tox/
.cache
.hypothesis/
.pytest_cache/
nosetests.xml
coverage.xml

# ---------- Type checking / linting ----------
.mypy_cache/
.dmypy.json
dmypy.json
.ruff_cache/

# ---------- Docs ----------
docs/_build/
docs/build/
/site

# ---------- Misc ----------
*.tmp
*.bak
*.backup
*.pkl
*.joblib
*.dcm
*.DICOM
tmp/
temp/
paper/paper.pdf
