[Fix] Update configuration handling to improve stability and error management
This commit is contained in:
@@ -85,8 +85,10 @@ class ManagedDict(dict):
|
|||||||
internal_dict = self._get_internal()
|
internal_dict = self._get_internal()
|
||||||
internal_dict.clear()
|
internal_dict.clear()
|
||||||
internal_dict.update(dict.items(self))
|
internal_dict.update(dict.items(self))
|
||||||
# Trigger config save
|
# Trigger config save only if the corresponding property is serializable
|
||||||
self._instance.saveConfig(self._property_name, dict(self), immediate_save=self._immediate_save)
|
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:
|
except Exception:
|
||||||
pass
|
pass
|
||||||
|
|
||||||
@@ -162,8 +164,10 @@ class ManagedList(list):
|
|||||||
internal_list = self._get_internal()
|
internal_list = self._get_internal()
|
||||||
internal_list.clear()
|
internal_list.clear()
|
||||||
internal_list.extend(list.__iter__(self))
|
internal_list.extend(list.__iter__(self))
|
||||||
# Trigger config save
|
# Trigger config save only if the corresponding property is serializable
|
||||||
self._instance.saveConfig(self._property_name, list(self), immediate_save=self._immediate_save)
|
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:
|
except Exception:
|
||||||
pass
|
pass
|
||||||
|
|
||||||
@@ -292,7 +296,8 @@ class ManagedProperty:
|
|||||||
setattr(instance, self.private_name, value)
|
setattr(instance, self.private_name, value)
|
||||||
# Persist change
|
# Persist change
|
||||||
try:
|
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:
|
except Exception:
|
||||||
# Keep setter robust during import-time initialization
|
# Keep setter robust during import-time initialization
|
||||||
pass
|
pass
|
||||||
@@ -324,7 +329,8 @@ class ValidatedProperty:
|
|||||||
return
|
return
|
||||||
setattr(instance, self.private_name, normalized)
|
setattr(instance, self.private_name, normalized)
|
||||||
try:
|
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:
|
except Exception:
|
||||||
pass
|
pass
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user