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

# Virtual environments
.venv/
venv/
env/

# IDE
.idea/
.vscode/
*.swp
*.swo

# Environment
.env

# OS
.DS_Store
Thumbs.db

# Project specific
/models/
/temp/
/output/
*.mp4
*.mp3
*.wav
*.avi
*.mov
*.ctranslate2

# Test artifacts
.coverage
htmlcov/
.pytest_cache/
.mypy_cache/
.ruff_cache/
pytest-of-*/

# Green-CI gate artifact (machine/sha-specific, written by hooks/run-gate.sh)
.gate/

# Claude Code - machine-specific files
CLAUDE.local.md
.mcp.json
.claude/.mcp.json
.claude/settings.local.json
.claude/scheduled_tasks.lock
.claude/liveness.log

# Eval harness - third-party video clips, slides, and ground truth
tests/fixtures/eval/videos/
tests/fixtures/eval/slides/
tests/fixtures/eval/gt-*.json
tests/fixtures/eval/new samples/

# e2e fixture: committed real-speech clip for the real-Whisper test, negating
# the blanket *.wav rule above.
!tests/fixtures/e2e/*.wav