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