Completed
Push — main ( c9b807...564baa )
by Chaitanya
30s queued 14s
created

AnalysisStepBase._run()   A

Complexity

Conditions 1

Size

Total Lines 3
Code Lines 3

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 1
eloc 3
nop 1
dl 0
loc 3
rs 10
c 0
b 0
f 0
1
"""
2
Base Classes for creating the intermediate High-level Analysis Steps
3
"""
4
import abc
5
import logging
6
from enum import Enum
7
8
__all__ = [
9
    "AnalysisStepBase",
10
    "AnalysisStepEnum",
11
]
12
13
14
class AnalysisStepBase(abc.ABC):
15
    """Config section for creating a basic AsgardpyAnalysis Step."""
16
17
    tag = "analysis-step"
18
19
    def __init__(self, config, log=None, overwrite=True):
20
        self.config = config
21
        self.overwrite = overwrite
22
23
        self.datasets = None
24
        self.instrument_spectral_info = None
25
26
        if log is None:
27
            log = logging.getLogger(__name__)
28
            self.log = log
29
30
    def run(self, datasets=None, instrument_spectral_info=None):
31
        """
32
        One can provide datasets and instrument_spectral_info to be used,
33
        especially for the High-level Analysis steps.
34
        """
35
        self.datasets = datasets
36
        self.instrument_spectral_info = instrument_spectral_info
37
38
        final_product = self._run()
39
        self.log.info("Analysis Step %s completed", self.tag)
40
41
        return final_product
42
43
44
class AnalysisStepEnum(str, Enum):
45
    """Config section for list of Analysis Steps."""
46
47
    datasets_1d = "datasets-1d"
48
    datasets_3d = "datasets-3d"
49
    fit = "fit"
50
    flux_points = "flux-points"
51