TeX 53.2%
Python 46.6%
1# WP18 — reproducible pipeline. Targets: setup / test / simulate / figures / tables / paper / all / clean2PY ?= .venv/bin/python3PIP ?= .venv/bin/pip4WORKERS ?= 656.PHONY: all setup test test-fast simulate simulate-force simulate-quick robustness figures tables paper paper-inputs clean clean-results78# simulate is skipped when results/data/diagnostics.json exists (60-min run); `make clean-results` first to redo it9all: test simulate figures tables paper1011setup:12 python3 -m venv .venv13 $(PIP) install --upgrade pip14 $(PIP) install -r requirements.txt1516test:17 $(PY) -m pytest tests/ -q1819test-fast:20 $(PY) -m pytest tests/ -q -m "not slow"2122# Full run: baseline + all scenario groups + transitions + welfare (about 60 min on 18 cores).23# Skipped if results/data/diagnostics.json is present; `make clean-results` (or `make simulate-force`) reruns it.24simulate:25 @if [ -f results/data/diagnostics.json ]; then \26 echo "simulate: results/data/diagnostics.json present -> skipping the 60-min run (make clean-results to redo)"; \27 else $(MAKE) simulate-force; fi2829simulate-force:30 mkdir -p results/data results/logs results/figures results/tables31 $(PY) -m src.simulation --workers $(WORKERS) 2>&1 | tee results/logs/simulate.log32 $(PY) -m src.robustness3334# Smoke test of the whole pipeline (small panel, subset of scenarios, ~10 min)35simulate-quick:36 mkdir -p results/data results/logs37 $(PY) -m src.simulation --quick --workers $(WORKERS) 2>&1 | tee results/logs/simulate_quick.log38 $(PY) -m src.robustness3940robustness:41 $(PY) -m src.robustness4243figures:44 $(PY) -m src.figures4546tables:47 $(PY) -m src.tables4849# Copy the generated exhibits into paper/ (HARMONISATION: paper/figures, paper/tables are what main.tex includes)50paper-inputs:51 mkdir -p paper/figures paper/tables52 cp results/figures/fig*.pdf paper/figures/53 cp results/tables/*.tex paper/tables/5455paper: paper-inputs56 cd paper && latexmk -pdf main.tex5758clean:59 find . -name "__pycache__" -type d -prune -exec rm -rf {} +60 rm -rf .pytest_cache61 cd paper && latexmk -c 2>/dev/null || true62 cd paper && latexmk -c appendix_proofs_standalone.tex 2>/dev/null || true63 rm -f paper/appendix_proofs_standalone.pdf6465clean-results:66 rm -rf results/data/* results/figures/* results/tables/* results/logs/*67