__pycache__/
*.py[cod]
.DS_Store
**/.DS_Store
.pytest_cache/
.ruff_cache/
.mypy_cache/
.venv/
dist/
build/
*.egg-info/

# Note: uv.lock at root (for meta dev tooling / template tests) is intentionally *not* ignored
# so it can be committed for reproducible `uv run --group dev`. Generated projects handle their
# own uv.lock separately after `uv sync`.
