# Byte-compiled / optimized / DLL files
__pycache__/
*.py[cod]
*$py.class
*.so

# Distribution / packaging
.Python
build/
dist/
*.egg-info/
*.egg
.eggs/
wheels/
share/python-wheels/
MANIFEST

# Virtual environments
venv/
.venv/
env/
ENV/
.env
.env.*
!.env.example

# PyInstaller
*.manifest
*.spec

# Installer logs
pip-log.txt
pip-delete-this-directory.txt

# Unit test / coverage
htmlcov/
.tox/
.nox/
.coverage
.coverage.*
.cache
nosetests.xml
coverage.xml
*.cover
*.py,cover
.hypothesis/
.pytest_cache/

# Ruff / mypy caches
.mypy_cache/
.ruff_cache/
.dmypy.json
dmypy.json

# uv (note: uv.lock is committed for reproducibility)
.uv/

# Jupyter / IPython
.ipynb_checkpoints
profile_default/
ipython_config.py

# Editors / IDEs
.vscode/
.idea/
*.swp
*.swo
*.sublime-workspace
*.sublime-project

# OS
.DS_Store
Thumbs.db
Desktop.ini

# Claude Code local state
.claude/

# Project-local scratch
scratch/
tmp/
*.log

# Local config accidentally copied into repo
.gdr/
gdr-reports/
