# Python
__pycache__/
*.py[cod]
*$py.class
*.so
*.egg
*.egg-info/
dist/
build/
.eggs/
pip-wheel-metadata/
*.whl
.Python
lib/
lib64/
parts/
sdist/
var/
wheels/
share/python-wheels/
*.manifest
*.spec
MANIFEST

# Virtual environments
.env
.venv
env/
venv/
ENV/
env.bak/
venv.bak/

# pytest / coverage
.pytest_cache/
.coverage
.coverage.*
htmlcov/
.tox/
.nox/
coverage.xml
*.cover
*.py,cover
nosetests.xml

# ruff / mypy / pyright
.ruff_cache/
.mypy_cache/
.pyright/
pyrightconfig.json

# Node / frontend
node_modules/
npm-debug.log*
yarn-debug.log*
yarn-error.log*
.pnpm-debug.log*
.yarn/
.pnp.js
.pnp.cjs

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

# Editor / IDE
.vscode/
.idea/
*.swp
*.swo
*~
.project
.classpath
.settings/
*.sublime-project
*.sublime-workspace

# Secrets and certificates
.env
.env.*
*.pem
*.key
*.p12
*.pfx
secrets/

# Hatch
.hatch/

# Distribution / packaging
*.tar.gz

# docs/build/ holds governance texts (the decisions log, the review register), not build output.
!docs/build/
