__pycache__/
*.py[cod]
.venv/
.pytest_cache/
.mypy_cache/
.ruff_cache/
.hypothesis/
build/
dist/
*.egg-info/
.benchmarks/

# Compiled tabulated cross-section tables: derived from the (uncommitted, user-side)
# EPICS libraries by pyradmc.data.tabulated.build, so not tracked.
*.npz

# Phase-space demo outputs derive from an external (proprietary, machine-local)
# phase-space file and are not reproducible in the repo, so they are not tracked.
examples/phasespace_demo.png
examples/phasespace_demo.csv
site/

# Vendor beam data and anything fitted from it. The workbook a head is commissioned
# against is licensed to its owner, not to this repository, and at ~500 KB it slips
# under the check-added-large-files gate rather than being caught by it. The fitted
# radial-fluence table is derived from those measured profiles, so it travels with
# them: the shipped default is the analytic cone, and PRIMARY_FLUENCE_FILE is the hook
# for the table you fit against your own data.
*.xlsx
examples/halcyon_primary_fluence.dat

# Everything the examples render. They are regenerable by definition -- that is what an
# example is -- and tracking them cost ~5 MB of binaries that no reader of the repository
# opens from here, churned on every re-run, and went stale against the scripts that write
# them. The figures the README embeds live in docs/assets/ instead, which is where a
# documentation asset belongs; an example's own output is not one.
examples/*.png
examples/*.csv

# Local scratch: comparison scripts, sweeps and figures that need the vendor workbook,
# plus the run logs they were driven from. Not reproducible here, so not tracked.
local_*
*.log

.vscode/

# Coverage and test-result artifacts (pytest --cov / --junitxml, uploaded to Codecov in CI)
.coverage
.coverage.*
coverage.xml
junit.xml
