# Python
__pycache__/
*.py[cod]
*$py.class
*.so
.Python

# Build artifacts
build/
dist/
*.egg-info/
*.egg
wheels/
pip-wheel-metadata/

# Virtual envs
.venv/
venv/
env/
.env

# uv
.uv-cache/

# Testing
.pytest_cache/
.coverage
.coverage.*
htmlcov/
.tox/
.nox/
coverage.xml
*.cover

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

# Ruff
.ruff_cache/

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

# OS
.DS_Store
Thumbs.db
desktop.ini

# Local dev artifacts
*.log
.env.local
NOTES_FOR_S2.md

# Claude Code hook config — installed by `fl init`, contains absolute
# python paths. Never commit; FrictionLog regenerates it on demand.
.claude/settings.json
.claude/settings.local.json
.claude/settings.json.frictionlog.bak
