mirror of
https://github.com/tiqi-group/pydase.git
synced 2025-04-20 08:20:02 +02:00
DataService's serialize method now returns whole serialization dict (also passed to frontend)
This commit is contained in:
parent
bcabd2dc48
commit
a2518671da
@ -248,7 +248,7 @@ class DataService(rpyc.Service, AbstractDataService):
|
|||||||
Returns:
|
Returns:
|
||||||
dict: The serialized instance.
|
dict: The serialized instance.
|
||||||
"""
|
"""
|
||||||
return Serializer.serialize_object(self)["value"]
|
return Serializer.serialize_object(self)
|
||||||
|
|
||||||
def update_DataService_attribute( # noqa: N802
|
def update_DataService_attribute( # noqa: N802
|
||||||
self,
|
self,
|
||||||
|
@ -30,10 +30,10 @@ class DataServiceCache:
|
|||||||
self._cache = self.service.serialize()
|
self._cache = self.service.serialize()
|
||||||
|
|
||||||
def update_cache(self, full_access_path: str, value: Any) -> None:
|
def update_cache(self, full_access_path: str, value: Any) -> None:
|
||||||
set_nested_value_by_path(self._cache, full_access_path, value)
|
set_nested_value_by_path(self._cache["value"], full_access_path, value)
|
||||||
|
|
||||||
def get_value_dict_from_cache(self, full_access_path: str) -> dict[str, Any]:
|
def get_value_dict_from_cache(self, full_access_path: str) -> dict[str, Any]:
|
||||||
try:
|
try:
|
||||||
return get_nested_dict_by_path(self._cache, full_access_path)
|
return get_nested_dict_by_path(self._cache["value"], full_access_path)
|
||||||
except (SerializationPathError, SerializationValueError, KeyError):
|
except (SerializationPathError, SerializationValueError, KeyError):
|
||||||
return {}
|
return {}
|
||||||
|
@ -126,7 +126,7 @@ class StateManager:
|
|||||||
|
|
||||||
if self.filename is not None:
|
if self.filename is not None:
|
||||||
with open(self.filename, "w") as f:
|
with open(self.filename, "w") as f:
|
||||||
json.dump(self.cache, f, indent=4)
|
json.dump(self.cache["value"], f, indent=4)
|
||||||
else:
|
else:
|
||||||
logger.info(
|
logger.info(
|
||||||
"State manager was not initialised with a filename. Skipping "
|
"State manager was not initialised with a filename. Skipping "
|
||||||
@ -191,7 +191,7 @@ class StateManager:
|
|||||||
value: The new value to set for the attribute.
|
value: The new value to set for the attribute.
|
||||||
"""
|
"""
|
||||||
|
|
||||||
current_value_dict = get_nested_dict_by_path(self.cache, path)
|
current_value_dict = get_nested_dict_by_path(self.cache["value"], path)
|
||||||
|
|
||||||
# This will also filter out methods as they are 'read-only'
|
# This will also filter out methods as they are 'read-only'
|
||||||
if current_value_dict["readonly"]:
|
if current_value_dict["readonly"]:
|
||||||
@ -234,7 +234,7 @@ class StateManager:
|
|||||||
# Update path to reflect the attribute without list indices
|
# Update path to reflect the attribute without list indices
|
||||||
path = ".".join([*parent_path_list, attr_name])
|
path = ".".join([*parent_path_list, attr_name])
|
||||||
|
|
||||||
attr_cache_type = get_nested_dict_by_path(self.cache, path)["type"]
|
attr_cache_type = get_nested_dict_by_path(self.cache["value"], path)["type"]
|
||||||
|
|
||||||
# Traverse the object according to the path parts
|
# Traverse the object according to the path parts
|
||||||
target_obj = get_object_attr_from_path_list(self.service, parent_path_list)
|
target_obj = get_object_attr_from_path_list(self.service, parent_path_list)
|
||||||
@ -273,7 +273,7 @@ class StateManager:
|
|||||||
return has_decorator
|
return has_decorator
|
||||||
|
|
||||||
cached_serialization_dict = get_nested_dict_by_path(
|
cached_serialization_dict = get_nested_dict_by_path(
|
||||||
self.cache, full_access_path
|
self.cache["value"], full_access_path
|
||||||
)
|
)
|
||||||
|
|
||||||
if cached_serialization_dict["value"] == "method":
|
if cached_serialization_dict["value"] == "method":
|
||||||
|
@ -126,7 +126,7 @@ class WebServer:
|
|||||||
@property
|
@property
|
||||||
def web_settings(self) -> dict[str, dict[str, Any]]:
|
def web_settings(self) -> dict[str, dict[str, Any]]:
|
||||||
current_web_settings = self._get_web_settings_from_file()
|
current_web_settings = self._get_web_settings_from_file()
|
||||||
for path in generate_serialized_data_paths(self.state_manager.cache):
|
for path in generate_serialized_data_paths(self.state_manager.cache["value"]):
|
||||||
if path in current_web_settings:
|
if path in current_web_settings:
|
||||||
continue
|
continue
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user