# =============================================================================
# Python, Windows, Linux, macOS .gitignore
# =============================================================================
# --------------- Universal ---------------
*.log
*.tmp
*~
*.bak
*.local

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

# --------------- macOS ---------------
.DS_Store
.AppleDouble
.LSOverride
._*
.Spotlight-V100
.Trashes

# --------------- Windows ---------------
Thumbs.db
ehthumbs.db
[Dd]esktop.ini
$RECYCLE.BIN/
*.lnk

# --------------- Editors ---------------
.vscode/*
.history/
.idea/
*.swp
*.swo

# --------------- Byte-compiled ---------------
__pycache__/
*.py[codz]
*$py.class
*.so
*.pyd

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

# --------------- Unit test / coverage ---------------
htmlcov/
.tox/
.nox/
.coverage
.coverage.*
.cache/
coverage.xml
*.cover
.hypothesis/
.pytest_cache/

# --------------- Environments ---------------
.env
*.env
.env.*
.envrc
.venv
env/
venv/
ENV/

# --------------- mkdocs ---------------
/site

# --------------- Type checkers / linters ---------------
.mypy_cache/
.dmypy.json
.pyre/
.pytype/
.ruff_cache/
.ty/
pyrightconfig.json

# --------------- uv ---------------
# uv.lock is committed for reproducible builds.

# --------------- Project ---------------
# Microsoft Open Specification reference docs are kept as Markdown in specs/;
# the source .docx / .pdf are large and not redistributable -- keep them local.
specs/
