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

# ────────────────────────────────────────────────────────
# Distribution / packaging
# ────────────────────────────────────────────────────────
build/
dist/
*.egg-info/
*.egg
wheels/

# ────────────────────────────────────────────────────────
# Virtualenvs
# ────────────────────────────────────────────────────────
.venv/
venv/
ENV/
env/

# ────────────────────────────────────────────────────────
# Test / coverage
# ────────────────────────────────────────────────────────
.pytest_cache/
.coverage
.coverage.*
htmlcov/
coverage.xml
*.cover
.hypothesis/

# ────────────────────────────────────────────────────────
# Linters / type checkers
# ────────────────────────────────────────────────────────
.ruff_cache/
.pyright/
.mypy_cache/
.pyre/

# ────────────────────────────────────────────────────────
# Generated protobuf bindings (`*_pb2.py` + `.pyi`) are tracked in git
# as a committed build artifact since ADR-0007 (no longer excluded).
# Bytecode cache under _generated/__pycache__/ is covered by the global
# `__pycache__/` rule above.
# ────────────────────────────────────────────────────────

# ────────────────────────────────────────────────────────
# Rithmic .proto distribution — local-only, NOT redistributed
# Drop the Rithmic-provided RProtocolAPI pack in proto/source/
# Compiled bindings are shipped in the PyPI wheel only (built via hatchling hook).
# ────────────────────────────────────────────────────────
proto/source/
proto/*.proto
!proto/README.md
!proto/.gitkeep

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

# ────────────────────────────────────────────────────────
# OS
# ────────────────────────────────────────────────────────
.DS_Store
Thumbs.db

# ────────────────────────────────────────────────────────
# Secrets / env
# ────────────────────────────────────────────────────────
.env
.env.local
*.local

# Live fixture capture script — LOCAL ONLY, connects to the Rithmic gateway
# with real credentials. Never committed. Raw (pre-anonymization) captures
# land here too and must never reach git.
scripts/capture_fixtures.py
scripts/connect_local.py
tests/fixtures/proto_samples/_raw/

# ────────────────────────────────────────────────────────
# AI assistant config (local-only, not part of the project)
# ────────────────────────────────────────────────────────
CLAUDE.md
.claude/
.cursorrules
.cursor/
.github/copilot-instructions.md
.aider*
.sextant/

# Local dev tooling — the sextant project-tracker is installed under tools/
# (its own source + a .venv). It is NOT part of the published library and must
# not leak into the generic Rithmic client (Golden Rule #6, same policy as the
# local-only .sextant/ project data above).
tools/

# Local-only working docs (roadmaps, scratch analysis, planning notes). Not part
# of the published library and not redistributed — kept out of git on purpose.
docs/_local/

# Local-only live probe / scratch scripts and runtime logs — not part of the
# published library (they connect to the gateway with real credentials).
examples/
logs/