Flagger Translations
Implements the basic translation machinery and translation schemes for the former DmpFlagger
and PositionalFlagger
.
Description
The class saqc.core.translator.Translator
provides the basic interface and implementation for all other translation schemes. Currently Translator
provides three methods:
-
forward
: to translate user flags to internal flags (pd.DataFrame
->Flags
) -
__call__
: to translate a user flag into an internal flag (str | int | float
->float
) -
backward
: to translate internal flags to user flags (Flags
->pd.DataFrame
)
Three translator implementations currently exists:
-
saqc.core.translator.DmpTranslator
: implements the DMP flagging scheme -
saqc.core.translator.PositionalFlagger
: implements the positional flagging scheme -
saqc.core.translator.FloatTranslator
: serves as the default translation schemes but only provides the flags{-np.inf, 0..255}
. This restriction is arbitrary and can be relaxed if needed.
The integration into the entire system is done within the core, namely in saqc.core.core._wrap.inner
. Here every flag is translated as soon as it reaches the SaQC
object. Within the system only the internal float
-flags will be passed around, the final (and only) back translation occurs in SaQC.getResult
.
To ensure consistency with the translation scheme (chosen in To ensure consistency with the translation scheme (chosen in SaQC.__init__
) only flag values available in the respective scheme are allowed, which leads to #183 (closed) .SaQC.__init__
) and to address #183 (closed), the user and the internal flags provided in the translation scheme (i.e. the keys
and the values
of the respective dict
) are accepted (but no others)
Currently it is not clear, if the current flags/history implementation is general enough to support the For the time being, we work around the concerns raises in #182 (closed) within the translations.PositionalTranslator
(see #182 (closed)).
To the reviewer
Ready for review @palmb and @luenensc. There are (quite a) few unrelated changes, mostly fixes of comments, trailing whitespaces and type hints. I know, that the disturb the review process, but as I stumbled upon them, I fixed them along the way. The main changes concentrate on the files:
-
sacq/core/translator.py
and the respective tests intests/core/test_translator.py
-
saqc/core/core.py
.