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

# C extensions
*.so

# Distribution / packaging
.Python
build/
develop-eggs/
dist/
downloads/
eggs/
.eggs/
lib/
lib64/
parts/
sdist/
var/
wheels/
*.egg-info/
.installed.cfg
*.egg

# Virtual environments
.venv/
venv/
ENV/

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

# Testing
.pytest_cache/
.coverage
htmlcov/
cov_annotate/
.tox/
.nox/

# mypy
.mypy_cache/

# ruff
.ruff_cache/

# Local development
.env
.env.local
*.local

# OS
.DS_Store
Thumbs.db

# Cantrip session data (the SQLite DB plus its -shm / -wal sidecars)
.cantrip
.cantrip-shm
.cantrip-wal
.cantrip-repomap.json

# Claude Code local worktrees (experimental branches), runtime locks, and
# per-user settings overrides (tool/command permissions specific to one dev)
.claude/worktrees/
.claude/*.lock
.claude/settings.local.json

# Charms built during development
*.charm
*.rock

# Temporary files
*.tmp
*.temp

# Charmcraft build artefacts
.craft/
prime/
stage/

# Benchmark run logs (transient stdout capture; JSON results are committed)
benchmarks/**/benchmark-*.log
/docs/localStorage.json

# Throwaway local scratch — audit harnesses, ad-hoc captures, anything
# the current session needs but that should not enter git.
/tmp/
