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

# Virtual environments
.venv/
venv/
ENV/

# uv
# uv.lock IS committed - it pins the whole workspace for reproducible installs

# Environment / secrets
.env
.env.*
!.env.example
*.pem
*.key

# Testing / coverage
.pytest_cache/
.coverage
.coverage.*
coverage.xml
htmlcov/
.mypy_cache/
.ruff_cache/

# CSS is hand-authored (no build step, no Node toolchain) and is committed as
# source. There is deliberately nothing to ignore here.

# Editors
.vscode/
.idea/
*.swp
.DS_Store

# Docker
docker-compose.override.yml

# MkDocs build output.
site/
