# Python
__pycache__/
*.pyc
*.pyo
*.egg-info/
dist/
build/
*.egg

# Model weights — exclude all checkpoints except default production ones
weights/**/checkpoint.pth
weights/**/*.json
weights/**/*.log
!weights/tree_subset/mixed_v10/checkpoint.pth
!weights/tree_subset/mixed_v10/config.json
!weights/tree_gnn/mixed_v10/checkpoint.pth
!weights/tree_gnn/mixed_v10/config.json
!weights/classifier/v9_combined/checkpoint.pth

# Training data (keep build scripts and READMEs, exclude heavy files)
data/**/*.jsonl
data/**/*.jsonl.bak*
data/**/*.pt
data/**/*.pth
data/**/*.png
data/**/*.jpg
data/**/*.json
data/**/*.log
data/tmp/
data/shared/symbols/**/*.png
data/shared/symbols_from_expr/
data/shared/classifier_augmented/
data/shared/tree_handwritten/**/*.png
data/shared/tree_handwritten/**/*.bak*
# But keep handwritten stroke/tree data (small, essential for training)
!data/shared/tree_handwritten/**/*.jsonl
!data/shared/tree_handwritten/**/*.json
!data/shared/symbols/**/*.json

# macOS
.DS_Store

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

# Environment
.env
venv/
.venv/

# Workspace-root scratch (test venvs, ad-hoc experiments)
tmp/

# Tool caches
.ruff_cache/
.pytest_cache/
.mypy_cache/

# Debug artifacts
tree_vis.html
