/ src / evidently / core / serialization.py
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]