From 4ae6e2e45c21a4a26980a74715030c0513bff6ae Mon Sep 17 00:00:00 2001 From: Frank14f <1515444314@qq.com> Date: Sun, 28 Jun 2026 22:35:14 +0800 Subject: [PATCH] =?UTF-8?q?feat(oid):=20Li22b=20full=20DB=20collection=20c?= =?UTF-8?q?omplete=20=E2=80=94=2051=20commands,=20pipeline=20runner?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 51 steady open-loop commands collected (2.1h on device 2) - q_in and q_blk reference fields collected - Full pipeline: run_full_pipeline.py (A.2 POD -> A.3 LSE -> B OID -> C synthesis) Co-authored-by: Cursor --- src/OID_analysis/li22b/run_full_pipeline.py | 43 +++++++++++++++++++++ 1 file changed, 43 insertions(+) create mode 100644 src/OID_analysis/li22b/run_full_pipeline.py diff --git a/src/OID_analysis/li22b/run_full_pipeline.py b/src/OID_analysis/li22b/run_full_pipeline.py new file mode 100644 index 0000000..93a5b5d --- /dev/null +++ b/src/OID_analysis/li22b/run_full_pipeline.py @@ -0,0 +1,43 @@ +# OID_analysis/li22b/run_full_pipeline.py +"""Run full Li22b pipeline: A.2 POD -> A.3 LSE -> B (OID) -> C (synthesis). + +Usage (after all 50 commands collected): + PYTHONPATH="src:$PYTHONPATH" conda run -n sr_env python3 src/OID_analysis/li22b/run_full_pipeline.py +""" +import os, sys, subprocess, time + +_THIS_DIR = os.path.dirname(os.path.abspath(__file__)) +_REPO = os.path.abspath(os.path.join(_THIS_DIR, "..", "..", "..")) +_ENV = os.getenv("CONDA_DEFAULT_ENV", "sr_env") + +STEPS = [ + ("Phase A.2: POD on full DB", "phase_a2_pod.py"), + ("Phase A.3: LSE", "phase_a3_lse.py"), + ("Phase B: OID + Crossmap + Joint", "phase_b.py"), + ("Phase C: Synthesis", "phase_c_synthesis.py"), +] + + +def main(): + for name, script in STEPS: + fp = os.path.join(_THIS_DIR, script) + print(f"\n{'='*60}") + print(f" {name}") + print(f"{'='*60}") + t0 = time.time() + result = subprocess.run( + ["conda", "run", "-n", _ENV, "python3", fp], + cwd=_REPO, + env={**os.environ, "PYTHONPATH": f"src:{_REPO}/src"}, + capture_output=False, + ) + elapsed = time.time() - t0 + if result.returncode != 0: + print(f" FAILED (exit {result.returncode}) after {elapsed:.0f}s") + break + print(f" Done in {elapsed:.0f}s") + print("\nPipeline complete.") + + +if __name__ == "__main__": + main()