diff --git a/.gitignore b/.gitignore index 8749e6a85..09815790f 100644 --- a/.gitignore +++ b/.gitignore @@ -39,3 +39,6 @@ common/GitInfo.cpp # Review reports, work plans and investigation notes. They are working material for one task, they # go stale the moment the code moves, and Sphinx would publish anything left under docs/. docs/review/ + +# Python bytecode (tools/battery and the root scripts) +__pycache__/ diff --git a/tools/battery/battery.py b/tools/battery/battery.py new file mode 100644 index 000000000..97899f090 --- /dev/null +++ b/tools/battery/battery.py @@ -0,0 +1,445 @@ +#!/usr/bin/env python3 +"""Rugnux validation battery: run, score, report, compare. + +Arms and where their truth comes from: + open public PDB depositions (and a few published small-molecule sets); scored against the + deposited space group, cell and resolution. Manifest: open.json (committed). + inhouse standard test crystals measured at PSI (lysozyme, thaumatin, insulin, cytochrome C, + myoglobin) plus no-crystal controls; scored against XDS (point group only - XDS never + tests a screw axis). Manifest: inhouse.json (committed). + private user data, scored like inhouse. Its manifest lives OUTSIDE the repository (path in the + site config) and a private run gets its own run directory and report. + +Usage: + battery.py run --rugnux BIN --label L [--arm open,inhouse|private] [--only a,b | --tier smoke] + [--build-dir DIR] [--gpulock] [--threads N] [--unforced] [--baseline RUN] + battery.py compare RUN_A RUN_B [--all] [--rerun-changed] + battery.py report RUN --out DIR [--baseline RUN] re-render a run's report + battery.py discover [--refresh] open arm: propose inputs for new directories + battery.py refs --arm inhouse|private [--write] re-read the XDS references from CORRECT.LP + +A run writes /__