metric_base.py 557 B

123456789101112131415161718192021222324252627
  1. # -*- coding:utf-8 -*-
  2. """
  3. @author: yq
  4. @time: 2024/1/2
  5. @desc: 指标计算基类
  6. """
  7. import pandas as pd
  8. import abc
  9. class MetricBase(metaclass=abc.ABCMeta):
  10. def __init__(self, metric_name: str, metric_code: str):
  11. self.metric_name = metric_name
  12. self.metric_code = metric_code
  13. @abc.abstractmethod
  14. def validate_data(self):
  15. pass
  16. @abc.abstractmethod
  17. def load_data(self, *args, **kwargs) -> pd.DataFrame:
  18. pass
  19. @abc.abstractmethod
  20. def calculate(self, *args, **kwargs) -> pd.DataFrame:
  21. pass