From e92dbc8d7ff47ec6e66da61126fcfa2713326d20 Mon Sep 17 00:00:00 2001
From: ahmedk <karim.ahmed@xfel.eu>
Date: Tue, 27 Dec 2022 16:22:26 +0100
Subject: [PATCH] restful config client

---
 .../AGIPD/AGIPD_Correct_and_Verify.ipynb      | 23 ++-----------------
 ...IPD_Retrieve_Constants_Precorrection.ipynb | 23 ++-----------------
 src/cal_tools/restful_config.py               | 16 +++++++++++++
 3 files changed, 20 insertions(+), 42 deletions(-)

diff --git a/notebooks/AGIPD/AGIPD_Correct_and_Verify.ipynb b/notebooks/AGIPD/AGIPD_Correct_and_Verify.ipynb
index 090216708..5201f84d6 100644
--- a/notebooks/AGIPD/AGIPD_Correct_and_Verify.ipynb
+++ b/notebooks/AGIPD/AGIPD_Correct_and_Verify.ipynb
@@ -153,6 +153,7 @@
     "sns.set_context(\"paper\", font_scale=1.4)\n",
     "sns.set_style(\"ticks\")\n",
     "\n",
+    "import cal_tools.restful_config as rest_cfg\n",
     "from calibration_client import CalibrationClient\n",
     "from cal_tools import agipdalgs as calgs\n",
     "from cal_tools.agipdlib import (\n",
@@ -551,26 +552,6 @@
     "module_index_to_karabo_da = {mod: da for (mod, da) in zip(modules, karabo_da)}"
    ]
   },
-  {
-   "cell_type": "code",
-   "execution_count": null,
-   "metadata": {},
-   "outputs": [],
-   "source": [
-    "# Connect to CalCat.\n",
-    "calcat_config = restful_config['calcat']\n",
-    "client = CalibrationClient(\n",
-    "    base_api_url=calcat_config['base-api-url'],\n",
-    "    use_oauth2=calcat_config['use-oauth2'],\n",
-    "    client_id=calcat_config['user-id'],\n",
-    "    client_secret=calcat_config['user-secret'],\n",
-    "    user_email=calcat_config['user-email'],\n",
-    "    token_url=calcat_config['token-url'],\n",
-    "    refresh_url=calcat_config['refresh-url'],\n",
-    "    auth_url=calcat_config['auth-url'],\n",
-    "    scope='')"
-   ]
-  },
   {
    "cell_type": "code",
    "execution_count": null,
@@ -608,7 +589,7 @@
     "            integration_time=integration_time,\n",
     "            gain_mode=gain_mode,\n",
     "            module_idx=mod,\n",
-    "            client=client,\n",
+    "            client=rest_cfg.calibration_client(),\n",
     "        )\n",
     "        print(f\"Queried CalCat for {k_da}\")\n",
     "    return mod, when, k_da\n",
diff --git a/notebooks/AGIPD/AGIPD_Retrieve_Constants_Precorrection.ipynb b/notebooks/AGIPD/AGIPD_Retrieve_Constants_Precorrection.ipynb
index 3f4e7b43a..dc6bf84a2 100644
--- a/notebooks/AGIPD/AGIPD_Retrieve_Constants_Precorrection.ipynb
+++ b/notebooks/AGIPD/AGIPD_Retrieve_Constants_Precorrection.ipynb
@@ -89,6 +89,7 @@
     "from dateutil import parser\n",
     "from extra_data import RunDirectory\n",
     "\n",
+    "import cal_tools.restful_config as rest_cfg\n",
     "from calibration_client import CalibrationClient\n",
     "from cal_tools.agipdlib import AgipdCtrl, SnowResolution\n",
     "from cal_tools.calcat_interface import AGIPD_CalibrationData, CalCatError\n",
@@ -266,26 +267,6 @@
     "acq_rate = all_acq_rates.pop()"
    ]
   },
-  {
-   "cell_type": "code",
-   "execution_count": null,
-   "metadata": {},
-   "outputs": [],
-   "source": [
-    "# Connect to CalCat.\n",
-    "calcat_config = restful_config['calcat']\n",
-    "client = CalibrationClient(\n",
-    "    base_api_url=calcat_config['base-api-url'],\n",
-    "    use_oauth2=calcat_config['use-oauth2'],\n",
-    "    client_id=calcat_config['user-id'],\n",
-    "    client_secret=calcat_config['user-secret'],\n",
-    "    user_email=calcat_config['user-email'],\n",
-    "    token_url=calcat_config['token-url'],\n",
-    "    refresh_url=calcat_config['refresh-url'],\n",
-    "    auth_url=calcat_config['auth-url'],\n",
-    "    scope='')"
-   ]
-  },
   {
    "cell_type": "code",
    "execution_count": null,
@@ -305,7 +286,7 @@
     "    gain_mode=gain_mode,\n",
     "    gain_setting=gain_setting,\n",
     "    event_at=creation_time,\n",
-    "    client=client,\n",
+    "    client=rest_cfg.calibration_client(),\n",
     ")\n",
     "\n",
     "dark_constants = [\"Offset\", \"Noise\", \"BadPixelsDark\"] if gain_mode else [\"ThresholdsDark\", \"Offset\", \"Noise\", \"BadPixelsDark\"]\n",
diff --git a/src/cal_tools/restful_config.py b/src/cal_tools/restful_config.py
index 7a7944080..5eb32aad2 100644
--- a/src/cal_tools/restful_config.py
+++ b/src/cal_tools/restful_config.py
@@ -1,5 +1,6 @@
 from pathlib import Path
 
+from calibration_client import CalibrationClient
 from dynaconf import Dynaconf
 
 config_dir = Path(__file__).parent.resolve()
@@ -13,3 +14,18 @@ restful_config = Dynaconf(
     ],
     merge_enabled=True,
 )
+
+
+def calibration_client():
+    # Create client for CalCat.
+    calcat_config = restful_config.get('calcat')
+    return CalibrationClient(
+        base_api_url=calcat_config['base-api-url'],
+        use_oauth2=calcat_config['use-oauth2'],
+        client_id=calcat_config['user-id'],
+        client_secret=calcat_config['user-secret'],
+        user_email=calcat_config['user-email'],
+        token_url=calcat_config['token-url'],
+        refresh_url=calcat_config['refresh-url'],
+        auth_url=calcat_config['auth-url'],
+        scope='')
-- 
GitLab