From 877f4cefa93a547cb93231543877bab4eee7b30b Mon Sep 17 00:00:00 2001 From: misyaguziya <53165965+misyaguziya@users.noreply.github.com> Date: Fri, 14 Nov 2025 11:26:33 +0900 Subject: [PATCH] [Fix] Update configuration handling to improve stability and error management --- src-python/config.py | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/src-python/config.py b/src-python/config.py index f2c1e28a..3a3e7c3b 100644 --- a/src-python/config.py +++ b/src-python/config.py @@ -85,8 +85,10 @@ class ManagedDict(dict): internal_dict = self._get_internal() internal_dict.clear() internal_dict.update(dict.items(self)) - # Trigger config save - self._instance.saveConfig(self._property_name, dict(self), immediate_save=self._immediate_save) + # Trigger config save only if the corresponding property is serializable + descriptor = getattr(type(self._instance), self._property_name, None) + if getattr(descriptor, "serialize", True): + self._instance.saveConfig(self._property_name, dict(self), immediate_save=self._immediate_save) except Exception: pass @@ -162,8 +164,10 @@ class ManagedList(list): internal_list = self._get_internal() internal_list.clear() internal_list.extend(list.__iter__(self)) - # Trigger config save - self._instance.saveConfig(self._property_name, list(self), immediate_save=self._immediate_save) + # Trigger config save only if the corresponding property is serializable + descriptor = getattr(type(self._instance), self._property_name, None) + if getattr(descriptor, "serialize", True): + self._instance.saveConfig(self._property_name, list(self), immediate_save=self._immediate_save) except Exception: pass @@ -292,7 +296,8 @@ class ManagedProperty: setattr(instance, self.private_name, value) # Persist change try: - instance.saveConfig(self.name, value, immediate_save=self.immediate_save) + if self.serialize: + instance.saveConfig(self.name, value, immediate_save=self.immediate_save) except Exception: # Keep setter robust during import-time initialization pass @@ -324,7 +329,8 @@ class ValidatedProperty: return setattr(instance, self.private_name, normalized) try: - instance.saveConfig(self.name, normalized, immediate_save=self.immediate_save) + if self.serialize: + instance.saveConfig(self.name, normalized, immediate_save=self.immediate_save) except Exception: pass