# Python
__pycache__/
*.py[cod]
*$py.class
*.so
*.egg
*.egg-info/
dist/
build/
eggs/
parts/
var/
sdist/
wheels/
pip-wheel-metadata/
share/python-wheels/
.installed.cfg
lib/
lib64/
MANIFEST

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

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

# Type checking
.mypy_cache/
.dmypy.json
dmypy.json
.pytype/
.pyre/

# Distribution / packaging
*.dist-info/

# SQLite databases (user data — never commit)
*.db
*.sqlite
*.sqlite3

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

# OS
.DS_Store
Thumbs.db

# TypeScript / Node
node_modules/
*.tsbuildinfo

# Secrets — never commit
.env.local
.env.*.local
*.pem
*.key
secrets.yaml
credentials.json

# Jupyter
.ipynb_checkpoints/

# Ruff cache
.ruff_cache/

# NOTE: CLAUDE.md is intentionally NOT ignored — it ships with the repo
# as developer instructions for Claude Code users.
