From 4ec76257aab7d3639a82869c77c3bdfb7611a8d6 Mon Sep 17 00:00:00 2001
From: Bert Palm <bert.palm@ufz.de>
Date: Tue, 2 Mar 2021 14:47:33 +0100
Subject: [PATCH] fixed changepoints.py

---
 saqc/flagger/flags.py      |  1 +
 saqc/funcs/changepoints.py | 13 +++++++------
 2 files changed, 8 insertions(+), 6 deletions(-)

diff --git a/saqc/flagger/flags.py b/saqc/flagger/flags.py
index 84fc97a78..c06d8da4e 100644
--- a/saqc/flagger/flags.py
+++ b/saqc/flagger/flags.py
@@ -190,6 +190,7 @@ class Flags:
         # technically it would be possible to select a field and set
         # the entire column to a scalar flag value (float), but it has
         # a high potential, that this is not intended by the user.
+        # if desired use ``flagger[:, field] = flag``
         if not isinstance(value, pd.Series):
             raise ValueError("must pass value of type pd.Series")
 
diff --git a/saqc/funcs/changepoints.py b/saqc/funcs/changepoints.py
index f7234aa6f..9657b53d0 100644
--- a/saqc/funcs/changepoints.py
+++ b/saqc/funcs/changepoints.py
@@ -30,7 +30,7 @@ def flagChangePoints(
         fwd_window: Optional[FreqString]=None,
         min_periods_fwd: Optional[IntegerWindow]=None,
         closed: Literal["right", "left", "both", "neither"]="both",
-        try_to_jit: bool=True,
+        try_to_jit: bool=True,  # todo rm
         reduce_window: FreqString=None,
         reduce_func: Callable[[np.ndarray, np.ndarray], int]=lambda x, _: x.argmax(),
         **kwargs
@@ -107,7 +107,7 @@ def assignChangePointCluster(
         fwd_window: str=None,
         min_periods_fwd: Optional[int]=None,
         closed: Literal["right", "left", "both", "neither"]="both",
-        try_to_jit: bool=True,
+        try_to_jit: bool=True,  # todo: rm
         reduce_window: str=None,
         reduce_func: Callable[[np.ndarray, np.ndarray], float]=lambda x, _: x.argmax(),
         model_by_resids: bool=False,
@@ -205,7 +205,7 @@ def assignChangePointCluster(
             stat_func = jit_sf
             thresh_func = jit_tf
             try_to_jit = True
-        except (numba.core.errors.TypingError, numba.core.errors.UnsupportedError, IndexError):
+        except (numba.TypingError, numba.UnsupportedError, IndexError):
             try_to_jit = False
             logging.warning('Could not jit passed statistic - omitting jitting!')
 
@@ -219,7 +219,7 @@ def assignChangePointCluster(
         residues = pd.Series(np.nan, index=data[field].index)
         residues[masked_index] = stat_arr
         data[field] = residues
-        flagger = flagger.setFlags(field, flag=UNFLAGGED, force=True, **kwargs)
+        flagger[:, field] = UNFLAGGED
         return data, flagger
 
     det_index = masked_index[result_arr]
@@ -239,10 +239,11 @@ def assignChangePointCluster(
         # (better to start cluster labels with number one)
         cluster += 1
         data[field] = cluster
-        flagger = flagger.setFlags(field, flag=UNFLAGGED, force=True, **kwargs)
+        flagger[:, field] = UNFLAGGED
 
     if flag_changepoints:
-        flagger = flagger.setFlags(field, loc=det_index)
+        # todo: does not respect kwargs[flag]
+        flagger[det_index, field] = BAD
     return data, flagger
 
 
-- 
GitLab