__pycache__/
*.py[cod]
*.egg-info/
dist/
build/
.venv/
venv/
.env

.pytest_cache/
.mypy_cache/
.ruff_cache/
.coverage
htmlcov/

.DS_Store
.idea/
.vscode/
.claude/

site/
docs/_build/

# Tutorial / example export artefacts — produced on demand by
# scripts/render_tutorial.py, not part of the source tree.
*.docx
*.pptx
*.xlsx
examples/tutorial_*.docx
examples/tutorial_*.pptx
examples/tutorial_*.xlsx
examples/tutorial_*.png
!tests/fixtures/**/*.docx
!tests/fixtures/**/*.pptx
!tests/fixtures/**/*.xlsx

# Hypothesis example database (auto-managed)
.hypothesis/

# uv writes a lockfile when ``uv add`` / ``uv pip install`` is used
# locally; the project pins its runtime versions explicitly in
# pyproject.toml + paper/replication/requirements.txt, so the uv
# lockfile is a local convenience that should not ship.
uv.lock

# JSS paper bundle — paper/ contains the manuscript, bibliography,
# embedded figures, and replication archive. The .tex / .bib / .py /
# .R sources are ALWAYS tracked. Replication outputs are tracked in
# the text formats reviewers diff (json / tex / md / html / png /
# pdf / svg) so the archive ships with a working baseline; only the
# heavy regenerable Office binaries (docx / pptx / xlsx) and the
# fontconfig / mpl cache directories are ignored.
paper/replication/trial.csv
paper/replication/table*.docx
paper/replication/table*.pptx
paper/replication/table*.xlsx
paper/replication/.mplconfig/

# Submission-required text outputs and figures: explicit re-include.
# The blanket repo-wide ``*.docx`` rule at the top of this file would
# otherwise eat ``paper/replication/table*.html`` etc. — these
# negations keep them tracked.
!paper/replication/paper_outputs*.json
!paper/replication/table*.html
!paper/replication/table*.tex
!paper/replication/table*.md
!paper/replication/figures/
!paper/replication/figures/*

# The `paper/figures/` directory IS tracked because paper.tex embeds
# its PDFs/PNGs via \includegraphics. To regenerate, run
# paper/replication/example_trial.py then copy the desired files in.
!paper/figures/
!paper/figures/*

# LaTeX build artefacts (in case anyone compiles paper.tex locally).
paper/*.aux
paper/*.log
paper/*.out
paper/*.toc
paper/*.bbl
paper/*.blg
paper/*.synctex.gz
paper/paper.pdf


# paper/ is excluded from the public repo until JSS submission lands.
# It stays in the local working tree for editing; the replication
# archive moves into the repo at submission time.
paper/
