mirror of
https://github.com/tiqi-group/pydase.git
synced 2025-06-06 13:30:41 +02:00
get_value_dict_from_cache does not catch exceptions any more
This commit is contained in:
parent
6d786cd0f8
commit
ad0f9420d9
@ -2,7 +2,6 @@ import logging
|
|||||||
from typing import TYPE_CHECKING, Any, cast
|
from typing import TYPE_CHECKING, Any, cast
|
||||||
|
|
||||||
from pydase.utils.serialization.serializer import (
|
from pydase.utils.serialization.serializer import (
|
||||||
SerializationPathError,
|
|
||||||
SerializedObject,
|
SerializedObject,
|
||||||
get_nested_dict_by_path,
|
get_nested_dict_by_path,
|
||||||
set_nested_value_by_path,
|
set_nested_value_by_path,
|
||||||
@ -37,16 +36,7 @@ class DataServiceCache:
|
|||||||
)
|
)
|
||||||
|
|
||||||
def get_value_dict_from_cache(self, full_access_path: str) -> SerializedObject:
|
def get_value_dict_from_cache(self, full_access_path: str) -> SerializedObject:
|
||||||
try:
|
|
||||||
return get_nested_dict_by_path(
|
return get_nested_dict_by_path(
|
||||||
cast(dict[str, SerializedObject], self._cache["value"]),
|
cast(dict[str, SerializedObject], self._cache["value"]),
|
||||||
full_access_path,
|
full_access_path,
|
||||||
)
|
)
|
||||||
except (SerializationPathError, KeyError):
|
|
||||||
return {
|
|
||||||
"full_access_path": full_access_path,
|
|
||||||
"value": None,
|
|
||||||
"type": "None",
|
|
||||||
"doc": None,
|
|
||||||
"readonly": False,
|
|
||||||
}
|
|
||||||
|
@ -9,7 +9,11 @@ from pydase.observer_pattern.observer.property_observer import (
|
|||||||
PropertyObserver,
|
PropertyObserver,
|
||||||
)
|
)
|
||||||
from pydase.utils.helpers import get_object_attr_from_path
|
from pydase.utils.helpers import get_object_attr_from_path
|
||||||
from pydase.utils.serialization.serializer import SerializedObject, dump
|
from pydase.utils.serialization.serializer import (
|
||||||
|
SerializationPathError,
|
||||||
|
SerializedObject,
|
||||||
|
dump,
|
||||||
|
)
|
||||||
|
|
||||||
logger = logging.getLogger(__name__)
|
logger = logging.getLogger(__name__)
|
||||||
|
|
||||||
@ -29,17 +33,27 @@ class DataServiceObserver(PropertyObserver):
|
|||||||
for changing_attribute in self.changing_attributes
|
for changing_attribute in self.changing_attributes
|
||||||
):
|
):
|
||||||
return
|
return
|
||||||
|
cached_value_dict: SerializedObject
|
||||||
|
|
||||||
|
try:
|
||||||
cached_value_dict = deepcopy(
|
cached_value_dict = deepcopy(
|
||||||
self.state_manager._data_service_cache.get_value_dict_from_cache(
|
self.state_manager._data_service_cache.get_value_dict_from_cache(
|
||||||
full_access_path
|
full_access_path
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
|
except (SerializationPathError, KeyError):
|
||||||
|
cached_value_dict = {
|
||||||
|
"full_access_path": full_access_path,
|
||||||
|
"value": None,
|
||||||
|
"type": "None",
|
||||||
|
"doc": None,
|
||||||
|
"readonly": False,
|
||||||
|
}
|
||||||
|
|
||||||
cached_value = cached_value_dict.get("value")
|
cached_value = cached_value_dict.get("value")
|
||||||
if (
|
if (
|
||||||
all(part[0] != "_" for part in full_access_path.split("."))
|
all(part[0] != "_" for part in full_access_path.split("."))
|
||||||
and cached_value != dump(value)["value"]
|
and cached_value != value
|
||||||
):
|
):
|
||||||
logger.debug("'%s' changed to '%s'", full_access_path, value)
|
logger.debug("'%s' changed to '%s'", full_access_path, value)
|
||||||
|
|
||||||
|
@ -157,9 +157,18 @@ class StateManager:
|
|||||||
for path in generate_serialized_data_paths(json_dict):
|
for path in generate_serialized_data_paths(json_dict):
|
||||||
if self.__is_loadable_state_attribute(path):
|
if self.__is_loadable_state_attribute(path):
|
||||||
nested_json_dict = get_nested_dict_by_path(json_dict, path)
|
nested_json_dict = get_nested_dict_by_path(json_dict, path)
|
||||||
nested_class_dict = self._data_service_cache.get_value_dict_from_cache(
|
try:
|
||||||
path
|
nested_class_dict = (
|
||||||
|
self._data_service_cache.get_value_dict_from_cache(path)
|
||||||
)
|
)
|
||||||
|
except (SerializationPathError, KeyError):
|
||||||
|
nested_class_dict = {
|
||||||
|
"full_access_path": path,
|
||||||
|
"value": None,
|
||||||
|
"type": "None",
|
||||||
|
"doc": None,
|
||||||
|
"readonly": False,
|
||||||
|
}
|
||||||
|
|
||||||
value_type = nested_json_dict["type"]
|
value_type = nested_json_dict["type"]
|
||||||
class_attr_value_type = nested_class_dict.get("type", None)
|
class_attr_value_type = nested_class_dict.get("type", None)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user