# Python
__pycache__/
*.py[cod]
*.egg-info/
.eggs/
build/
dist/
.venv/
venv/
.pytest_cache/
.mypy_cache/
.ruff_cache/
.hypothesis/
.coverage
# The hook tests spawn subprocesses, so a parallel coverage run drops
# .coverage.<host>.<pid>.<n> files in the repository root.
.coverage.*
coverage.xml
# Mutation-testing backups. A run that is interrupted leaves these
# behind, and a stray backup must never be committable.
*.mutbak
htmlcov/

# LaTeX build artifacts (docs/srs)
*.aux
*.bbl
*.bcf
*.blg
*.fdb_latexmk
*.fls
*.lof
*.log
*.lot
*.out
*.run.xml
*.synctex.gz
*.toc
docs/srs/main.pdf

# Editors and OS
.vscode/
.idea/
Thumbs.db
.DS_Store

# Generated example output
examples/output/

# Local-only material (never committed)
_private/

# Role-review push-gate attestation (local session state, never versioned)
.claude/.role_review_attestation.json
# Pre-push receipt (kit 0.2.15), beside the attestation and for the same
# reason. NOT needed for the receipt's key, which excludes this path by
# exact name; needed so the file does not enter the shipped-surface and
# house-style walks, both of which read tracked plus untracked-not-ignored
# paths and would otherwise scan a local state file.
.claude/.prepush_receipt.json
# Machine-local permission list, and a path list nobody else can use:
# it also made the house-style walk's verdict depend on one
# developer's global git ignore rather than on this repository.
.claude/settings.local.json

# Cygwin/MSYS crash dumps, machine junk
*.stackdump

# Generated by setuptools-scm at build time (DD-38); the version is
# derived from the repository, never committed.
itaca/core/_version.py
