From fa8377873f3ac338df07db252fd1bccd42e0f0a5 Mon Sep 17 00:00:00 2001 From: takuya-ulm Date: Tue, 11 Feb 2025 10:02:42 +0100 Subject: [PATCH] bug fix on data saving --- src/qudi/logic/qdyne/tools/custom_dataclass.py | 8 ++++++-- src/qudi/logic/qdyne/tools/multi_settings_dataclass.py | 6 +++++- src/qudi/logic/qdyne/tools/settings_dataclass.py | 4 ++++ 3 files changed, 15 insertions(+), 3 deletions(-) diff --git a/src/qudi/logic/qdyne/tools/custom_dataclass.py b/src/qudi/logic/qdyne/tools/custom_dataclass.py index b01bb10f8..9444d3cbc 100644 --- a/src/qudi/logic/qdyne/tools/custom_dataclass.py +++ b/src/qudi/logic/qdyne/tools/custom_dataclass.py @@ -75,6 +75,10 @@ def data_container(self): """ return self._data + @data_container.setter + def data_container(self, data_container): + self._data = data_container + @Slot(dict) def update_values(self, new_dc_dict): """ @@ -125,7 +129,7 @@ def save(self): def load(self): try: with open(self.save_path, 'rb') as f: - self._data_container = pickle.load(f) + return pickle.load(f) except EOFError: self.log.error(f"cannot load settings from {self.save_path}") @@ -165,7 +169,7 @@ def initialize_data_container(self, *args): Initialize the data container. """ if os.path.exists(self._data_storage.save_path): - self._data_storage.load() + self.mediator.data_container = self._data_storage.load() self._log.debug(f"Saved settings loaded from {self._data_storage.save_path}") else: diff --git a/src/qudi/logic/qdyne/tools/multi_settings_dataclass.py b/src/qudi/logic/qdyne/tools/multi_settings_dataclass.py index 59822309d..a588ff631 100644 --- a/src/qudi/logic/qdyne/tools/multi_settings_dataclass.py +++ b/src/qudi/logic/qdyne/tools/multi_settings_dataclass.py @@ -47,7 +47,7 @@ def current_data(self): In MultiSettingsMediator, this is given by the currently selected method and mode. """ - + print(self.method_dict) return self.method_dict[self.current_method][self.current_mode] @property @@ -67,6 +67,10 @@ def data_container(self): """ return self.method_dict + @data_container.setter + def data_container(self, data_container): + self.method_dict = data_container + @Slot(str) def update_method(self, new_method: str): self.current_method = new_method diff --git a/src/qudi/logic/qdyne/tools/settings_dataclass.py b/src/qudi/logic/qdyne/tools/settings_dataclass.py index 76a603435..c9e66bc43 100644 --- a/src/qudi/logic/qdyne/tools/settings_dataclass.py +++ b/src/qudi/logic/qdyne/tools/settings_dataclass.py @@ -66,6 +66,10 @@ def data_container(self): """ return self.mode_dict + @data_container.setter + def data_container(self, data_container): + self.mode_dict = data_container + @property def default_data(self): return self.mode_dict["default"]