From 3a82c95f60cb2b7f0b29a1ea5cdcbfa5bf602af8 Mon Sep 17 00:00:00 2001 From: wyzula-jan Date: Thu, 10 Apr 2025 16:11:07 +0200 Subject: [PATCH] fix(waveform, rpc_reference): __getitem__ removed form waveform and rpc_reference --- bec_widgets/cli/client.py | 6 ------ bec_widgets/cli/rpc/rpc_base.py | 10 +++------- bec_widgets/widgets/plots/waveform/waveform.py | 7 +++---- 3 files changed, 6 insertions(+), 17 deletions(-) diff --git a/bec_widgets/cli/client.py b/bec_widgets/cli/client.py index f21711cf..94a1c0e9 100644 --- a/bec_widgets/cli/client.py +++ b/bec_widgets/cli/client.py @@ -3161,12 +3161,6 @@ class Waveform(RPCBase): The font size of the legend font. """ - @rpc_call - def __getitem__(self, key: "int | str"): - """ - None - """ - @property @rpc_call def curves(self) -> "list[Curve]": diff --git a/bec_widgets/cli/rpc/rpc_base.py b/bec_widgets/cli/rpc/rpc_base.py index 70606143..150b287a 100644 --- a/bec_widgets/cli/rpc/rpc_base.py +++ b/bec_widgets/cli/rpc/rpc_base.py @@ -93,21 +93,17 @@ class RPCReference: @check_for_deleted_widget def __getattr__(self, name): - if name in ["_registry", "_gui_id", "_is_deleted", "_name", "object_name"]: + if name in ["_registry", "_gui_id", "_is_deleted", "object_name"]: return super().__getattribute__(name) return self._registry[self._gui_id].__getattribute__(name) def __setattr__(self, name, value): - if name in ["_registry", "_gui_id", "_is_deleted", "_name", "object_name"]: + if name in ["_registry", "_gui_id", "_is_deleted", "object_name"]: return super().__setattr__(name, value) if self._gui_id not in self._registry: raise DeletedWidgetError(f"Widget with gui_id {self._gui_id} has been deleted") self._registry[self._gui_id].__setattr__(name, value) - @check_for_deleted_widget - def __getitem__(self, key): - return self._registry[self._gui_id].__getitem__(key) - def __repr__(self): if self._gui_id not in self._registry: return f"" @@ -175,7 +171,7 @@ class RPCBase: parent = parent._parent return parent # type: ignore - def _run_rpc(self, method, *args, wait_for_rpc_response=True, timeout=300, **kwargs) -> Any: + def _run_rpc(self, method, *args, wait_for_rpc_response=True, timeout=5, **kwargs) -> Any: """ Run the RPC call. diff --git a/bec_widgets/widgets/plots/waveform/waveform.py b/bec_widgets/widgets/plots/waveform/waveform.py index b342e386..c2b09864 100644 --- a/bec_widgets/widgets/plots/waveform/waveform.py +++ b/bec_widgets/widgets/plots/waveform/waveform.py @@ -82,7 +82,6 @@ class Waveform(PlotBase): "legend_label_size", "legend_label_size.setter", # Waveform Specific RPC Access - "__getitem__", "curves", "x_mode", "x_mode.setter", @@ -191,9 +190,6 @@ class Waveform(PlotBase): action.triggered.connect(self._reset_view) break - def __getitem__(self, key: int | str): - return self.get_curve(key) - ################################################################################ # Widget Specific GUI interactions ################################################################################ @@ -1608,6 +1604,9 @@ class Waveform(PlotBase): if scan_index == -1: scan_item = self.client.queue.scan_storage.current_scan if scan_item is not None: + if scan_item.status_message is None: + logger.warning(f"Scan item with {scan_item.scan_id} has no status message.") + return self.scan_item = scan_item self.scan_id = scan_item.scan_id self._emit_signal_update()