"""Base Classes for creating the intermediate High-level Analysis Steps"""importabcimportloggingfromenumimportEnum__all__=["AnalysisStepBase","AnalysisStepEnum",]
[docs]classAnalysisStepBase(abc.ABC):"""Config section for creating a basic AsgardpyAnalysis Step."""tag="analysis-step"def__init__(self,config,log=None,overwrite=True):self.config=configself.overwrite=overwriteself.datasets=Noneself.instrument_spectral_info=NoneiflogisNone:log=logging.getLogger(__name__)self.log=log
[docs]defrun(self,datasets=None,instrument_spectral_info=None):""" One can provide datasets and instrument_spectral_info to be used, especially for the High-level Analysis steps. """self.datasets=datasetsself.instrument_spectral_info=instrument_spectral_infofinal_product=self._run()self.log.info("Analysis Step %s completed",self.tag)returnfinal_product
classAnalysisStepEnum(str,Enum):"""Config section for list of Analysis Steps."""datasets_1d="datasets-1d"datasets_3d="datasets-3d"fit="fit"flux_points="flux-points"