diff --git a/saqc/flagger/flags.py b/saqc/flagger/flags.py index 40b4f4802750ce30d36f3d72b323ae631664779d..bf64ec55668e664745aa608ab464668ac1b4da28 100644 --- a/saqc/flagger/flags.py +++ b/saqc/flagger/flags.py @@ -6,16 +6,14 @@ import dios from saqc.common import * from saqc.flagger.history import History import pandas as pd -from typing import Union, Dict, DefaultDict, Iterable, Tuple, Optional, Type +from typing import Union, Dict, DefaultDict, Optional, Type -_KEY = str _VAL = Union[pd.Series, History] -_DictLike = Union[ +DictLike = Union[ pd.DataFrame, dios.DictOfSeries, - Dict[_KEY, _VAL], - DefaultDict[_KEY, _VAL], - Iterable[Tuple[_KEY, _VAL]] + Dict[str, _VAL], + DefaultDict[str, _VAL], ] @@ -63,7 +61,7 @@ class Flags: make a df -> flags.to_frame() """ - def __init__(self, raw_data: Optional[Union[_DictLike, Flags]] = None, copy: bool = False): + def __init__(self, raw_data: Optional[Union[DictLike, Flags]] = None, copy: bool = False): if raw_data is None: raw_data = {} @@ -88,12 +86,7 @@ class Flags: """ result = {} - for obj in data: - - if isinstance(obj, tuple): - k, item = obj - else: - k, item = obj, data[obj] + for k, item in data.items(): if k in result: raise ValueError('raw_data must not have duplicate keys') @@ -267,7 +260,7 @@ class Flags: return str(self.to_dios()).replace('DictOfSeries', type(self).__name__) -def init_flags_like(reference: Union[pd.Series, _DictLike, Flags], initial_value: float = UNFLAGGED) -> Flags: +def init_flags_like(reference: Union[pd.Series, DictLike, Flags], initial_value: float = UNFLAGGED) -> Flags: """ Create empty Flags, from an reference data structure. @@ -301,13 +294,7 @@ def init_flags_like(reference: Union[pd.Series, _DictLike, Flags], initial_value if isinstance(reference, pd.Series): reference = reference.to_frame('f0') - for obj in reference: - - # unpack - if isinstance(obj, tuple): - k, item = obj - else: - k, item = obj, reference[obj] + for k, item in reference.items(): if not isinstance(k, str): raise TypeError(f"cannot use {k} as key, currently only string keys are allowed")