From 778230b5edf5d24df8a10c78c90ea065510e8344 Mon Sep 17 00:00:00 2001 From: wakonig_k Date: Tue, 15 Apr 2025 11:41:03 +0200 Subject: [PATCH] feat(auto_updates): enforce rpc widget class for subclasses of auto updates --- bec_widgets/utils/rpc_server.py | 6 +++++- bec_widgets/widgets/containers/auto_update/auto_updates.py | 3 +++ 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/bec_widgets/utils/rpc_server.py b/bec_widgets/utils/rpc_server.py index cb419c00..0db34b0b 100644 --- a/bec_widgets/utils/rpc_server.py +++ b/bec_widgets/utils/rpc_server.py @@ -216,10 +216,14 @@ class RPCServer: while not self.rpc_register.object_is_registered(connector): QApplication.processEvents() + widget_class = getattr(connector, "rpc_widget_class", None) + if not widget_class: + widget_class = connector.__class__.__name__ + return { "gui_id": connector.gui_id, "object_name": connector.object_name or connector.__class__.__name__, - "widget_class": connector.__class__.__name__, + "widget_class": widget_class, "config": config_dict, "__rpc__": True, } diff --git a/bec_widgets/widgets/containers/auto_update/auto_updates.py b/bec_widgets/widgets/containers/auto_update/auto_updates.py index 6269e596..ce604044 100644 --- a/bec_widgets/widgets/containers/auto_update/auto_updates.py +++ b/bec_widgets/widgets/containers/auto_update/auto_updates.py @@ -28,6 +28,9 @@ class AutoUpdates(BECMainWindow): USER_ACCESS = ["enabled", "enabled.setter", "selected_device", "selected_device.setter"] RPC = True + # enforce that subclasses have the same rpc widget class + rpc_widget_class = "AutoUpdates" + def __init__( self, parent=None, gui_id: str = None, window_title="Auto Update", *args, **kwargs ):