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

# uv
.venv/
.uv-cache/

# Testing / coverage
.pytest_cache/
.coverage
.coverage.*
htmlcov/
.tox/
.nox/
coverage.xml
*.cover
.cache/

# Mypy / ruff
.mypy_cache/
.dmypy.json
dmypy.json
.ruff_cache/

# Type checker
.pyre/
.pytype/

# IDEs
.idea/
.vscode/
*.swp
*.swo
*~

# Claude Code local config / memory (machine-local, never commit)
.claude/

# OS
.DS_Store
Thumbs.db

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

# SQLite databases created during dev/eval
*.sqlite
*.sqlite3
*.db

# Eval artifacts (results get checked in selectively, not blanket)
.eval-cache/
out/

# mkdocs build output
site/

# NOTE: .cowork/ is intentionally NOT gitignored.
# It contains private dev context that we want versioned in the PRIVATE repo.
# It is excluded from the PUBLIC repo via .cowork/publish.sh.
