# Python
__pycache__/
*.py[cod]
*$py.class
*.pyo
*.pyd
.Python
build/
develop-eggs/
dist/
downloads/
eggs/
.eggs/
lib/
lib64/
parts/
sdist/
var/
wheels/
*.egg-info/
.installed.cfg
*.egg
MANIFEST

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

# Distribution / packaging
*.whl
*.tar.gz

# Unit test / coverage
.tox/
.nox/
.coverage
.coverage.*
.cache
nosetests.xml
coverage.xml
*.cover
*.py,cover
.hypothesis/
.pytest_cache/
htmlcov/

# mypy
.mypy_cache/
.dmypy.json
dmypy.json

# ruff
.ruff_cache/

# Jupyter
.ipynb_checkpoints
*.ipynb

# SQLite databases (incl. WAL mode sidecar files)
*.db
*.db-shm
*.db-wal
*.sqlite
*.sqlite3
epochix.db

# ML training output / cached weights (e.g. running `yolo train` in-repo)
*.pt
*.pth
*.onnx
*.engine
runs/
yolo_train*.log

# Frontend
node_modules/
frontend/node_modules/
epochix-vscode/node_modules/
frontend/dist/**
!frontend/dist/.gitkeep
frontend/coverage/
epochix-vscode/dist/
epochix-vscode/webview-dist/
*.vsix

# VS Code
.vscode/
!.vscode/extensions.json
!.vscode/launch.json

# Claude Code local (personal) settings
.claude/settings.local.json

# PyCharm
.idea/

# macOS
.DS_Store
.AppleDouble
.LSOverride

# Windows
Thumbs.db
ehthumbs.db
Desktop.ini
$RECYCLE.BIN/

# Linux
*~

# Secrets
.env.local
.env.*.local
*.pem
*.key
secrets.json

# epochix run data
~/.epochix/
.epochix.db

# Logs (keep demo/ but ignore generated ones)
*.log
!demo/*.log
!tests/fixtures/**/*.log
# Bundled demo logs shipped inside the wheel (force-included in pyproject);
# the broad *.log rule above would otherwise leave them uncommitted and
# break `pip install .` on any fresh checkout.
!src/epochix/_demos/*.log

# Build artefacts
src/epochix/_frontend/dist/

# MkDocs build output
site/
