Source code for pydelfini.delfini_core.models.metrics_numeric

from typing import Any
from typing import Dict
from typing import Type
from typing import TypeVar
from typing import Union

from attrs import define as _attrs_define

from ..models.metrics_quantiles import MetricsQuantiles
from ..types import UNSET
from ..types import Unset


T = TypeVar("T", bound="MetricsNumeric")


[docs] @_attrs_define class MetricsNumeric: """MetricsNumeric model Attributes: max_ (float): mean (float): min_ (float): std_dev (float): quantiles (Union[Unset, MetricsQuantiles]): """ max_: float mean: float min_: float std_dev: float quantiles: Union[Unset, "MetricsQuantiles"] = UNSET
[docs] def to_dict(self) -> Dict[str, Any]: """Convert to a dict""" max_ = self.max_ mean = self.mean min_ = self.min_ std_dev = self.std_dev quantiles: Union[Unset, Dict[str, Any]] = UNSET if not isinstance(self.quantiles, Unset): quantiles = self.quantiles.to_dict() field_dict: Dict[str, Any] = {} field_dict.update( { "max": max_, "mean": mean, "min": min_, "stdDev": std_dev, } ) if quantiles is not UNSET: field_dict["quantiles"] = quantiles return field_dict
[docs] @classmethod def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T: """Create an instance of :py:class:`MetricsNumeric` from a dict""" d = src_dict.copy() max_ = d.pop("max") mean = d.pop("mean") min_ = d.pop("min") std_dev = d.pop("stdDev") _quantiles = d.pop("quantiles", UNSET) quantiles: Union[Unset, MetricsQuantiles] if isinstance(_quantiles, Unset): quantiles = UNSET else: quantiles = MetricsQuantiles.from_dict(_quantiles) metrics_numeric = cls( max_=max_, mean=mean, min_=min_, std_dev=std_dev, quantiles=quantiles, ) return metrics_numeric