# Python
__pycache__/
*.py[cod]
*$py.class
*.so

# Build & packaging
build/
/dist/
*.egg-info/
*.egg

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

# uv (lockfile & local tool state — not committed)
uv.lock
.uv/

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

# Testing & coverage
.pytest_cache/
.coverage
coverage.xml
htmlcov/

# mypy
.mypy_cache/

# ruff
.ruff_cache/

# Node (dashboard_web)
node_modules/
dashboard_web/dist/
npm-debug.log*
yarn-debug.log*
yarn-error.log*
.pnpm-debug.log*

# Packaged dashboard build output (build: cd dashboard_web && npm run build)
src/bnnr/dashboard/frontend/dist/

# Aider / local AI assistant
.aider*

# Local experiments & demo outputs (not part of the library)
demo_output/
multilabel_demo_output/
my_tests/

# Local scratch, editor rules, quick analyze demos (not part of the library)
.cursorrules
01-technical-roadmap.md
config_quick.yaml
config_quick_stl10.yaml
run_analyze_demo.py
run_analyze_demo.sh
test_analyze_api.py
out_analyze/

# Runtime outputs
checkpoints/
checkpoints_*/
reports/
reports_*/
*.pt
*.pth
*.log

# OS
.DS_Store
Thumbs.db

# Environment
.env

# Jupyter
.ipynb_checkpoints/

# Data (downloaded datasets)
data/

# Local QA / experiments (not part of the library)
my_tests/

.aider*
out_analyze/
out_analyze_*/

# Local scratch / dumps
*.bak
*.tmp
.tmp/
tmp/
.tmp_xai_cpu/

# YOLO XAI smoke outputs (regenerate with smoke_yolo_xai_overlay.py)
examples/detection/xai_yolov8n_activation_overlay.png
examples/detection/_smoke_input_cat.jpg
