# Python
*.py[cod]
*.pyo
*.egg
*.egg-info/
**/__pycache__/
*.so
build/
dist/

# Tooling caches
.pytest_cache/
.ruff_cache/
.ty_cache/
.mypy_cache/

# Coverage
.coverage
.coverage.*
coverage.xml
htmlcov/
coverage_html_report/

# Environment & Secrets
.venv/
venv/
.env
.env.*
!.env.template
.envrc

# IDE
.vscode/
.idea/

# Agent config
.agents/
.claude/
/graft/
.ignore
.mcp.json

# OS
.DS_Store
Thumbs.db

# Jupyter
.ipynb_checkpoints/

# Local files
local/
sources/
working-notes/
/dev

# Pin Python (overrides the global ignore)
!.python-version

# --- CI caches (UV_CACHE_DIR / PRE_COMMIT_HOME point here in .gitlab-ci.yml) ---
# Not just local hygiene: hatchling would otherwise pull them into the sdist,
# and a cached virtualenv carries absolute symlinks that break the build.
.uv-cache/
.pre-commit-cache/
