# Python cache and compiled artifacts
__pycache__/
*.py[cod]
*$py.class
*.so
.Python

# Build and packaging
build/
dist/
*.egg-info/
*.egg
.eggs/

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

# uv (optional local state; keep uv.lock tracked if you rely on it)
.python-version

# Test, typecheck, coverage
.pytest_cache/
.ruff_cache/
.mypy_cache/
.coverage
.coverage.*
htmlcov/
coverage.xml
.tox/
.hypothesis/

# Jupyter
.ipynb_checkpoints/

# IDE / OS
.DS_Store
.idea/
*.swp
*.swo
*~

# Secrets and local env
.env
.env.*
!.env.example

# --- Generated optimization runs (see scripts / notebooks for whitelisted report names) ---
# Ignore everything inside timestamped run folders except progress.png (so you can commit the latest plot).
logs/run_*/*
!logs/run_*/progress.png
examples/sentiment/logs/run_*/*
!examples/sentiment/logs/run_*/progress.png
examples/rag_cat_dog/logs*/run_*/*
!examples/rag_cat_dog/logs*/run_*/progress.png

# Stray exports not referenced in repo code / notebooks (whitelist below)
**/generated_report*.csv
!/examples/rag_cat_dog/generated_report_cat_dog_rag.csv
!/examples/rag_cat_dog/generated_report_cat_dog_rag_run2.csv
!/examples/rag_cat_dog/generated_report_cat_dog_embedding_similarity.csv
!/examples/sentiment/generated_report_sentiment_classifier.csv

# Root export not referenced in Python sources
/Report.csv

paraphrase_cache*.json
catdog_chroma_db/
**/chroma_db/

*.log
