The file src/28-flavour/run_all.py of the validation package of the paper 28-flav, rendered with an anchor per line; the file itself is beside this page.
1"""2run_all.py — the 28-flavour validation package, end to end3==========================================================4Runs the sixteen scripts through the registry (flvcommon), writes results.json — one record per family, carrying5the paper's ledger row(s) it witnesses — and exits nonzero if any family fails. Python ≥ 3.10 with numpy, sympy and scipy (tm2_jointfit);6≈ 1 minute (pmns_cp dominates).78 python3 run_all.py910Families (one per script, in the README's order):11 exact_core framed_koide | tier_b m10 delta revision_checks | quark_amp up_doubling spurion theta13 | neutrino pmns_cp12 tm2_jointfit | scale_a coupling_anchor alpha_probe13"""14import sys, time15import flvcommon1617FAMILIES = ["flv." + s for s in [18 "exact_core", "framed_koide",19 "tier_b", "m10", "delta", "revision_checks",20 "quark_amp", "up_doubling", "spurion", "theta13",21 "neutrino", "pmns_cp", "tm2_jointfit",22 "scale_a", "coupling_anchor", "alpha_probe"]]2324def main():25 t0 = time.time()26 for fam in FAMILIES:27 print(f"\n— {flvcommon.script_of(fam)}.py")28 flvcommon.run_block(fam)29 ok = flvcommon.summary(write=True)30 print(f"{len(flvcommon.RESULTS)} families, {len(flvcommon.MICRO)} micro-checks, {time.time() - t0:.0f} s; results.json written")31 sys.exit(0 if ok else 1)3233if __name__ == "__main__":34 main()35