# ==============================================================================
# .gitignore — Git version control exclusions
# ==============================================================================
# Prevents build artifacts, caches, secrets, and local files from being tracked.
# Organized by category for maintainability.
#
# Pattern syntax:
#   - # starts a comment
#   - ! negates a pattern (include the file)
#   - / at the end matches directories only
#   - * matches any string except /
#   - ** matches any string including /
# ==============================================================================

# ------------------------------------------------------------------------------
# Python: Byte-compiled / cached files
# ------------------------------------------------------------------------------
__pycache__/
*.py[cod]
*$py.class
*.so
*.pyo

# ------------------------------------------------------------------------------
# Python: Distribution / packaging
# ------------------------------------------------------------------------------
.Python
build/
develop-eggs/
dist/
downloads/
eggs/
.eggs/
lib/
lib64/
parts/
sdist/
var/
wheels/
share/python-wheels/
pip-wheel-metadata/
*.egg-info/
.installed.cfg
*.egg
MANIFEST

# ------------------------------------------------------------------------------
# Python: PyInstaller
# ------------------------------------------------------------------------------
*.manifest
*.spec

# ------------------------------------------------------------------------------
# Python: Installer logs
# ------------------------------------------------------------------------------
pip-log.txt
pip-delete-this-directory.txt

# ------------------------------------------------------------------------------
# Testing and coverage
# ------------------------------------------------------------------------------
# pytest
.pytest_cache/
.hypothesis/
htmlcov/
.cache/

# Coverage reports
.coverage
.coverage.*
coverage.xml
*.cover
*.py,cover
cover/

# Test results
nosetests.xml
test-results/

# Tox
.tox/
.nox/

# VCR cassettes (keep these in git for replay testing)
# tests/cassettes/  # Intentionally tracked

# ------------------------------------------------------------------------------
# Type checkers and linters
# ------------------------------------------------------------------------------
.mypy_cache/
.dmypy.json
dmypy.json
.pyre/
.pytype/
.ruff_cache/
.pyright/

# ------------------------------------------------------------------------------
# Virtual environments
# ------------------------------------------------------------------------------
.env
.envrc
.venv/
.venv-*/
env/
venv/
ENV/
env.bak/
venv.bak/

# ------------------------------------------------------------------------------
# Build tools and package managers
# ------------------------------------------------------------------------------
# Poetry
poetry.lock

# Pipenv
Pipfile.lock

# PDM
.pdm.toml
.pdm-python/
.pdm-build/

# Hatch
.hatch/

# ------------------------------------------------------------------------------
# Jupyter Notebook
# ------------------------------------------------------------------------------
.ipynb_checkpoints
profile_default/
ipython_config.py

# ------------------------------------------------------------------------------
# Playwright (browser automation)
# ------------------------------------------------------------------------------
# Browser binaries are installed via `playwright install`
.playwright/
playwright-report/

# ------------------------------------------------------------------------------
# IDEs and editors
# ------------------------------------------------------------------------------
# JetBrains (PyCharm, IntelliJ IDEA)
.idea/

# VS Code
.vscode/

# Vim / Neovim
*.swp
*.swo
*~

# Eclipse
.project
.pydevproject
.settings/

# Sublime Text
*.sublime-project
*.sublime-workspace

# ------------------------------------------------------------------------------
# OS-specific files
# ------------------------------------------------------------------------------
# macOS
.DS_Store
.AppleDouble
.LSOverride

# Windows
Thumbs.db
ehthumbs.db
Desktop.ini

# Linux
*~
.directory

# ------------------------------------------------------------------------------
# Documentation builds (Sphinx)
# ------------------------------------------------------------------------------
docs/_build/
docs/_autosummary/
docs/reference/_autosummary/
_autosummary/

# ------------------------------------------------------------------------------
# Claude Code session data
# ------------------------------------------------------------------------------
.claude/

# ------------------------------------------------------------------------------
# Local development and scratch files
# ------------------------------------------------------------------------------
.local/
*.log
*.patch
secrets.toml
*.bak
*.tmp
*.swp

# ------------------------------------------------------------------------------
# Security and secrets
# ------------------------------------------------------------------------------
# Ensure no secrets are committed
*.pem
*.key
*.p12
*.pfx
.env.local
.env.*.local
