From 50af938d0cfb92a86a013e4df7c0af5842e71521 Mon Sep 17 00:00:00 2001 From: David Schaefer <david.schaefer@ufz.de> Date: Tue, 31 Aug 2021 11:43:28 +0200 Subject: [PATCH] [FIX] generic.flag: don't flag already flagged values --- saqc/funcs/generic.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/saqc/funcs/generic.py b/saqc/funcs/generic.py index 6beef3c53..8dd387788 100644 --- a/saqc/funcs/generic.py +++ b/saqc/funcs/generic.py @@ -12,7 +12,7 @@ from dios import DictOfSeries from saqc.constants import GOOD, BAD, UNFLAGGED from saqc.core.flags import initFlagsLike, Flags -from saqc.core.register import flagging, processing, _maskData +from saqc.core.register import flagging, processing, _maskData, _isflagged from saqc.core.visitor import ENVIRONMENT import operator as op @@ -255,6 +255,7 @@ def flag( if not np.issubdtype(mask.dtype, np.bool_): raise TypeError(f"generic expression does not return a boolean array") - flags[field] = mask.replace({False: UNFLAGGED, True: flag}) + m = ~_isflagged(flags[field], to_mask) & mask + flags[m, field] = flag return data, flags -- GitLab