# Project-private context (per global CLAUDE.md rule: only add to private repos)
CLAUDE.md

# Python
__pycache__/
*.py[cod]
*$py.class
*.so
.Python
build/
dist/
*.egg-info/
.eggs/
.installed.cfg
*.egg

# Virtual environments
.venv/
venv/
env/
.env
.env.*
!.env.example

# uv
.python-version

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

# Test / lint caches
.pytest_cache/
.ruff_cache/
.mypy_cache/
.coverage
.coverage.*
htmlcov/

# OS
.DS_Store
Thumbs.db

# Phase 0 build artifacts (decompiled JDBC, downloaded JARs)
# build/ already excluded by Python pattern above; we keep the directory for spike work
build/jdbc-src/
build/*.jar

# Wireshark / socat captures live IN the repo intentionally — they're spike deliverables.
# The global ~/.gitignore_global excludes *.log; negate that for our captures specifically:
!docs/CAPTURES/
!docs/CAPTURES/*.log
!docs/CAPTURES/*.pcap
!docs/CAPTURES/*.txt

# Java reference client build outputs
*.class
tests/benchmarks/.results/
# IfxPy comparison: keep Dockerfile, bench script, README;
# exclude the downloaded ODBC driver tarball and local venv.
tests/benchmarks/compare/venv-py311/
tests/benchmarks/compare/onedb/
tests/benchmarks/compare/onedb.tar
