fixes loading of removed attributes. Prints debug log instead of raising exception

This commit is contained in:
Mose Müller 2024-03-28 11:27:16 +01:00
parent edb06b1612
commit 900017791a
2 changed files with 18 additions and 9 deletions

View File

@ -13,6 +13,7 @@ from pydase.utils.helpers import (
)
from pydase.utils.serialization.deserializer import loads
from pydase.utils.serialization.serializer import (
SerializationPathError,
SerializedObject,
generate_serialized_data_paths,
get_nested_dict_by_path,
@ -299,12 +300,20 @@ class StateManager:
)
return has_decorator
cached_serialization_dict = get_nested_dict_by_path(
self.cache_value, full_access_path
)
try:
cached_serialization_dict = get_nested_dict_by_path(
self.cache_value, full_access_path
)
if cached_serialization_dict["value"] == "method":
if cached_serialization_dict["value"] == "method":
return False
# nested objects cannot be loaded
return not serialized_dict_is_nested_object(cached_serialization_dict)
except SerializationPathError:
logger.debug(
"Path %a could not be loaded. It does not correspond to an attribute of"
" the class. Ignoring value from JSON file...",
attr_name,
)
return False
# nested objects cannot be loaded
return not serialized_dict_is_nested_object(cached_serialization_dict)

View File

@ -240,8 +240,8 @@ def test_load_state(tmp_path: Path, caplog: LogCaptureFixture) -> None:
"Ignoring value from JSON file..."
) in caplog.text
assert (
"Attribute type of 'removed_attr' changed from 'str' to 'None'. "
"Ignoring value from JSON file..." in caplog.text
"Path 'removed_attr' could not be loaded. It does not correspond to an "
"attribute of the class. Ignoring value from JSON file..." in caplog.text
)
assert "Value of attribute 'subservice.name' has not changed..." in caplog.text
assert "'my_slider.value' changed to '1.0'" in caplog.text