Source code for pydelfini.delfini_core.models.datastore
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.datastore_type import DatastoreType
T = TypeVar("T", bound="Datastore")
[docs]
@_attrs_define
class Datastore:
"""Public view on a datastore
Attributes:
enabled (bool):
name (str):
num_objects (int):
size_bytes (int):
type (DatastoreType):
url (str):
"""
enabled: bool
name: str
num_objects: int
size_bytes: int
type: DatastoreType
url: str
[docs]
def to_dict(self) -> Dict[str, Any]:
"""Convert to a dict"""
enabled = self.enabled
name = self.name
num_objects = self.num_objects
size_bytes = self.size_bytes
type = self.type.value
url = self.url
field_dict: Dict[str, Any] = {}
field_dict.update(
{
"enabled": enabled,
"name": name,
"num_objects": num_objects,
"size_bytes": size_bytes,
"type": type,
"url": url,
}
)
return field_dict
[docs]
@classmethod
def from_dict(cls: Type[T], src_dict: Dict[str, Any]) -> T:
"""Create an instance of :py:class:`Datastore` from a dict"""
d = src_dict.copy()
enabled = d.pop("enabled")
name = d.pop("name")
num_objects = d.pop("num_objects")
size_bytes = d.pop("size_bytes")
type = DatastoreType(d.pop("type"))
url = d.pop("url")
datastore = cls(
enabled=enabled,
name=name,
num_objects=num_objects,
size_bytes=size_bytes,
type=type,
url=url,
)
return datastore