]> Piment Noir Git Repositories - freqai-strategies.git/commitdiff
fix(quickadapter): handle missing scaler attributes in ExtremaWeightingTransformer
authorJérôme Benoit <jerome.benoit@piment-noir.org>
Sun, 4 Jan 2026 17:06:10 +0000 (18:06 +0100)
committerJérôme Benoit <jerome.benoit@piment-noir.org>
Sun, 4 Jan 2026 17:06:10 +0000 (18:06 +0100)
Use getattr with default None value to properly handle cases where scaler
attributes don't exist (e.g., when loading pre-existing models), allowing
the RuntimeError to be raised with a clear message instead of AttributeError.

quickadapter/user_data/strategies/ExtremaWeightingTransformer.py

index d1c0d4e289d017275cdfa44bad33fce7da934d6e..ec02507f22c103d4f3708f64307e58f45664f5fa 100644 (file)
@@ -157,7 +157,7 @@ class ExtremaWeightingTransformer(BaseTransform):
                 f"Invalid standardization {method!r}. "
                 f"Supported: {', '.join(STANDARDIZATION_TYPES)}"
             )
-        scaler = getattr(self, scaler_attr)
+        scaler = getattr(self, scaler_attr, None)
         if scaler is None:
             raise RuntimeError(f"{scaler_attr[1:]} not fitted")
         return self._apply_scaler(values, mask, scaler, inverse=False)
@@ -179,7 +179,7 @@ class ExtremaWeightingTransformer(BaseTransform):
                 f"Invalid normalization {method!r}. "
                 f"Supported: {', '.join(NORMALIZATION_TYPES)}"
             )
-        scaler = getattr(self, scaler_attr)
+        scaler = getattr(self, scaler_attr, None)
         if scaler is None:
             raise RuntimeError(f"{scaler_attr[1:]} not fitted")
         return self._apply_scaler(values, mask, scaler, inverse=False)
@@ -213,7 +213,7 @@ class ExtremaWeightingTransformer(BaseTransform):
                 f"Invalid standardization {method!r}. "
                 f"Supported: {', '.join(STANDARDIZATION_TYPES)}"
             )
-        scaler = getattr(self, scaler_attr)
+        scaler = getattr(self, scaler_attr, None)
         if scaler is None:
             raise RuntimeError(f"{scaler_attr[1:]} not fitted")
         return self._apply_scaler(values, mask, scaler, inverse=True)
@@ -235,7 +235,7 @@ class ExtremaWeightingTransformer(BaseTransform):
                 f"Invalid normalization {method!r}. "
                 f"Supported: {', '.join(NORMALIZATION_TYPES)}"
             )
-        scaler = getattr(self, scaler_attr)
+        scaler = getattr(self, scaler_attr, None)
         if scaler is None:
             raise RuntimeError(f"{scaler_attr[1:]} not fitted")
         return self._apply_scaler(values, mask, scaler, inverse=True)