From: Jérôme Benoit Date: Wed, 7 Jan 2026 01:08:17 +0000 (+0100) Subject: feat(quickadapter): add logging for invalid fit data in ExtremaWeightingTransformer X-Git-Url: https://git.piment-noir.org/?a=commitdiff_plain;h=082641c5ef691bc743495b70035df8e1dfacd3d8;p=freqai-strategies.git feat(quickadapter): add logging for invalid fit data in ExtremaWeightingTransformer 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. --- diff --git a/quickadapter/user_data/strategies/ExtremaWeightingTransformer.py b/quickadapter/user_data/strategies/ExtremaWeightingTransformer.py index 613472f..89c727b 100644 --- a/quickadapter/user_data/strategies/ExtremaWeightingTransformer.py +++ b/quickadapter/user_data/strategies/ExtremaWeightingTransformer.py @@ -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)