# Python
__pycache__/
*.py[cod]
*$py.class
*.so
.Python
env/
venv/
.venv/
ENV/
CLAUDE.md

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

# OS
.DS_Store

# Environment
.env
.env.local
.env.*.local


# Logs
*.log
logs/

# Build artifacts
*.egg-info/
dist/
build/

# MyPy
.mypy_cache/

# Claude Code
# Worktrees live at .claude/worktrees/<name>, which is where Claude Code's own
# -w flag looks, so taking one used to leave a whole second checkout untracked.
# Matches client/.gitignore and api-v2/.gitignore. Deliberately NOT a blanket
# `.claude/` rule: that directory is a legitimate home for committed shared
# config (api-v2 tracks its agent definitions there), and a blanket rule would
# silently stop such files being added here later.
.claude/worktrees/
.claude/settings.local.json

# Coverage
# Only the data files need rules here. .pytest_cache/ and htmlcov/ are
# deliberately absent: both write their own .gitignore containing '*', so git
# already never reports them and a rule for either would be redundant.
.coverage
.coverage.*
coverage.xml
