From 704ebd67d8d0cceeda1b9f91161872014e197da4 Mon Sep 17 00:00:00 2001
From: ahmedk <karim.ahmed@xfel.eu>
Date: Fri, 29 Sep 2023 16:06:36 +0200
Subject: [PATCH] refactor get_gain_mode and split code

---
 src/cal_tools/jungfraulib.py | 34 ++++++++++++++++++----------------
 1 file changed, 18 insertions(+), 16 deletions(-)

diff --git a/src/cal_tools/jungfraulib.py b/src/cal_tools/jungfraulib.py
index fdfdb0bd5..a7041c5f7 100644
--- a/src/cal_tools/jungfraulib.py
+++ b/src/cal_tools/jungfraulib.py
@@ -1,8 +1,10 @@
-from typing import Optional, Tuple
+from logging import warning
+from typing import Tuple
 
 import extra_data
 
-from cal_tools.enums import JungfrauGainMode, JungfrauSettings
+from cal_tools.enums import JungfrauGainMode as JGM
+from cal_tools.enums import JungfrauSettings
 
 
 def _old_settings_to_new(settings: str, index: int) -> str:
@@ -98,22 +100,22 @@ class JungfrauCtrl():
         else:  # JungfrauSettings.GAIN_0
             return 0
 
-    def get_gain_mode(self) -> int:
-        """Get gain mode value. Fixed `1` or Adaptive `1`.
-        - `0` if run_mode = dynamic, forceswitchg1, forceswitchg2, or None.
-        - `1` if run_mode = fixg1 or fixg2.
-        """
+    def get_gain_mode_str(self):
         # Check if run_mode is of an old settings to convert
         # into new mode value.
-        if self.run_mode in [m.value for m in JungfrauGainMode]:
-            mode = self.run_mode
+        if self.run_mode in [m.value for m in JGM]:
+            return self.run_mode
         else:
-            mode = _old_settings_to_new(self.run_mode, 1)
-        
-        if mode in [
-            JungfrauGainMode.FIX_GAIN_1.value,
-            JungfrauGainMode.FIX_GAIN_2.value,
-        ]:
+            return _old_settings_to_new(self.run_mode, 1)
+
+    def get_gain_mode(self) -> int:
+        """Get gain mode value. Fixed `1` or Adaptive `0`.
+        Returns:
+            (int): gain mode parameter condition
+        """
+        gm_enum = self.get_gain_mode_str()
+
+        if gm_enum in [JGM.FIX_GAIN_1.value, JGM.FIX_GAIN_2.value]:
             return 1
-        else:  # DYNAMIC, FORCE_SWITCH_G1, or FORCE_SWITCH_G2
+        else:  # DYNAMIC, FORCE_SWITCH_G1, FORCE_SWITCH_G2 or None
             return 0
-- 
GitLab