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

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

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

# Testing
.pytest_cache/
.coverage
htmlcov/
.tox/
.nox/

# Type checking
.mypy_cache/
.pytype/

# Oneiric
.oneiric_cache/

# Local settings
settings/local.yaml
.env
.env.local

# OS
.DS_Store
Thumbs.db

# uv
uv.lock

# Backup Files (added by gitignore audit)
# ============================================================================
*.backup
*.backup.*
*.backup.json
*.bak
*.bak2
/.backups/
/.backup/
.backups/
.backup/

# Crackerjack runtime artifacts (added 2026-08-17 bodai cleanup)
# ============================================================================
.crackerjack/
.crackerjack/outputs/
.crackerjack-state/
.crackerjack-hooks-updated/
.crackerjack-mcp/

# Coverage outputs
# ============================================================================
.coverage*
coverage.json

# Python bytecode variants (defense-in-depth; *.py[cod] above covers most cases)
# ============================================================================
*.pyc
*.pyo
*.pyd

# Example MCP config (safe-to-share)
# ============================================================================
example.mcp.json

# Canonical runtime-artifact patterns (bodai cleanup 2026-08-20)
.pyscn/

# lychee + pytest-hypothesis caches (canonical sweep 2026-08-20)
.lycheecache
.hypothesis/
