# Python
__pycache__/
*.py[cod]
*$py.class
*.so
.Python

# Build artifacts
build/
develop-eggs/
dist/
downloads/
eggs/
.eggs/
sdist/
wheels/
*.egg-info/
*.egg
MANIFEST

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

# Test / type-check caches
.pytest_cache/
.mypy_cache/
.ruff_cache/
.coverage
htmlcov/
.tox/

# IDE
.idea/
.vscode/
*.swp

# OS
.DS_Store
Thumbs.db

# Generated protobuf classes are committed to the repo (run
# scripts/regen-proto.sh after editing proto/swim.proto). The pre-commit
# hook fails the commit if proto/ was edited but the generated module
# was not regenerated. See the protobuf-packaging-strategy decision in
# the implementation plan for the rationale.
