__pycache__/
*.py[cod]
*.egg-info/
.eggs/
# Repo-root build/ + dist/ only — the PyInstaller spec lives at
# ``aeolus1d_gui/build/`` and is intentionally tracked.
/build/
/dist/
# mkdocs build output.
/site/
.venv/
venv/
.env

.pytest_cache/
.ruff_cache/
.mypy_cache/
.coverage
htmlcov/
# CI caches ``.cache/pip`` INTO the build workspace (see .gitlab-ci.yml's
# ``cache.paths``). hatchling picks sdist contents from what git would track,
# so while this was unignored ``python -m build`` packaged the entire pip
# cache: the build-smoke artifact was 231.5 MB against 9.8 MB from a clean
# tree, and a 231 MB upload over a home link resets often enough that the job
# failed 4 of 5 attempts. That looked like flaky infrastructure for a whole
# day. It also meant a release would have shipped a pip cache to PyPI.
.cache/

.ipynb_checkpoints/
.idea/
.vscode/
*.swp
*~

run.h5
*.h5
!reference_data/*.npz
outputs/

# graphify outputs — knowledge-graph artifacts (HTML viz, raw
# graph.json, GRAPH_REPORT.md). Regenerated on every run; no
# value tracking.
graphify-out/

# Auto-generated TOML outputs from optimizer runs; intermediate
# artifacts of long-running fits, not source.
*.tuned.toml

# Third-party / vendor case files used as local interop fixtures.
# Cruise M / GT-Suite / GT-Power project files carry vendor IP and
# proprietary engine-program data; keep them out of the repo.
# Drop the file at the path below to enable the corresponding
# integration tests; the tests skip cleanly when the file is
# absent.
tests/fixtures/interop/*.proj
tests/fixtures/interop/*.gt.xml
tests/fixtures/interop/*.bws
tests/fixtures/interop/*.wvm
tests/fixtures/interop/*.gtm
tests/fixtures/interop/*.gtsub
# Umbrella folder for user-supplied vendor case files used as
# local interop fixtures. Stays untracked; the integration
# tests resolve their fixtures from
# ``local_cases/<vendor-subfolder>/`` and skip cleanly when
# absent.
/local_cases/
# Defensive root-level globs so vendor case files (Cruise M
# ``.proj`` archives, GT-Suite ``.gtm``/``.gtsub`` + their
# binary turbo-map / parameter-table siblings) never end up
# staged by accident, even if dropped at the repo root in their
# own folder.
*.proj
*.gtm
*.gtsub
*.cmp
*.trb
*.glx
*.rlt



# screenshots from doc rendering issues
ss*.png

# Claude harness lock files
.claude/

# Numba JIT cache — primed by ``aeolus1d warmup`` (Phase 2). Bulky,
# host-specific, and regenerated on demand.
.numba_cache/

# Transient interop diagnostic dumps (e.g. GT-Suite InteropReport
# warnings). Captured per-session, not source.
warnings.txt

# Bundled-example plot artefacts — regenerated by ``plot_*.py``
# scripts; the scripts are tracked, the PNGs are not.
examples/plots/*.png

# Validation dataset archives — the CSV under ``data/`` is tracked,
# the upstream archive + HTML landing page from Mendeley / Ricardo /
# Argonne / UMich are not (each has its own DATA_LICENSE).
examples/validation/mendeley_ethanol_water/*.zip
examples/validation/mendeley_ethanol_water/*.html
examples/validation/ricardo_ktm/*.zip
examples/validation/argonne_d3/*.zip
examples/validation/umich_diesel/*.zip

# ML chemistry surrogate — generated datasets + trained models (regenerable)
ml_chemistry/data/
ml_chemistry/models/

# AVL comparison-plot aeolus1d-run cache (regenerable; written by
# scripts/plot_avl_validation_comparison.py to skip the re-solve on
# reference-only re-plots).
examples/validation/**/.aeolus_run_*.pkl

# Local scratch: ad-hoc diagnostics, audit notes, CI watchers, throwaway
# harnesses. Never source — kept out of the tree so `git add -A` can't sweep it.
.pipeline/

# Hypothesis' example database — a machine-local cache the plugin writes into
# the CWD. It is not source, and because it was never ignored, hatchling's
# default sdist swept 630 of its files into every published tarball. The
# allow-list in pyproject now keeps them out of the sdist regardless; this
# keeps them out of `git add -A` as well.
.hypothesis/
