From 85032515bc57ac22cb0a3631518e4d02931c11ff Mon Sep 17 00:00:00 2001 From: Bert Palm <bert.palm@ufz.de> Date: Fri, 26 Mar 2021 00:09:28 +0100 Subject: [PATCH] moved flags.py and history.py to core --- saqc/__init__.py | 4 +--- saqc/core/__init__.py | 1 + saqc/core/core.py | 2 +- saqc/{flagger => core}/flags.py | 12 +++++------- saqc/{flagger => core}/history.py | 0 saqc/core/modules/breaks.py | 2 +- saqc/core/modules/changepoints.py | 2 +- saqc/core/modules/constants.py | 2 +- saqc/core/modules/curvefit.py | 2 +- saqc/core/modules/flagtools.py | 2 +- saqc/core/modules/generic.py | 3 ++- saqc/core/modules/interpolation.py | 2 +- saqc/core/modules/outliers.py | 2 +- saqc/core/modules/pattern.py | 2 +- saqc/core/modules/resampling.py | 2 +- saqc/core/modules/residues.py | 2 +- saqc/core/modules/scores.py | 2 +- saqc/core/modules/tools.py | 2 +- saqc/core/modules/transformation.py | 2 +- saqc/core/reader.py | 6 ++---- saqc/core/register.py | 5 ++--- saqc/core/visitor.py | 1 - saqc/flagger/__init__.py | 5 ----- saqc/funcs/breaks.py | 3 +-- saqc/funcs/changepoints.py | 3 +-- saqc/funcs/constants.py | 3 +-- saqc/funcs/curvefit.py | 3 +-- saqc/funcs/drift.py | 2 +- saqc/funcs/flagtools.py | 5 +---- saqc/funcs/generic.py | 3 +-- saqc/funcs/interpolation.py | 11 ++++------- saqc/funcs/outliers.py | 18 +++++------------- saqc/funcs/pattern.py | 3 +-- saqc/funcs/resampling.py | 19 ++++++++----------- saqc/funcs/residues.py | 5 +---- saqc/funcs/rolling.py | 4 +--- saqc/funcs/scores.py | 7 ++----- saqc/funcs/tools.py | 5 +---- saqc/funcs/transformation.py | 5 +---- saqc/lib/plotting.py | 2 +- saqc/lib/tools.py | 2 +- saqc/lib/ts_operators.py | 3 --- saqc/lib/types.py | 7 ++++--- tests/common.py | 2 +- tests/core/test_core.py | 2 +- tests/core/test_creation.py | 2 +- tests/flagger/test_flags.py | 2 +- tests/flagger/test_history.py | 2 +- tests/funcs/test_constants_detection.py | 2 +- tests/funcs/test_functions.py | 2 +- tests/funcs/test_generic_config_functions.py | 2 +- tests/funcs/test_harm_funcs.py | 2 +- tests/funcs/test_modelling.py | 2 +- tests/funcs/test_pattern_rec.py | 2 +- tests/funcs/test_proc_functions.py | 2 +- tests/funcs/test_spikes_detection.py | 2 +- tests/fuzzy/init.py | 2 +- tests/fuzzy/test_masking.py | 2 +- 58 files changed, 79 insertions(+), 129 deletions(-) rename saqc/{flagger => core}/flags.py (99%) rename saqc/{flagger => core}/history.py (100%) delete mode 100644 saqc/flagger/__init__.py diff --git a/saqc/__init__.py b/saqc/__init__.py index d7155f47a..6262ae74d 100644 --- a/saqc/__init__.py +++ b/saqc/__init__.py @@ -5,6 +5,4 @@ __version__ = "1.4" # import order: from small to big from saqc.constants import * -from saqc.flagger import * -from saqc.core.register import register -from saqc.core.core import SaQC +from saqc.core import register, initFlagsLike, Flags, SaQC diff --git a/saqc/core/__init__.py b/saqc/core/__init__.py index 097236acb..0b4aacf33 100644 --- a/saqc/core/__init__.py +++ b/saqc/core/__init__.py @@ -2,4 +2,5 @@ # -*- coding: utf-8 -*- from saqc.core.register import register +from saqc.core.flags import Flags, initFlagsLike from saqc.core.core import SaQC, logger diff --git a/saqc/core/core.py b/saqc/core/core.py index 6d5ecbf16..2fe5c6e11 100644 --- a/saqc/core/core.py +++ b/saqc/core/core.py @@ -18,7 +18,7 @@ import timeit import inspect from saqc.constants import * -from saqc.flagger import initFlagsLike, Flagger +from saqc.core.flags import initFlagsLike, Flags as Flagger from saqc.core.lib import APIController, ColumnSelector from saqc.core.register import FUNC_MAP, SaQCFunction from saqc.core.modules import FuncModules diff --git a/saqc/flagger/flags.py b/saqc/core/flags.py similarity index 99% rename from saqc/flagger/flags.py rename to saqc/core/flags.py index 63d3a505f..1d95adf31 100644 --- a/saqc/flagger/flags.py +++ b/saqc/core/flags.py @@ -2,12 +2,14 @@ from __future__ import annotations -import dios -from saqc.constants import * -from saqc.flagger.history import History import pandas as pd +import dios from typing import Union, Dict, DefaultDict, Optional, Type, Tuple, Iterable +from saqc.constants import * +from saqc.core.history import History + + _VAL = Union[pd.Series, History] DictLike = Union[ pd.DataFrame, @@ -343,7 +345,3 @@ def initFlagsLike( result[k] = History(item) return Flags(result) - - -# for now we keep this name -Flagger = Flags diff --git a/saqc/flagger/history.py b/saqc/core/history.py similarity index 100% rename from saqc/flagger/history.py rename to saqc/core/history.py diff --git a/saqc/core/modules/breaks.py b/saqc/core/modules/breaks.py index b07edba09..6fab21ff3 100644 --- a/saqc/core/modules/breaks.py +++ b/saqc/core/modules/breaks.py @@ -6,8 +6,8 @@ import numpy as np from dios import DictOfSeries from saqc.constants import * -from saqc import Flagger from saqc.core.modules.base import ModuleBase +from saqc.core import Flags as Flagger from saqc.lib.types import FreqString, IntegerWindow, ColumnName diff --git a/saqc/core/modules/changepoints.py b/saqc/core/modules/changepoints.py index 19ed26d29..7e5946cc6 100644 --- a/saqc/core/modules/changepoints.py +++ b/saqc/core/modules/changepoints.py @@ -8,7 +8,7 @@ from dios import DictOfSeries from typing_extensions import Literal from saqc.constants import * -from saqc import Flagger +from saqc.core import Flags as Flagger from saqc.core.modules.base import ModuleBase from saqc.lib.types import FreqString, IntegerWindow diff --git a/saqc/core/modules/constants.py b/saqc/core/modules/constants.py index 22239aa09..6787b08ed 100644 --- a/saqc/core/modules/constants.py +++ b/saqc/core/modules/constants.py @@ -5,7 +5,7 @@ from typing import Tuple from dios import DictOfSeries from saqc.constants import * -from saqc import Flagger +from saqc.core import Flags as Flagger from saqc.core.modules.base import ModuleBase from saqc.lib.types import FreqString, ColumnName diff --git a/saqc/core/modules/curvefit.py b/saqc/core/modules/curvefit.py index c24ce08b0..de43a906b 100644 --- a/saqc/core/modules/curvefit.py +++ b/saqc/core/modules/curvefit.py @@ -6,7 +6,7 @@ from dios import DictOfSeries from typing_extensions import Literal from saqc.constants import * -from saqc import Flagger +from saqc.core import Flags as Flagger from saqc.core.modules.base import ModuleBase diff --git a/saqc/core/modules/flagtools.py b/saqc/core/modules/flagtools.py index 7cc2b1633..94b4748f8 100644 --- a/saqc/core/modules/flagtools.py +++ b/saqc/core/modules/flagtools.py @@ -7,7 +7,7 @@ import pandas as pd from dios.dios import DictOfSeries from typing_extensions import Literal -from saqc import Flagger +from saqc.core import Flags as Flagger from saqc.constants import * from saqc.core.modules.base import ModuleBase from saqc.lib.types import ColumnName diff --git a/saqc/core/modules/generic.py b/saqc/core/modules/generic.py index da80700c3..649f5aafb 100644 --- a/saqc/core/modules/generic.py +++ b/saqc/core/modules/generic.py @@ -7,7 +7,8 @@ import numpy as np import pandas as pd from dios import DictOfSeries -from saqc import Flagger, BAD +from saqc.constants import * +from saqc.core import Flags as Flagger from saqc.core.modules.base import ModuleBase diff --git a/saqc/core/modules/interpolation.py b/saqc/core/modules/interpolation.py index c9aed6105..8df763b90 100644 --- a/saqc/core/modules/interpolation.py +++ b/saqc/core/modules/interpolation.py @@ -8,7 +8,7 @@ import pandas as pd from dios import DictOfSeries from typing_extensions import Literal -from saqc import Flagger +from saqc.core import Flags as Flagger from saqc.constants import * from saqc.core.modules.base import ModuleBase from saqc.funcs.interpolation import _SUPPORTED_METHODS diff --git a/saqc/core/modules/outliers.py b/saqc/core/modules/outliers.py index bf8152039..d202af9b9 100644 --- a/saqc/core/modules/outliers.py +++ b/saqc/core/modules/outliers.py @@ -9,7 +9,7 @@ from dios import DictOfSeries from typing_extensions import Literal from saqc.constants import * -from saqc import Flagger +from saqc.core import Flags as Flagger from saqc.core.modules.base import ModuleBase from saqc.lib.types import IntegerWindow, FreqString, ColumnName diff --git a/saqc/core/modules/pattern.py b/saqc/core/modules/pattern.py index 38d083945..56db5f852 100644 --- a/saqc/core/modules/pattern.py +++ b/saqc/core/modules/pattern.py @@ -6,7 +6,7 @@ from typing import Sequence, Tuple from dios import DictOfSeries from saqc.constants import * -from saqc import Flagger +from saqc.core import Flags as Flagger from saqc.core.modules.base import ModuleBase diff --git a/saqc/core/modules/resampling.py b/saqc/core/modules/resampling.py index 9822bbd8b..e5996987a 100644 --- a/saqc/core/modules/resampling.py +++ b/saqc/core/modules/resampling.py @@ -9,7 +9,7 @@ from dios import DictOfSeries from typing_extensions import Literal from saqc.constants import * -from saqc import Flagger +from saqc.core import Flags as Flagger from saqc.core.modules.base import ModuleBase from saqc.funcs.interpolation import _SUPPORTED_METHODS diff --git a/saqc/core/modules/residues.py b/saqc/core/modules/residues.py index 877323546..d0a03bac9 100644 --- a/saqc/core/modules/residues.py +++ b/saqc/core/modules/residues.py @@ -8,7 +8,7 @@ from dios import DictOfSeries from typing_extensions import Literal from saqc.constants import * -from saqc import Flagger +from saqc.core import Flags as Flagger from saqc.core.modules.base import ModuleBase diff --git a/saqc/core/modules/scores.py b/saqc/core/modules/scores.py index a36e73d88..eafc44d09 100644 --- a/saqc/core/modules/scores.py +++ b/saqc/core/modules/scores.py @@ -8,7 +8,7 @@ import pandas as pd from dios import DictOfSeries from typing_extensions import Literal -from saqc import Flagger +from saqc.core import Flags as Flagger from saqc.core.modules.base import ModuleBase diff --git a/saqc/core/modules/tools.py b/saqc/core/modules/tools.py index 7d3c39859..16a19bc0e 100644 --- a/saqc/core/modules/tools.py +++ b/saqc/core/modules/tools.py @@ -6,7 +6,7 @@ from typing import Optional, Tuple from dios import DictOfSeries from typing_extensions import Literal -from saqc import Flagger +from saqc.core import Flags as Flagger from saqc.core.modules.base import ModuleBase diff --git a/saqc/core/modules/transformation.py b/saqc/core/modules/transformation.py index f85053fc5..ff94e0bbd 100644 --- a/saqc/core/modules/transformation.py +++ b/saqc/core/modules/transformation.py @@ -6,7 +6,7 @@ from typing import Callable, Optional, Union, Tuple import pandas as pd from dios import DictOfSeries -from saqc import Flagger +from saqc.core import Flags as Flagger from saqc.core.modules.base import ModuleBase diff --git a/saqc/core/reader.py b/saqc/core/reader.py index 32d5b6985..e5aa0bce9 100644 --- a/saqc/core/reader.py +++ b/saqc/core/reader.py @@ -2,19 +2,17 @@ # -*- coding: utf-8 -*- import ast -from saqc.core.core import ColumnSelector - import numpy as np - import pandas as pd +from saqc.core.core import ColumnSelector from saqc.core.config import Fields as F from saqc.core.visitor import ConfigFunctionParser from saqc.core.lib import ConfigController from saqc.core.register import FUNC_MAP - from saqc.lib.tools import isQuoted + COMMENT = "#" EMPTY = "None" diff --git a/saqc/core/register.py b/saqc/core/register.py index 8cd859530..c3b3945fa 100644 --- a/saqc/core/register.py +++ b/saqc/core/register.py @@ -1,6 +1,5 @@ #!/usr/bin/env python -import logging -from typing import Dict, Optional, Union, Tuple, List +from typing import Dict, Optional, Union, Tuple from typing_extensions import Literal from functools import wraps import dataclasses @@ -11,8 +10,8 @@ import warnings from saqc.constants import * from saqc.core.lib import SaQCFunction +from saqc.core.flags import initFlagsLike, Flags as Flagger from saqc.lib.types import FuncReturnT -from saqc.flagger.flags import Flagger, initFlagsLike # NOTE: # the global SaQC function store, diff --git a/saqc/core/visitor.py b/saqc/core/visitor.py index c517261e0..0fadf4878 100644 --- a/saqc/core/visitor.py +++ b/saqc/core/visitor.py @@ -2,7 +2,6 @@ # -*- coding: utf-8 -*- import ast - import numpy as np import pandas as pd diff --git a/saqc/flagger/__init__.py b/saqc/flagger/__init__.py deleted file mode 100644 index bbf082531..000000000 --- a/saqc/flagger/__init__.py +++ /dev/null @@ -1,5 +0,0 @@ -#! /usr/bin/env python -# -*- coding: utf-8 -*- - -from .history import History -from .flags import Flagger, initFlagsLike diff --git a/saqc/funcs/breaks.py b/saqc/funcs/breaks.py index 8f10e9b72..aede9d631 100644 --- a/saqc/funcs/breaks.py +++ b/saqc/funcs/breaks.py @@ -20,8 +20,7 @@ from saqc.constants import * from saqc.lib.tools import groupConsecutives from saqc.lib.types import FreqString, ColumnName, IntegerWindow from saqc.funcs.changepoints import assignChangePointCluster -from saqc.core.register import register -from saqc.flagger import Flagger +from saqc.core import register, Flags as Flagger @register(masking='field', module="breaks") diff --git a/saqc/funcs/changepoints.py b/saqc/funcs/changepoints.py index 4ef620f54..7c37b9ca1 100644 --- a/saqc/funcs/changepoints.py +++ b/saqc/funcs/changepoints.py @@ -12,9 +12,8 @@ from typing_extensions import Literal from dios import DictOfSeries from saqc.constants import * -from saqc.core.register import register from saqc.lib.tools import customRoller -from saqc.flagger import Flagger +from saqc.core import register, Flags as Flagger from saqc.lib.types import ColumnName, FreqString, IntegerWindow logger = logging.getLogger("SaQC") diff --git a/saqc/funcs/constants.py b/saqc/funcs/constants.py index 5d0b30804..a6b99a07c 100644 --- a/saqc/funcs/constants.py +++ b/saqc/funcs/constants.py @@ -10,8 +10,7 @@ import pandas as pd from dios import DictOfSeries from saqc.constants import * -from saqc.core.register import register -from saqc.flagger import Flagger +from saqc.core import register, Flags as Flagger from saqc.lib.ts_operators import varQC from saqc.lib.tools import customRoller, getFreqDelta from saqc.lib.types import FreqString, ColumnName diff --git a/saqc/funcs/curvefit.py b/saqc/funcs/curvefit.py index f77b75346..d48d7ae4e 100644 --- a/saqc/funcs/curvefit.py +++ b/saqc/funcs/curvefit.py @@ -9,9 +9,8 @@ import pandas as pd from dios import DictOfSeries from saqc.constants import * -from saqc.core.register import register +from saqc.core import register, Flags as Flagger from saqc.lib.tools import getFreqDelta -from saqc.flagger import Flagger from saqc.lib.ts_operators import ( polyRollerIrregular, polyRollerNumba, diff --git a/saqc/funcs/drift.py b/saqc/funcs/drift.py index 2dd2fe7c4..0892673a8 100644 --- a/saqc/funcs/drift.py +++ b/saqc/funcs/drift.py @@ -15,7 +15,7 @@ from scipy.spatial.distance import pdist from saqc.constants import * from saqc.core.register import register -from saqc.flagger import Flagger +from saqc.core import Flags as Flagger from saqc.funcs.resampling import shift from saqc.funcs.changepoints import assignChangePointCluster from saqc.funcs.tools import drop, copy diff --git a/saqc/funcs/flagtools.py b/saqc/funcs/flagtools.py index 56c6a689c..db0ce930d 100644 --- a/saqc/funcs/flagtools.py +++ b/saqc/funcs/flagtools.py @@ -2,15 +2,12 @@ # -*- coding: utf-8 -*- from typing import Any, Tuple, Optional, Union from typing_extensions import Literal - import pandas as pd - from dios import DictOfSeries from saqc.constants import * from saqc.lib.types import * -from saqc.core.register import register -from saqc.flagger import Flagger +from saqc.core import register, Flags as Flagger import warnings diff --git a/saqc/funcs/generic.py b/saqc/funcs/generic.py index b8677f199..095ae1eea 100644 --- a/saqc/funcs/generic.py +++ b/saqc/funcs/generic.py @@ -11,9 +11,8 @@ import pandas as pd from dios import DictOfSeries from saqc.constants import * -from saqc.core.register import register +from saqc.core import register, initFlagsLike, Flags as Flagger from saqc.core.visitor import ENVIRONMENT -from saqc.flagger import Flagger, initFlagsLike import operator as op diff --git a/saqc/funcs/interpolation.py b/saqc/funcs/interpolation.py index a7880f4b0..9f3b985d7 100644 --- a/saqc/funcs/interpolation.py +++ b/saqc/funcs/interpolation.py @@ -1,18 +1,15 @@ #! /usr/bin/env python # -*- coding: utf-8 -*- -import warnings -from typing import Tuple, Union, Optional, Any, Callable, Sequence +from typing import Tuple, Union, Callable from typing_extensions import Literal - import numpy as np import pandas as pd - from dios import DictOfSeries from saqc.constants import * -from saqc.core.register import register, _isflagged -from saqc.flagger import Flagger -from saqc.flagger.history import applyFunctionOnHistory +from saqc.core import register, Flags as Flagger +from saqc.core.register import _isflagged +from saqc.core.history import applyFunctionOnHistory from saqc.lib.ts_operators import interpolateNANs _SUPPORTED_METHODS = Literal[ diff --git a/saqc/funcs/outliers.py b/saqc/funcs/outliers.py index d8b2fcd26..e6f804be8 100644 --- a/saqc/funcs/outliers.py +++ b/saqc/funcs/outliers.py @@ -3,26 +3,18 @@ from typing import Optional, Union, Tuple, Sequence, Callable from typing_extensions import Literal - +import numba import numpy as np import numpy.polynomial.polynomial as poly -from scipy.optimize import curve_fit import pandas as pd -import numba - -from outliers import smirnov_grubbs - from dios import DictOfSeries +from outliers import smirnov_grubbs +from scipy.optimize import curve_fit from saqc.constants import * -from saqc.core.register import register -from saqc.flagger import Flagger -from saqc.lib.tools import ( - customRoller, - findIndex, - getFreqDelta -) +from saqc.core import register, Flags as Flagger from saqc.lib.types import ColumnName, FreqString, IntegerWindow +from saqc.lib.tools import customRoller, findIndex, getFreqDelta from saqc.funcs.scores import assignKNNScore import saqc.lib.ts_operators as ts_ops diff --git a/saqc/funcs/pattern.py b/saqc/funcs/pattern.py index 6562fd0d3..a51a157a4 100644 --- a/saqc/funcs/pattern.py +++ b/saqc/funcs/pattern.py @@ -9,8 +9,7 @@ from mlxtend.evaluate import permutation_test from dios.dios import DictOfSeries from saqc.constants import * -from saqc.core.register import register -from saqc.flagger import Flagger +from saqc.core import register, Flags as Flagger from saqc.lib.tools import customRoller diff --git a/saqc/funcs/resampling.py b/saqc/funcs/resampling.py index 0a796d726..466bcf382 100644 --- a/saqc/funcs/resampling.py +++ b/saqc/funcs/resampling.py @@ -1,25 +1,22 @@ #! /usr/bin/env python # -*- coding: utf-8 -*- -from typing import Callable, Tuple, Optional, Union, Any, Sequence +from typing import Callable, Tuple, Optional, Union from typing_extensions import Literal - -import numpy as np import logging - +import numpy as np import pandas as pd - from dios import DictOfSeries from saqc.constants import * -from saqc.core.register import register, _isflagged -from saqc.flagger.history import applyFunctionOnHistory -from saqc.flagger.flags import Flagger -from saqc.funcs.tools import copy, drop, rename -from saqc.funcs.interpolation import interpolateIndex, _SUPPORTED_METHODS +from saqc.core import register, Flags as Flagger +from saqc.core.register import _isflagged +from saqc.core.history import applyFunctionOnHistory from saqc.lib.tools import evalFreqStr, getFreqDelta from saqc.lib.ts_operators import shift2Freq, aggregate2Freq -from saqc.lib.rolling import customRoller +from saqc.funcs.tools import copy, drop, rename +from saqc.funcs.interpolation import interpolateIndex, _SUPPORTED_METHODS + logger = logging.getLogger("SaQC") diff --git a/saqc/funcs/residues.py b/saqc/funcs/residues.py index 0b0046bea..b58c0cdf3 100644 --- a/saqc/funcs/residues.py +++ b/saqc/funcs/residues.py @@ -3,14 +3,11 @@ from typing import Tuple, Union, Optional, Callable from typing_extensions import Literal - import numpy as np - from dios import DictOfSeries from saqc.constants import * -from saqc.core.register import register -from saqc.flagger import Flagger +from saqc.core import register, Flags as Flagger from saqc.funcs.rolling import roll from saqc.funcs.curvefit import fitPolynomial diff --git a/saqc/funcs/rolling.py b/saqc/funcs/rolling.py index 6d58dfbc6..6990bb72f 100644 --- a/saqc/funcs/rolling.py +++ b/saqc/funcs/rolling.py @@ -2,14 +2,12 @@ # -*- coding: utf-8 -*- from typing import Union, Callable - import numpy as np import pandas as pd from dios import DictOfSeries from saqc.constants import * -from saqc.core.register import register -from saqc.flagger import Flagger +from saqc.core import register, Flags as Flagger from saqc.lib.tools import getFreqDelta diff --git a/saqc/funcs/scores.py b/saqc/funcs/scores.py index 1f5d0456e..f1690e0fa 100644 --- a/saqc/funcs/scores.py +++ b/saqc/funcs/scores.py @@ -2,17 +2,14 @@ # -*- coding: utf-8 -*- from typing import Union, Tuple, Callable, Sequence, Optional from typing_extensions import Literal - import numpy as np import pandas as pd - from dios import DictOfSeries from saqc.constants import * -from saqc.core.register import register -from saqc.flagger import Flagger -from saqc.lib import ts_operators as ts_ops +from saqc.core import register, Flags as Flagger from saqc.lib.tools import toSequence +import saqc.lib.ts_operators as ts_ops @register(masking='all', module="scores") diff --git a/saqc/funcs/tools.py b/saqc/funcs/tools.py index c2a451b95..4ac072016 100644 --- a/saqc/funcs/tools.py +++ b/saqc/funcs/tools.py @@ -3,14 +3,11 @@ from typing import Optional, Tuple from typing_extensions import Literal - import numpy as np - from dios import DictOfSeries from saqc.constants import * -from saqc.core.register import register -from saqc.flagger import Flagger +from saqc.core import register, Flags as Flagger from saqc.lib.tools import periodicMask diff --git a/saqc/funcs/transformation.py b/saqc/funcs/transformation.py index 6a176b4a9..fbda3ea6f 100644 --- a/saqc/funcs/transformation.py +++ b/saqc/funcs/transformation.py @@ -2,14 +2,11 @@ # -*- coding: utf-8 -*- from typing import Optional, Callable, Tuple, Union - import numpy as np import pandas as pd - from dios import DictOfSeries -from saqc.core.register import register -from saqc.flagger import Flagger +from saqc.core import register, Flags as Flagger @register(masking='field', module="transformation") diff --git a/saqc/lib/plotting.py b/saqc/lib/plotting.py index 5f79f28bb..0543110c1 100644 --- a/saqc/lib/plotting.py +++ b/saqc/lib/plotting.py @@ -9,7 +9,7 @@ import dios import matplotlib.pyplot as plt from typing import List, Dict, Optional from saqc.constants import * -from saqc.flagger import Flagger +from saqc.core import Flags as Flagger def __importHelper(): diff --git a/saqc/lib/tools.py b/saqc/lib/tools.py index 6edfb0471..1f15df6d0 100644 --- a/saqc/lib/tools.py +++ b/saqc/lib/tools.py @@ -12,9 +12,9 @@ import pandas as pd from scipy import fft import logging import dios - import collections from scipy.cluster.hierarchy import linkage, fcluster + from saqc.lib.types import T # keep this for external imports diff --git a/saqc/lib/ts_operators.py b/saqc/lib/ts_operators.py index 37d8253ab..b22973074 100644 --- a/saqc/lib/ts_operators.py +++ b/saqc/lib/ts_operators.py @@ -5,14 +5,11 @@ The module gathers all kinds of timeseries tranformations. """ import logging - import re from typing import Union - import pandas as pd import numpy as np import numba as nb - from sklearn.neighbors import NearestNeighbors from scipy.stats import iqr, median_abs_deviation import numpy.polynomial.polynomial as poly diff --git a/saqc/lib/types.py b/saqc/lib/types.py index 9a437a2a9..29830a869 100644 --- a/saqc/lib/types.py +++ b/saqc/lib/types.py @@ -15,18 +15,18 @@ __all__ = [ from typing import TypeVar, Union, NewType from typing_extensions import Protocol, Literal - import numpy as np import pandas as pd from dios import DictOfSeries -from saqc import Flagger +from saqc.core.flags import Flags + T = TypeVar("T") ArrayLike = TypeVar("ArrayLike", np.ndarray, pd.Series, pd.DataFrame) PandasLike = TypeVar("PandasLike", pd.Series, pd.DataFrame, DictOfSeries) DiosLikeT = Union[DictOfSeries, pd.DataFrame] -FuncReturnT = [DictOfSeries, Flagger] +FuncReturnT = [DictOfSeries, Flags] # we only support fixed length offsets FreqString = NewType("FreqString", Literal["D", "H", "T", "min", "S", "L", "ms", "U", "us", "N"]) @@ -36,6 +36,7 @@ ColumnName = NewType("ColumnName", str) IntegerWindow = NewType("IntegerWindow", int) TimestampColumnName = TypeVar("TimestampColumnName", bound=str) + # needed for deeper typy hinting magic class CurveFitter(Protocol): def __call__(self, data: np.ndarray, *params: float) -> np.ndarray: diff --git a/tests/common.py b/tests/common.py index e225b6410..eddda827d 100644 --- a/tests/common.py +++ b/tests/common.py @@ -7,7 +7,7 @@ import pandas as pd import dios from saqc.constants import * -from saqc.flagger import Flagger, initFlagsLike +from saqc.core import initFlagsLike, Flags as Flagger TESTNODATA = (np.nan, -9999) diff --git a/tests/core/test_core.py b/tests/core/test_core.py index b9773a473..c13f8a5b8 100644 --- a/tests/core/test_core.py +++ b/tests/core/test_core.py @@ -7,7 +7,7 @@ import numpy as np import pandas as pd from saqc.constants import * -from saqc.flagger import initFlagsLike +from saqc.core import initFlagsLike from saqc.funcs import flagRange from saqc.lib import plotting as splot from saqc import SaQC, register diff --git a/tests/core/test_creation.py b/tests/core/test_creation.py index b16714c8e..295d2adfc 100644 --- a/tests/core/test_creation.py +++ b/tests/core/test_creation.py @@ -6,7 +6,7 @@ import dios def test_init(): - from saqc import SaQC, Flagger + from saqc import SaQC, Flags as Flagger arr = np.array([ [0, 1, 2], diff --git a/tests/flagger/test_flags.py b/tests/flagger/test_flags.py index db40b7e6c..d0d1585bc 100644 --- a/tests/flagger/test_flags.py +++ b/tests/flagger/test_flags.py @@ -5,7 +5,7 @@ import numpy as np import pandas as pd from saqc.constants import * -from saqc.flagger.flags import Flags +from saqc.core.flags import Flags from tests.flagger.test_history import ( History, diff --git a/tests/flagger/test_history.py b/tests/flagger/test_history.py index 5a95585c0..c85eceddd 100644 --- a/tests/flagger/test_history.py +++ b/tests/flagger/test_history.py @@ -4,7 +4,7 @@ import pytest import numpy as np import pandas as pd -from saqc.flagger.history import History +from saqc.core.history import History # see #GH143 combined backtrack # (adjusted to current implementation) diff --git a/tests/funcs/test_constants_detection.py b/tests/funcs/test_constants_detection.py index da7b83836..6fcde58d1 100644 --- a/tests/funcs/test_constants_detection.py +++ b/tests/funcs/test_constants_detection.py @@ -6,7 +6,7 @@ import numpy as np from saqc.constants import * from saqc.funcs.constants import flagConstants, flagByVariance -from saqc.flagger import initFlagsLike +from saqc.core import initFlagsLike, Flags as Flagger from tests.common import initData diff --git a/tests/funcs/test_functions.py b/tests/funcs/test_functions.py index 47c8ae9d2..06eef82da 100644 --- a/tests/funcs/test_functions.py +++ b/tests/funcs/test_functions.py @@ -4,7 +4,7 @@ import dios from saqc.constants import * -from saqc.flagger import initFlagsLike +from saqc.core import initFlagsLike from saqc.funcs.drift import flagDriftFromNorm, flagDriftFromReference, flagDriftFromScaledNorm from saqc.funcs.outliers import flagCrossStatistic, flagRange from saqc.funcs.flagtools import flagManual, forceFlags, clearFlags diff --git a/tests/funcs/test_generic_config_functions.py b/tests/funcs/test_generic_config_functions.py index fe8242cd2..5b3a28cb5 100644 --- a/tests/funcs/test_generic_config_functions.py +++ b/tests/funcs/test_generic_config_functions.py @@ -8,7 +8,7 @@ import pandas as pd import dios from saqc.constants import * -from saqc.flagger import Flagger, initFlagsLike +from saqc.core import initFlagsLike, Flags as Flagger from saqc.core.visitor import ConfigFunctionParser from saqc.core.config import Fields as F from saqc.core.register import register diff --git a/tests/funcs/test_harm_funcs.py b/tests/funcs/test_harm_funcs.py index 052d5f8da..3f0140bd6 100644 --- a/tests/funcs/test_harm_funcs.py +++ b/tests/funcs/test_harm_funcs.py @@ -6,7 +6,7 @@ import numpy as np import pandas as pd import dios -from saqc.flagger import Flagger, initFlagsLike +from saqc.core import initFlagsLike, Flags as Flagger from saqc.constants import BAD, UNFLAGGED from saqc.funcs.resampling import ( linear, diff --git a/tests/funcs/test_modelling.py b/tests/funcs/test_modelling.py index 248c12246..95574936a 100644 --- a/tests/funcs/test_modelling.py +++ b/tests/funcs/test_modelling.py @@ -7,7 +7,7 @@ import dios from saqc import BAD, UNFLAGGED -from saqc.flagger import initFlagsLike +from saqc.core import initFlagsLike from saqc.funcs.tools import mask from saqc.funcs.residues import calculatePolynomialResidues, calculateRollingResidues diff --git a/tests/funcs/test_pattern_rec.py b/tests/funcs/test_pattern_rec.py index b434e3c24..db3c50249 100644 --- a/tests/funcs/test_pattern_rec.py +++ b/tests/funcs/test_pattern_rec.py @@ -6,7 +6,7 @@ import pandas as pd import dios from saqc.constants import * -from saqc.flagger import initFlagsLike +from saqc.core import initFlagsLike from saqc.funcs.pattern import * from tests.common import initData diff --git a/tests/funcs/test_proc_functions.py b/tests/funcs/test_proc_functions.py index d9d137359..04739b40b 100644 --- a/tests/funcs/test_proc_functions.py +++ b/tests/funcs/test_proc_functions.py @@ -7,7 +7,7 @@ import dios from saqc.constants import * -from saqc.flagger import initFlagsLike +from saqc.core import initFlagsLike from saqc.funcs.transformation import transform from saqc.funcs.drift import correctOffset from saqc.funcs.interpolation import interpolateByRolling, interpolateInvalid, interpolateIndex diff --git a/tests/funcs/test_spikes_detection.py b/tests/funcs/test_spikes_detection.py index faa256068..727ef4157 100644 --- a/tests/funcs/test_spikes_detection.py +++ b/tests/funcs/test_spikes_detection.py @@ -13,7 +13,7 @@ from saqc.funcs.outliers import ( flagByGrubbs, ) from saqc.constants import * -from saqc.flagger import initFlagsLike +from saqc.core import initFlagsLike @pytest.fixture(scope="module") diff --git a/tests/fuzzy/init.py b/tests/fuzzy/init.py index ad93f02c6..4096823b5 100644 --- a/tests/fuzzy/init.py +++ b/tests/fuzzy/init.py @@ -25,7 +25,7 @@ from saqc.constants import * from saqc.core.register import FUNC_MAP from saqc.core.lib import SaQCFunction from saqc.lib.types import FreqString, ColumnName, IntegerWindow -from saqc.flagger import Flagger, initFlagsLike +from saqc.core import initFlagsLike, Flags as Flagger MAX_EXAMPLES = 50 # MAX_EXAMPLES = 100000 diff --git a/tests/fuzzy/test_masking.py b/tests/fuzzy/test_masking.py index cc7637099..9567ea7f8 100644 --- a/tests/fuzzy/test_masking.py +++ b/tests/fuzzy/test_masking.py @@ -8,7 +8,7 @@ import pandas as pd from hypothesis import given, settings from saqc.constants import * -from saqc.flagger import Flagger +from saqc.core import Flags as Flagger from saqc.core.register import _maskData, _unmaskData from tests.fuzzy.init import dataFieldFlagger, MAX_EXAMPLES -- GitLab