From cf1ed0d65d632b867469d0db41a1f0841f110961 Mon Sep 17 00:00:00 2001 From: Carsten Sauerbrey Date: Tue, 23 Apr 2024 12:15:35 +0200 Subject: [PATCH] Forwarding no_defaults to Meta class --- src/RsWaveform/iqw/load.py | 2 +- src/RsWaveform/meta/__init__.py | 7 ++++++- src/RsWaveform/parent_storage.py | 18 +++++++++++++++--- src/RsWaveform/storage.py | 18 +++++++++++++----- 4 files changed, 35 insertions(+), 10 deletions(-) diff --git a/src/RsWaveform/iqw/load.py b/src/RsWaveform/iqw/load.py index 7731d17..973dc9f 100644 --- a/src/RsWaveform/iqw/load.py +++ b/src/RsWaveform/iqw/load.py @@ -20,7 +20,7 @@ class Load(LoadInterface): def load(self, file: typing.Union[str, typing.IO, Path]) -> ParentStorage: """Load iwq data from file.""" - parent_storage = ParentStorage() + parent_storage = ParentStorage(no_defaults=True) with read_file_handle(file) as fp: content = fp.read() iq_data = self._extract_iq(content) diff --git a/src/RsWaveform/meta/__init__.py b/src/RsWaveform/meta/__init__.py index e8ef789..2675d16 100644 --- a/src/RsWaveform/meta/__init__.py +++ b/src/RsWaveform/meta/__init__.py @@ -5,7 +5,12 @@ class Meta(MetaWv, MetaIqtar): - """Meta data for Storage container.""" + """Meta data for Storage container. + + Args: + no_defaults (bool, optional): Storage meta data should have no defaults at + initialization. Defaults to False. + """ def __init__(self, no_defaults: bool = False, **kwargs): """Initialize Meta class.""" diff --git a/src/RsWaveform/parent_storage.py b/src/RsWaveform/parent_storage.py index 9fbbc6d..c87ef84 100644 --- a/src/RsWaveform/parent_storage.py +++ b/src/RsWaveform/parent_storage.py @@ -8,13 +8,25 @@ class ParentStorage(abc.ABC): - """ParentStorage class implementation.""" + """ParentStorage class implementation. - def __init__(self, number_of_storages: int = 1): + Args: + number_of_storages (int, optional): Initialize number of storages. + Defaults to 1. + no_defaults (bool, optional): Storage meta data should have no defaults at + initialization. Defaults to False. + + Raises: + ValueError: If number of storages is smaller than 1. + """ + + def __init__(self, number_of_storages: int = 1, no_defaults: bool = False): """Initialize ParentStorage class.""" if number_of_storages <= 0: raise ValueError("Only positive number of storages allowed!") - self._storages = [Storage() for _ in range(number_of_storages)] + self._storages = [ + Storage(no_defaults=no_defaults) for _ in range(number_of_storages) + ] self._filename: str = "" self._timestamp: datetime = datetime.now() diff --git a/src/RsWaveform/storage.py b/src/RsWaveform/storage.py index 0ac0951..43fa23d 100644 --- a/src/RsWaveform/storage.py +++ b/src/RsWaveform/storage.py @@ -35,16 +35,24 @@ def encode_datetime(obj): class Storage(abc.ABC): - """Storage class implementation.""" - - def __init__(self, serialized: typing.Optional[bytes] = None) -> None: + """Storage class implementation. + + Args: + serialized (typing.Optional[bytes], optional): Serialized data. + Defaults to None. + no_defaults (bool, optional): Storage meta data should have no defaults at + initialization. Defaults to False. + """ + + def __init__( + self, serialized: typing.Optional[bytes] = None, no_defaults: bool = False + ) -> None: """Initialize Storage class.""" if serialized: self.deserialize(serialized) else: self.data: np.ndarray = np.zeros((1024,), dtype=np.complex128) - # self.meta: dict = {} - self.meta: Meta = Meta() + self.meta: Meta = Meta(no_defaults=no_defaults) @property def samples(self) -> int: