From 32b60f6c47cc5fc0149cdd0676191f53d046c546 Mon Sep 17 00:00:00 2001
From: ahmedk <karim.ahmed@xfel.eu>
Date: Fri, 13 Oct 2023 15:28:21 +0200
Subject: [PATCH] sort_by and sort_values instead of a dict and clean up some
 test comments

---
 src/cal_tools/agipdlib.py | 25 ++++++++++++-------------
 tests/test_agipdlib.py    | 10 +++-------
 2 files changed, 15 insertions(+), 20 deletions(-)

diff --git a/src/cal_tools/agipdlib.py b/src/cal_tools/agipdlib.py
index 909ca7cc1..6707c0d9b 100644
--- a/src/cal_tools/agipdlib.py
+++ b/src/cal_tools/agipdlib.py
@@ -343,19 +343,18 @@ class AgipdCtrlRuns:
         assert len(self.runs) == 3, f"AGIPD dark runs are expected to be 3. {len(self.runs)} runs are given."  # noqa
         # Expected patterns:
         # XRay: 0, DarkHG: 1, DarkMG: 2, DarkLG: 3, PC: 4 and CS: 5.
-        sort_by = {}
-
-        if self.gain_modes == self.adaptive_gain_modes:  # Adaptive gain
+        sort_by = None
+        sort_values = []
+        if self.gain_modes == self.adaptive_gain_modes:  # Adaptive gain # sort by patterns
             # Patterns -> DarkHG: 1, DarkMG: 2, DarkLG: 3
             if "AGIPD1M" in self.ctrl_src:
-                pattern_dataset = "patternTypeIndex"
+                sort_by = "patternTypeIndex"
             elif "AGIPD500K" in self.ctrl_src:
-                pattern_dataset = "expTypeIndex"
+                sort_by = "expTypeIndex"
 
-            sort_by[pattern_dataset] = []  # sort by patterns
             for c in self.run_ctrls:
-                sort_by[pattern_dataset].append(c.run_dc[
-                    self.ctrl_src, pattern_dataset].as_single_value())
+                sort_values.append(
+                    c.run_dc[self.ctrl_src, sort_by].as_single_value())
 
         # Check if a mix of adaptive and fixed gain runs.
         elif any(gm == AgipdGainMode.ADAPTIVE_GAIN for gm in self.gain_modes):
@@ -363,18 +362,18 @@ class AgipdCtrlRuns:
                 f"Given runs {self.runs} have a mix of ADAPTIVE and "
                 f"FIXED gain modes: {self.gain_modes}.")
         else:  # Fixed gain: Patterns is X-Ray: 0 for all runs.
-            sort_by["gainModeIndex"] = [int(gm) for gm in self.gain_modes]
+            sort_by = "gainModeIndex"
+            sort_values = [int(gm) for gm in self.gain_modes]
 
-        zipped_lists = zip(
-            list(sort_by.values())[0], self.runs, self.run_ctrls)
+        zipped_lists = zip(sort_values, self.runs, self.run_ctrls)
 
         # Sort the lists based on the patterns
         sorted_zipped_lists = sorted(zipped_lists, key=lambda item: item[0])
         _, sorted_runs, sorted_run_ctrls = zip(*sorted_zipped_lists)
         if sorted_runs != self.runs:
             Warning("Given dark runs are unsorted. Runs will be sorted from"
-                    f" {self.runs} with {list(sort_by.keys())[0]}"
-                    f" {list(sort_by.values())} to {sorted_runs}.")
+                    f" {self.runs} with {sort_by}:"
+                    f" {sort_values} to {sorted_runs}.")
             # Update run_ctrls and runs order
             self.runs = list(sorted_runs)
             self.run_ctrls = list(sorted_run_ctrls)
diff --git a/tests/test_agipdlib.py b/tests/test_agipdlib.py
index b8d44ec1f..89ef4054d 100644
--- a/tests/test_agipdlib.py
+++ b/tests/test_agipdlib.py
@@ -203,16 +203,12 @@ def test_get_gain_mode(mock_agipd1m_run):
     assert gain_mode == 0
 
 
-"""
-Testing `AgipdCtrlRuns`
+"""Testing `AgipdCtrlRuns`"""
 
-Runs used:
-FIXED: /gpfs/exfel/exp/CALLAB/202130/p900203/raw/[9011,9012,9013]
-ADAPTIVE: /gpfs/exfel/exp/CALLAB/202130/p900203/raw/[9015,9016,9017]
-"""
 TEST_RAW_FOLDER = "/gpfs/exfel/exp/CALLAB/202130/p900203/raw/"
 SPB_FIXED_RUNS = [9011, 9012, 9013]
 SPB_ADAPTIVE_RUNS = [9015, 9016, 9017]
+
 FIXED_CTRL_RUNS = AgipdCtrlRuns(
     raw_folder=TEST_RAW_FOLDER,
     runs=SPB_FIXED_RUNS,
@@ -329,4 +325,4 @@ def test_raise_sort_dark_runs():
         ctrl_src=CTRL_SRC,
     )
     with pytest.raises(ValueError):
-        adaptive_fixed_ctrls.sort_dark_runs()
\ No newline at end of file
+        adaptive_fixed_ctrls.sort_dark_runs()
-- 
GitLab