# Dependencies
node_modules/
venv/
.venv/
__pycache__/

# Build
dist/
build/
target/

# Environment
.env
.env.local
.env.*.local

# IDE
.idea/
.vscode/
*.swp
*.swo

# OS
.DS_Store
Thumbs.db

# Python tooling caches and coverage artefacts produced by this repo's own targets
.pytest_cache/
.ruff_cache/
.mypy_cache/
.coverage
.coverage.*
coverage.xml
htmlcov/
*.egg-info/

# make cover's mkdir-based concurrency guard (B-090). Removed on every exit
# path by its own trap; this entry only matters if that trap is bypassed
# (e.g. SIGKILL) and the lock dir is left stranded in a checkout.
.make-cover.lock/

# Dedicated license-measurement environments built by scripts/licenses.py
# (PDF-02 Design §4.2). The inventory is generated from a pinned --no-dev
# closure, never from the ambient venv, so these are build scratch, not sources.
.venv-licenses/
.venv-licenses-dev/

# Per-interpreter environments built by `make ci PYTHON=<x.y>` (PDF-28 B-029,
# AC15). `.venv/` above is the exact-name entry for the ambient venv; this is
# deliberately a separate glob rather than widening it to `.venv*/`.
.venv-py*/

# Scratch space for manual probing against real documents. Never committed.
.scratch/
