Source code for pydelfini.delfini_core.models.metrics_categorical

from typing import Any
from typing import Dict
from typing import List
from typing import Type
from typing import TypeVar

from attrs import define as _attrs_define

from ..models.metrics_categorical_value import MetricsCategoricalValue


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


[docs] @_attrs_define class MetricsCategorical: """MetricsCategorical model Attributes: low_cardinality_threshold (int): unique_values_sorted (List['MetricsCategoricalValue']): """ low_cardinality_threshold: int unique_values_sorted: List["MetricsCategoricalValue"]
[docs] def to_dict(self) -> Dict[str, Any]: """Convert to a dict""" low_cardinality_threshold = self.low_cardinality_threshold unique_values_sorted = [] for unique_values_sorted_item_data in self.unique_values_sorted: unique_values_sorted_item = unique_values_sorted_item_data.to_dict() unique_values_sorted.append(unique_values_sorted_item) field_dict: Dict[str, Any] = {} field_dict.update( { "lowCardinalityThreshold": low_cardinality_threshold, "uniqueValuesSorted": unique_values_sorted, } ) return field_dict
[docs] @classmethod def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T: """Create an instance of :py:class:`MetricsCategorical` from a dict""" d = src_dict.copy() low_cardinality_threshold = d.pop("lowCardinalityThreshold") unique_values_sorted = [] _unique_values_sorted = d.pop("uniqueValuesSorted") for unique_values_sorted_item_data in _unique_values_sorted: unique_values_sorted_item = MetricsCategoricalValue.from_dict( unique_values_sorted_item_data ) unique_values_sorted.append(unique_values_sorted_item) metrics_categorical = cls( low_cardinality_threshold=low_cardinality_threshold, unique_values_sorted=unique_values_sorted, ) return metrics_categorical