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

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

# PyInstaller
*.manifest
*.spec

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

# Unit test / coverage reports
htmlcov/
.tox/
.nox/
.coverage
.coverage.*
.cache
nosetests.xml
coverage.xml
*.cover
*.py,cover
.hypothesis/
.pytest_cache/
cover/

# Environments
.env
.env.*
!.env.example
.venv
env/
venv/
ENV/
env.bak/
venv.bak/

# uv
.uv-cache/

# mypy / ruff
.mypy_cache/
.dmypy.json
dmypy.json
.ruff_cache/
.pyre/
.pytype/

# IDEs
.idea/
*.swp
*.swo
*~

# .cursor/ and .vscode/ are intentionally tracked — they contain MCP configs
# that auto-register the server when someone opens the cloned repo.
# Only ignore the user-specific state files:
.vscode/*.log
.vscode/settings.json
.cursor/rules/

# macOS
.DS_Store

# AWS
.aws/

# npm wrapper
npm/node_modules/
npm/package-lock.json

# Project-local
*.log
