serialization.py
1 from datetime import datetime 2 from typing import Dict 3 from typing import List 4 from typing import Optional 5 from typing import Union 6 7 from evidently._pydantic_compat import BaseModel 8 from evidently.core.metric_types import MetricId 9 from evidently.core.metric_types import MetricResult 10 from evidently.legacy.model.widget import BaseWidgetInfo 11 from evidently.legacy.suite.base_suite import MetadataValueType 12 13 14 class MetricReportItem(BaseModel): 15 metric_id: MetricId 16 params: dict 17 18 19 class PresetReportItem(BaseModel): 20 pass # TODO: support presets 21 22 23 class ReportModel(BaseModel): 24 items: List[Union[MetricReportItem, PresetReportItem]] 25 26 27 class SnapshotModel(BaseModel): 28 report: ReportModel 29 name: Optional[str] 30 timestamp: datetime 31 metadata: Dict[str, MetadataValueType] 32 tags: List[str] 33 metric_results: Dict[MetricId, MetricResult] 34 top_level_metrics: List[MetricId] 35 widgets: List[BaseWidgetInfo] 36 tests_widgets: List[BaseWidgetInfo]