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

# Distribution / packaging
build/
dist/
*.egg-info/
*.egg
.eggs/

# Virtual environments
.venv/
venv/
env/

# Test / coverage
.pytest_cache/
.coverage
.coverage.*
htmlcov/
.tox/
.nox/

# Type checkers
.mypy_cache/
.pyright/
.ruff_cache/

# Editors / OS / tooling
.idea/
.vscode/
.DS_Store
.claude/
.codex/

# Caches (tooling + general)
.cache/
*.cache
.uv-cache/
.uv/
.cache_ggshield
.dmypy.json
node_modules/

# Secrets / credentials — never commit these (defense-in-depth)
.env
.env.*
!.env.example
*.pem
*.key
*.pfx
*.p12
*.pkcs12
*.keystore
*.jks
.pypirc
.netrc
secrets.*
credentials.*
*.token

# Project artifacts
corpus/
archive/oracle/cache/
archive/oracle/jars/
archive/oracle/build/
*.pdf.diff

# Upstream Java source — local clone for parity tooling (see scripts/parity.py)
pdfbox/

# Shared parity / wave checkpoint (project-local, untracked by design — see .parity/README.md)
.parity/
coverage.json

# AI assistant config + migration apparatus — kept LOCAL only (not for the public repo)
CLAUDE.md
archive/

# Docker — local deployment-testing only, never committed
Dockerfile
Dockerfile.*
*.dockerfile
docker-compose*.y*ml
.dockerignore
docker/
.docker/
