# Python
__pycache__/
*.py[cod]
*.pyo
*.pyd
*.so
*.egg
*.egg-info/
dist/
build/
eggs/
parts/
var/
sdist/
develop-eggs/
.installed.cfg
lib/
lib64/
wheels/

# Virtual environments
.venv/
venv/
env/
ENV/
.python-version

# uv
uv.lock

# Distribution / packaging
MANIFEST

# Testing
.pytest_cache/
.coverage
.coverage.*
coverage.xml
htmlcov/
*.cover
.hypothesis/

# Type checking
.mypy_cache/
.dmypy.json
dmypy.json
.pytype/
.pyre/

# Build artifacts (hatch-vcs generated)
src/*/_version.py

# Jupyter
.ipynb_checkpoints
*.ipynb

# IDEs
.idea/
.vscode/
*.swp
*.swo
*~

# OS
.DS_Store
Thumbs.db

# Secrets / local config
.env
.env.*
!.env.example

# mkdocs
/site
docs/_build/

# Project-specific: session data and external sub-repos
/data/
external/
<MagicMock*
*.conf.custom

# Session output files (runtime data — never committed)
*.msw.df.jsonl
*.msw.settings.task.json
*.msw.settings.process.json
*.msw.session.yaml

# Safety: always track package yaml and test fixture data
!src/**/*.yaml
!src/**/*.yml
!tests/data/**

# ...but never track build artifacts, even under tests/data
tests/data/**/__pycache__/
*.pyc

# mkdocs build output
site/
