diff --git a/sasdata/data.py b/sasdata/data.py index a9cd9648..cb96b33d 100644 --- a/sasdata/data.py +++ b/sasdata/data.py @@ -23,14 +23,17 @@ def __init__( abscissae: Abscissa, mask: Quantity, dependents: list["SasData"], - metadata: Metadata, + metadata: Metadata | None = None, ): self.name = name self._ordinate = ordinate self._abscissae = abscissae self._mask = mask self.dependents = dependents - self.metadata = metadata + if metadata: + self.metadata = metadata + else: + self.metadata = Metadata.initialise_empty() @property def ordinate(self) -> Quantity: @@ -72,7 +75,7 @@ def __init__( name: str, data_contents: dict[str, Quantity], dataset_type: DatasetType, - metadata: Metadata, + metadata: Metadata | None = None, verbose: bool = False, ): self.name = name @@ -82,7 +85,11 @@ def __init__( self._data_contents = data_contents self._verbose = verbose - self.metadata = metadata + if metadata: + self.metadata = metadata + else: + self.metadata = Metadata.initialise_empty() + # TODO: Could this be optional? self.dataset_type: DatasetType = dataset_type diff --git a/sasdata/metadata.py b/sasdata/metadata.py index 1ad46b93..7a7084c7 100644 --- a/sasdata/metadata.py +++ b/sasdata/metadata.py @@ -622,6 +622,19 @@ def from_json(obj): raw=MetaNode.from_json(obj["raw"]), ) + @staticmethod + def initialise_empty(): + return Metadata( + title=None, + run=[], + definition=None, + process=[], + sample=None, + instrument=None, + magnetic=None, + raw=None + ) + def serialise_json(self): serialized = { "instrument": None,