Source code for pyicat_plus.client.types
import dataclasses
from enum import Enum
from typing import Any
from typing import Dict
from typing import Optional
from typing import TypedDict
[docs]
@dataclasses.dataclass(frozen=True)
class DatasetId:
name: str
path: str
[docs]
@dataclasses.dataclass(frozen=True)
class Dataset:
dataset_id: DatasetId
icat_dataset_id: int
dataset_metadata: DatasetMetadata
[docs]
def as_dict(self) -> Dict[str, Any]:
return dataclasses.asdict(self)
[docs]
@classmethod
def from_dict(cls, data: Dict[str, Any]) -> "Dataset":
"""Factory method to create a Dataset instance from a dictionary."""
data = data.copy()
data["dataset_id"] = DatasetId(**data["dataset_id"])
data["dataset_metadata"] = DatasetMetadata(**data["dataset_metadata"])
return cls(**data)
[docs]
class ArchiveStatusType(Enum):
ARCHIVING = "archiving"
RESTORATION = "restoration"
[docs]
class ArchiveStatusLevel(Enum):
INFO = "info"
WARNING = "warning"
ERROR = "error"