|
@@ -7,20 +7,22 @@
|
|
import pandas as pd
|
|
import pandas as pd
|
|
|
|
|
|
from data import DataLoaderBase
|
|
from data import DataLoaderBase
|
|
|
|
+from entitys import MetricFucEntity
|
|
from .metric_base import MetricBase
|
|
from .metric_base import MetricBase
|
|
|
|
|
|
|
|
|
|
class MetricBySqlGeneral(MetricBase):
|
|
class MetricBySqlGeneral(MetricBase):
|
|
|
|
|
|
- def __init__(self, metric_name: str, metric_code: str):
|
|
|
|
- super().__init__(metric_name, metric_code)
|
|
|
|
|
|
+ def __init__(self, data_loader: DataLoaderBase = None, sql: str = None, **kwargs):
|
|
|
|
+ self._data_loader = data_loader
|
|
|
|
+ self._sql = sql
|
|
|
|
|
|
def validate_data(self):
|
|
def validate_data(self):
|
|
pass
|
|
pass
|
|
|
|
|
|
- def load_data(self, data_loader: DataLoaderBase, sql: str) -> pd.DataFrame:
|
|
|
|
- data = data_loader.get_data(sql)
|
|
|
|
- return data
|
|
|
|
|
|
+ def load_data(self, ) -> pd.DataFrame:
|
|
|
|
+ return self._data_loader.get_data(self._sql)
|
|
|
|
+
|
|
|
|
+ def calculate(self, ) -> MetricFucEntity:
|
|
|
|
+ return MetricFucEntity(table=self.load_data())
|
|
|
|
|
|
- def calculate(self, data_loader: DataLoaderBase, sql: str) -> pd.DataFrame:
|
|
|
|
- return self.load_data(data_loader, sql)
|
|
|