.#*
*~
*#
.idea
.vscode
.pydevproject
venv/
.cache
**/.*env
*.pyc
**/__pycache__
.pytest_cache/
dist
.eggs/
*.egg-info
**/build
*.swp
*.orig
.project
.coverage*
_version.py.bld
.mypy_cache
**/build.log
.eggs
ignored
**/.ipynb_checkpoints
.s3_cache
.Trash-*
.DS_Store
**/_tmp
.data
*.so
.aws
VERSION
activate
.tox
.docker
.pypirc

# uv
.venv/
uv.lock
test-env/
.uv-cache/

# Floor-level audit artifact (regenerated by dependency-update.yml
# and ad-hoc by bin/audit-floor.sh; not committed)
uv-lowest.lock

# Temporary files
*.tmp
*.temp
temp.*
tmp/

# MkDocs documentation
site/

# Non-essential test coverage reports
coverage.xml
packages/data/coverage.xml

# Quality check artifacts
#
# No coverage XML is committed. The gate's only use for it was a line-rate it
# treats as a warning and never a failure, and that number is now recorded in
# quality-summary.json directly. Committing the report cost a merge conflict per
# pull request (it appeared in 399 of the last 404 artifact commits) and over a
# gigabyte of object history, to carry one float.
#
# Every `!` line below enlarges what CI attests, not just what git tracks: the
# signature enumerates this directory by glob (`git ls-files --cached --others
# --exclude-standard -- '*.json' '*.xml'`), so a file un-ignored here joins the
# signed set the moment something writes it. lint-report.json was un-ignored for
# a writer that never existed — a reader in diagnose-quality-failures.sh and an
# allowance, with nothing in between. Removed rather than left as a slot a future
# write could fall into silently.
.quality-artifacts/*
!.quality-artifacts/quality-summary.json
!.quality-artifacts/environment.json
!.quality-artifacts/unit-test-results.xml
!.quality-artifacts/integration-test-results.xml
!.quality-artifacts/style-check.json
!.quality-artifacts/signature.sha256

# Diagnostics from a check-only run: per-package test output, coverage reports,
# validation and docs logs. Read by bin/diagnose-quality-failures.sh and by
# whoever is looking at a failure; read by no CI step, and deliberately outside
# .quality-artifacts/ so that a checker can write freely without being able to
# reach the evidence the gate produces. Cleared at the start of each run, so what
# is here is one run's.
.quality-reports/
