From 172adc2f84c8f9fe6f0122c3781f19455465463c Mon Sep 17 00:00:00 2001
From: Thomas Kluyver <thomas@kluyver.me.uk>
Date: Fri, 24 Sep 2021 10:54:43 +0100
Subject: [PATCH] Add xfel-calibrate --constants-from option to reuse constant
 info from a calibration_metadata.yml

---
 src/xfel_calibrate/calibrate.py | 10 ++++++++++
 1 file changed, 10 insertions(+)

diff --git a/src/xfel_calibrate/calibrate.py b/src/xfel_calibrate/calibrate.py
index 159891a39..f6a762b44 100755
--- a/src/xfel_calibrate/calibrate.py
+++ b/src/xfel_calibrate/calibrate.py
@@ -23,6 +23,7 @@ import nbformat
 import numpy as np
 from jinja2 import Template
 from nbparameterise import extract_parameters, parameter_values, replace_definitions
+import yaml
 
 import cal_tools.tools
 
@@ -86,6 +87,11 @@ def make_initial_parser(**kwargs):
                         help='Name of concurrency parameter.'
                               'If not given, it is taken from configuration.')
 
+    parser.add_argument('--constants-from', type=str, help=(
+        "Path to a calibration-metadata.yml file. If given, "
+        "retrieved-constants will be copied to use for a new correction."
+    ))
+
     parser.add_argument('--priority', type=int, default=2,
                         help="Priority of batch jobs. If priority<=1, reserved"
                              " nodes become available.")
@@ -1073,6 +1079,10 @@ def run():
         'path': python_exe,
         'python-version': get_python_version(python_exe),
     }
+    if args["constants_from"]:
+        with open(args["constants_from"], "r", encoding='utf-8') as f:
+            d = yaml.safe_load(f)
+        metadata["retrieved-constants"] = d["retrieved-constants"]
     metadata.save()
 
     # Record installed Python packages for reproducing the environment
-- 
GitLab