From ae21656e8321bb613044facf009f485bc232e47e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mose=20M=C3=BCller?= Date: Thu, 19 Jun 2025 13:38:51 +0200 Subject: [PATCH] pulls get_value out of ProxyClassMixin --- src/pydase/client/proxy_loader.py | 28 +++++++++++++++++++--------- 1 file changed, 19 insertions(+), 9 deletions(-) diff --git a/src/pydase/client/proxy_loader.py b/src/pydase/client/proxy_loader.py index 34c8e3d..6729d16 100644 --- a/src/pydase/client/proxy_loader.py +++ b/src/pydase/client/proxy_loader.py @@ -74,6 +74,21 @@ def update_value( ) +def get_value( + sio_client: socketio.AsyncClient, + loop: asyncio.AbstractEventLoop, + access_path: str, +) -> Any: + async def get_result() -> Any: + return await sio_client.call("get_value", access_path) + + result = asyncio.run_coroutine_threadsafe( + get_result(), + loop=loop, + ).result() + return ProxyLoader.loads_proxy(result, sio_client, loop) + + class ProxyDict(dict[str, Any]): def __init__( self, @@ -242,16 +257,11 @@ class ProxyClassMixin: self, attr_name: str, serialized_object: SerializedObject ) -> None: def getter_proxy() -> Any: - async def get_result() -> Any: - return await self._sio.call( - "get_value", serialized_object["full_access_path"] - ) - - result = asyncio.run_coroutine_threadsafe( - get_result(), + get_value( + sio_client=self._sio, loop=self._loop, - ).result() - return ProxyLoader.loads_proxy(result, self._sio, self._loop) + access_path=serialized_object["full_access_path"], + ) dict.__setitem__(self._proxy_getters, attr_name, getter_proxy) # type: ignore