@beartypeclassAnalysis(metaclass=abc.ABCMeta):"""Base class for all analysis techniques."""def__init__(self,options:Options)->None:self.options=optionsassertself.optionsisnotNone@abc.abstractmethoddefanalyze(self)->Optional[DataFrame]:"""Perform financial analysis. Returns: Optional[DataFrame]: results of analysis """under_development:bool=False
@beartype@dataclass(frozen=True)classOptions:"""Command Line Options."""tickers:list[str]final_report:ReportDate=ReportDate()def__post_init__(self):self.tickers.sort()