From 9f8fbdd5fc13cf2be10eacb41e10cf742864cd92 Mon Sep 17 00:00:00 2001 From: Mathias Guijarro Date: Wed, 8 May 2024 17:17:26 +0200 Subject: [PATCH] fix: check device class without importing to speed up initial import time --- bec_widgets/cli/client_utils.py | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/bec_widgets/cli/client_utils.py b/bec_widgets/cli/client_utils.py index c58e241a..af4185af 100644 --- a/bec_widgets/cli/client_utils.py +++ b/bec_widgets/cli/client_utils.py @@ -12,15 +12,16 @@ import uuid from functools import wraps from typing import TYPE_CHECKING -from bec_lib.device import DeviceBase from bec_lib.endpoints import MessageEndpoints from bec_lib.service_config import ServiceConfig -from bec_lib.utils.import_utils import lazy_import, lazy_import_from +from bec_lib.utils.import_utils import isinstance_based_on_class_name, lazy_import, lazy_import_from from qtpy.QtCore import QCoreApplication import bec_widgets.cli.client as client if TYPE_CHECKING: + from bec_lib.device import DeviceBase + from bec_widgets.cli.client import BECDockArea, BECFigure messages = lazy_import("bec_lib.messages") @@ -85,7 +86,7 @@ class BECGuiClientMixin: @selected_device.setter def selected_device(self, device: str | DeviceBase): - if isinstance(device, DeviceBase): + if isinstance_based_on_class_name(device, "bec_lib.device.DeviceBase"): self._selected_device = device.name elif isinstance(device, str): self._selected_device = device