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

# Virtual environments (recreated via `uv sync` — never commit)
.venv/
venv/

# uv.lock IS committed (reproducible installs). Do not ignore it.

# Profiler reports are large binaries and regenerable — never commit them, even
# under tests/fixtures/. The committed text/JSON fixtures (.ncu-csv, .rocprof-csv,
# .perf-stat.json, .perf-report.txt, .metal-json) are NOT matched by these rules.
*.ncu-rep
*.csv
!tests/fixtures/.gitkeep

# OS / editor
.DS_Store
Thumbs.db
.idea/
.vscode/
