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