Source code for SDF.data_model.dataset

from xml.etree.ElementTree import Element

from SDF.data_model.abstract import XMLWritable
from SDF.data_model.sdf_object import SDFObject


[docs]class Dataset(SDFObject, XMLWritable): """Abstract class. Dataset implementations must inherit from it."""
[docs] @staticmethod def from_xml_element(element: Element) -> "Dataset": """Reads the 'type' attribute of a <dataset type=...> element, delegates to the associated Dataset subclass""" if element.tag != "dataset": raise ValueError(f"Expected a dataset element, got {element.tag}") ds_type = element.attrib["type"] if ds_type == "sc": from SDF.data_model.array_dataset_1d import ArrayDataset1D return ArrayDataset1D.from_xml_element(element) if ds_type == "mc": from SDF.data_model.array_dataset_2d import ArrayDataset2D return ArrayDataset2D.from_xml_element(element) if ds_type == "img": from SDF.data_model.image_dataset import ImageDataset return ImageDataset.from_xml_element(element) else: raise ValueError(f"Unknown dataset type: {ds_type}")