Source code for pydelfini.delfini_core.models.cdeset

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

from attrs import define as _attrs_define

from ..models.cdeset_state import CdesetState


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


[docs] @_attrs_define class Cdeset: """Cdeset model Attributes: description (str): display_name (str): User-facing name (may contain spaces). Falls back to `name` when no display name has been set. is_default (bool): Whether this CDE set is pre-selected as the standard for newly created collections. At most one set is the default. name (str): num_cdes (int): state (CdesetState): Lifecycle state of a CDE set: - `active`: listed everywhere and recommended for use (the default) - `deprecated`: still usable, but no longer recommended - `system`: hidden from the public CDE listing, but still available as a data element source (e.g. for metadata fields) """ description: str display_name: str is_default: bool name: str num_cdes: int state: CdesetState
[docs] def to_dict(self) -> Dict[str, Any]: """Convert to a dict""" description = self.description display_name = self.display_name is_default = self.is_default name = self.name num_cdes = self.num_cdes state = self.state.value field_dict: Dict[str, Any] = {} field_dict.update( { "description": description, "display_name": display_name, "is_default": is_default, "name": name, "num_cdes": num_cdes, "state": state, } ) return field_dict
[docs] @classmethod def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T: """Create an instance of :py:class:`Cdeset` from a dict""" d = src_dict.copy() description = d.pop("description") display_name = d.pop("display_name") is_default = d.pop("is_default") name = d.pop("name") num_cdes = d.pop("num_cdes") state = CdesetState(d.pop("state")) cdeset = cls( description=description, display_name=display_name, is_default=is_default, name=name, num_cdes=num_cdes, state=state, ) return cdeset