]> Piment Noir Git Repositories - freqai-strategies.git/commitdiff
feat(quickadapter): add logging for invalid fit data in ExtremaWeightingTransformer
authorJérôme Benoit <jerome.benoit@piment-noir.org>
Wed, 7 Jan 2026 01:08:17 +0000 (02:08 +0100)
committerJérôme Benoit <jerome.benoit@piment-noir.org>
Wed, 7 Jan 2026 01:08:39 +0000 (02:08 +0100)
Add warning when fit() receives data with no finite values, improving
observability of data quality issues. Uses fallback [0.0, 1.0] to prevent
pipeline crashes while alerting users to upstream preprocessing problems.

quickadapter/user_data/strategies/ExtremaWeightingTransformer.py

index 613472f65945cc5a8e0fe76ea889a8b3efee8a93..89c727b49eae25d3ebd9d61d02ce25f554e77c93 100644 (file)
@@ -1,5 +1,6 @@
 from typing import Any, Final, Literal
 
+import logging
 import numpy as np
 import scipy as sp
 from datasieve.transforms.base_transform import (
@@ -16,6 +17,8 @@ from sklearn.preprocessing import (
     StandardScaler,
 )
 
+logger = logging.getLogger(__name__)
+
 WeightStrategy = Literal[
     "none",
     "amplitude",
@@ -355,7 +358,14 @@ class ExtremaWeightingTransformer(BaseTransform):
         values = np.asarray(X, dtype=float)
         finite_values = values[np.isfinite(values)]
 
-        fit_values = finite_values if finite_values.size > 0 else np.array([0.0, 1.0])
+        if finite_values.size == 0:
+            logger.warning(
+                "Invalid fit data: no finite values found in X, "
+                "using default fallback [0.0, 1.0]"
+            )
+            fit_values = np.array([0.0, 1.0])
+        else:
+            fit_values = finite_values
 
         self._fit_standardization(fit_values)