From a1e72a7a60a48993c02d66b33c01700336a7474f Mon Sep 17 00:00:00 2001 From: David Schaefer <david.schaefer@ufz.de> Date: Tue, 20 Dec 2022 09:42:46 +0100 Subject: [PATCH] lift the value range restriction from the FloatFlagger --- saqc/core/translation/basescheme.py | 22 ++++++++++------------ 1 file changed, 10 insertions(+), 12 deletions(-) diff --git a/saqc/core/translation/basescheme.py b/saqc/core/translation/basescheme.py index cf3f0ab78..1d8943276 100644 --- a/saqc/core/translation/basescheme.py +++ b/saqc/core/translation/basescheme.py @@ -199,22 +199,20 @@ class FloatScheme(TranslationScheme): DFILTER_DEFAULT: float = FILTER_ALL - def _check(self, val): - return ~((val < 0) | (val > 255) | (val != UNFLAGGED)) - def __call__(self, flag: float | int) -> float: - if self._check(flag): + + try: return float(flag) - raise ValueError( - f"invalid flag, expected a numerical value in the interval [0, 255], got: {flag}" - ) + except (TypeError, ValueError, OverflowError): + raise ValueError(f"invalid flag, expected a numerical value, got: {flag}") def forward(self, flags: pd.DataFrame | DictOfSeries) -> Flags: - if self._check(flags): - return Flags(flags) - raise ValueError( - f"invalid flag, expected a collection of numerical value in the interval [0, 255], got: {flags}" - ) + try: + return Flags(flags.astype(float)) + except (TypeError, ValueError, OverflowError): + raise ValueError( + f"invalid flag(s), expected a collection of numerical values, got: {flags}" + ) def backward(self, flags: Flags, attrs: dict | None = None) -> DictOfSeries: out = flags.toDios() -- GitLab