# Python
__pycache__/
*.py[cod]
*$py.class
*.so
.Python
build/
develop-eggs/
dist/
downloads/
eggs/
.eggs/
lib/
lib64/
parts/
sdist/
var/
wheels/
*.egg-info/
.installed.cfg
*.egg

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

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

# LaTeX
*.aux
*.log
*.out
*.toc
*.synctex.gz
*.fls
*.fdb_latexmk
*.nav
*.snm
*.vrb
*.bbl
*.blg
*.dvi
*.ps
*.600pk
*.600gf
*.fuzz.log
*.pdflatex.log

# Generated font files
*.tfm
*.pk
*.gf

# LaTeX infrastructure (copied during build, originals in examples/infrastructure/)
examples/*/*.sty
examples/*/*.mf
hw/*.sty
hw/*.mf

# But keep example PDFs
!examples/*.pdf
!docs/*.pdf

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

# Test outputs
test_outputs/
*.test.tex
*.test.pdf

# Coverage
.coverage
htmlcov/
.pytest_cache/

# mypy
.mypy_cache/

# ruff
.ruff_cache/

# Claude Code local settings (machine-specific, not team-wide)
.claude/settings.local.json

# Homework - private (instructor-provided content, personal coursework)
hw/
hw[0-9]*/

# Tutorial project
rpn2tex/

# Test-phase artefacts that must not re-enter the tree.
# phase_a_* and phase12_* were transient PDFs from the Phase 1 test run;
# *.disabled marks input files that were disabled pending parser fixes.
examples/*/phase_a_*.pdf
examples/*/phase12_*.pdf
*.disabled

