# --- OS Specific ---
# macOS
.DS_Store
.AppleDouble
.LSOverride
Icon
._*
.DocumentRevisions-V100
.fseventsd
.Spotlight-V100
.TemporaryItems
.Trashes
.VolumeIcon.icns
.com.apple.timemachine.donotpresent

# Windows
Thumbs.db
Thumbs.db:encryptable
ehthumbs.db
ehthumbs_vista.db
*.stackdump
[Dd]esktop.ini
$RECYCLE.BIN/
*.cab
*.msi
*.msix
*.msm
*.msp
*.lnk

# Linux
*~
.fuse_hidden*
.directory
.Trash-*
.nfs*

# --- Python General ---
__pycache__/
*.py[cod]
*$py.class
*.so
.Python
build/
develop-eggs/
dist/
downloads/
eggs/
.eggs/
lib/
lib64/
parts/
sdist/
var/
wheels/
share/python-wheels/
*.egg-info/
.installed.cfg
*.egg
MANIFEST

# --- Environments & Secrets ---
.env
.venv
env/
venv/
ENV/
env.bak/
venv.bak/
# Keep .env.example for documentation

# --- Tooling & Linting ---
# Ruff
.ruff_cache/

# Mypy / Pyright
.mypy_cache/
.dmypy.json
dmypy.json
# pyrightconfig.json is usually kept if shared, but can be ignored if local-only
# pyrightconfig.json 

# Pytest / Coverage
.pytest_cache/
.coverage
.coverage.*
htmlcov/
.tox/
.nox/
nosetests.xml
coverage.xml
*.cover
.hypothesis/
cover/

# --- Package Managers (uv / Poetry / PDM) ---
# uv: uv.lock should be committed for reproducibility
.pdm.toml
__pypackages__/
poetry.toml

# --- IDEs ---
# Visual Studio Code
.vscode/*
!.vscode/settings.json
!.vscode/tasks.json
!.vscode/launch.json
!.vscode/extensions.json
!.vscode/*.code-snippets
.history/

# PyCharm / JetBrains
.idea/

# --- Project Specific ---
*.log
