Source code for pydelfini.delfini_core.models.metadata_field_group
from typing import Any
from typing import cast
from typing import Dict
from typing import List
from typing import Type
from typing import TypeVar
from typing import Union
from attrs import define as _attrs_define
from ..models.metadata_field_group_resource import MetadataFieldGroupResource
from ..types import UNSET
from ..types import Unset
T = TypeVar("T", bound="MetadataFieldGroup")
[docs]
@_attrs_define
class MetadataFieldGroup:
"""MetadataFieldGroup model
Attributes:
field_names (List[str]):
id (str): Unique ID for the group
resource (MetadataFieldGroupResource):
title (str):
description (Union[Unset, str]):
edit_page (Union[Unset, bool]):
view_position (Union[Unset, str]):
visibility (Union[Unset, str]):
"""
field_names: List[str]
id: str
resource: MetadataFieldGroupResource
title: str
description: Union[Unset, str] = UNSET
edit_page: Union[Unset, bool] = UNSET
view_position: Union[Unset, str] = UNSET
visibility: Union[Unset, str] = UNSET
[docs]
def to_dict(self) -> Dict[str, Any]:
"""Convert to a dict"""
field_names = self.field_names
id = self.id
resource = self.resource.value
title = self.title
description = self.description
edit_page = self.edit_page
view_position = self.view_position
visibility = self.visibility
field_dict: Dict[str, Any] = {}
field_dict.update(
{
"field_names": field_names,
"id": id,
"resource": resource,
"title": title,
}
)
if description is not UNSET:
field_dict["description"] = description
if edit_page is not UNSET:
field_dict["edit_page"] = edit_page
if view_position is not UNSET:
field_dict["view_position"] = view_position
if visibility is not UNSET:
field_dict["visibility"] = visibility
return field_dict
[docs]
@classmethod
def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T:
"""Create an instance of :py:class:`MetadataFieldGroup` from a dict"""
d = src_dict.copy()
field_names = cast(List[str], d.pop("field_names"))
id = d.pop("id")
resource = MetadataFieldGroupResource(d.pop("resource"))
title = d.pop("title")
description = d.pop("description", UNSET)
edit_page = d.pop("edit_page", UNSET)
view_position = d.pop("view_position", UNSET)
visibility = d.pop("visibility", UNSET)
metadata_field_group = cls(
field_names=field_names,
id=id,
resource=resource,
title=title,
description=description,
edit_page=edit_page,
view_position=view_position,
visibility=visibility,
)
return metadata_field_group