# Virtualenv — also masked at runtime via an anonymous volume in
# docker-compose.yml so the container's `.venv` never collides with the host's.
.venv

# Python bytecode + tooling caches
__pycache__
*.py[cod]
.pytest_cache
.ruff_cache
.mypy_cache
.ty_cache

# Build / coverage artifacts
*.egg-info
dist
build
.coverage
htmlcov

# Secrets — never bake into the image
.env
.env.*
!.env.example

# OS / IDE
.DS_Store
.vscode
.idea
