# -*- coding:utf-8 -*-
"""
@author: yq
@time: 2024/1/2
@desc: 指标计算基类
"""
import pandas as pd
import abc


class MetricBase(metaclass=abc.ABCMeta):

    def __init__(self, metric_name: str, metric_code: str):
        self.metric_name = metric_name
        self.metric_code = metric_code

    @abc.abstractmethod
    def validate_data(self):
        pass

    @abc.abstractmethod
    def load_data(self, *args, **kwargs) -> pd.DataFrame:
        pass

    @abc.abstractmethod
    def calculate(self, *args, **kwargs) -> pd.DataFrame:
        pass