metric_test2.py 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. # -*- coding: utf-8 -*-
  2. """
  3. @author: yq
  4. @time: 2024/11/1
  5. @desc:
  6. """
  7. import pandas as pd
  8. from data import DataLoaderBase, DataLoaderExcel
  9. from entitys import MetricFucResultEntity
  10. from metrics import MetricBase, f_register_metric_func
  11. from monitor import MonitorMetric
  12. class AMetric(MetricBase):
  13. def __init__(self, file_path: str, sheet_name: str = 0, *args, **kwargs):
  14. super().__init__(*args, **kwargs)
  15. self._file_path = file_path
  16. self._sheet_name = sheet_name
  17. def _load_data(self, data_loader: DataLoaderBase, *args, **kwargs) -> pd.DataFrame:
  18. data = data_loader.get_data(self._file_path, self._sheet_name)
  19. return data
  20. def calculate(self, *args, **kwargs) -> MetricFucResultEntity:
  21. data = self._load_data(*args, **kwargs)
  22. return MetricFucResultEntity(table=data, value='1', image_path='cache/image/t1.png')
  23. class BMetric(MetricBase):
  24. def __init__(self, v: str, *args, **kwargs):
  25. super().__init__(*args, **kwargs)
  26. self._v = v
  27. def calculate(self, *args, **kwargs) -> MetricFucResultEntity:
  28. if ".png" in self._v:
  29. return MetricFucResultEntity(image_path=self._v)
  30. else:
  31. return MetricFucResultEntity(value=self._v)
  32. if __name__ == "__main__":
  33. f_register_metric_func(AMetric)
  34. f_register_metric_func(BMetric)
  35. data_loader = DataLoaderExcel()
  36. a = data_loader.get_data("cache/报表自动化需求-2411.xlsx")
  37. a.writr("cache/a.xlsx")
  38. monitor_metric = MonitorMetric("./cache/model_feature_strategy1.json")
  39. monitor_metric.calculate_metric(data_loader=data_loader)
  40. monitor_metric.generate_report()