diff --git a/bec_widgets/__init__.py b/bec_widgets/__init__.py index f88f7db6..db034b2c 100644 --- a/bec_widgets/__init__.py +++ b/bec_widgets/__init__.py @@ -1,19 +1,21 @@ import os import sys -import bec_widgets.widgets.containers.qt_ads as QtAds -from bec_widgets.utils.bec_widget import BECWidget -from bec_widgets.utils.error_popups import SafeProperty, SafeSlot - if sys.platform.startswith("linux"): qt_platform = os.environ.get("QT_QPA_PLATFORM", "") if qt_platform != "offscreen": os.environ["QT_QPA_PLATFORM"] = "xcb" -# Default QtAds configuration -QtAds.CDockManager.setConfigFlag(QtAds.CDockManager.eConfigFlag.FocusHighlighting, True) -QtAds.CDockManager.setConfigFlag( - QtAds.CDockManager.eConfigFlag.RetainTabSizeWhenCloseButtonHidden, True -) - __all__ = ["BECWidget", "SafeSlot", "SafeProperty"] + + +def __getattr__(name: str): + if name == "BECWidget": + from bec_widgets.utils.bec_widget import BECWidget + + return BECWidget + if name in {"SafeProperty", "SafeSlot"}: + from bec_widgets.utils.error_popups import SafeProperty, SafeSlot + + return {"SafeProperty": SafeProperty, "SafeSlot": SafeSlot}[name] + raise AttributeError(f"module {__name__!r} has no attribute {name!r}") diff --git a/bec_widgets/applications/views/device_manager_view/device_manager_dialogs/__init__.py b/bec_widgets/applications/views/device_manager_view/device_manager_dialogs/__init__.py index b507c9d9..e69de29b 100644 --- a/bec_widgets/applications/views/device_manager_view/device_manager_dialogs/__init__.py +++ b/bec_widgets/applications/views/device_manager_view/device_manager_dialogs/__init__.py @@ -1,2 +0,0 @@ -from .config_choice_dialog import ConfigChoiceDialog -from .device_form_dialog import DeviceFormDialog diff --git a/bec_widgets/applications/views/device_manager_view/device_manager_dialogs/device_form_dialog.py b/bec_widgets/applications/views/device_manager_view/device_manager_dialogs/device_form_dialog.py index 11f5f701..736fa39f 100644 --- a/bec_widgets/applications/views/device_manager_view/device_manager_dialogs/device_form_dialog.py +++ b/bec_widgets/applications/views/device_manager_view/device_manager_dialogs/device_form_dialog.py @@ -8,14 +8,16 @@ from ophyd_devices.interfaces.device_config_templates.ophyd_templates import OPH from qtpy import QtCore, QtWidgets from bec_widgets.utils.error_popups import SafeSlot -from bec_widgets.widgets.control.device_manager.components import OphydValidation from bec_widgets.widgets.control.device_manager.components.device_config_template.device_config_template import ( DeviceConfigTemplate, ) from bec_widgets.widgets.control.device_manager.components.device_config_template.template_items import ( validate_name, ) -from bec_widgets.widgets.control.device_manager.components.ophyd_validation import ( +from bec_widgets.widgets.control.device_manager.components.ophyd_validation.ophyd_validation import ( + OphydValidation, +) +from bec_widgets.widgets.control.device_manager.components.ophyd_validation.ophyd_validation_utils import ( ConfigStatus, ConnectionStatus, format_error_to_md, diff --git a/bec_widgets/applications/views/device_manager_view/device_manager_dialogs/upload_redis_dialog.py b/bec_widgets/applications/views/device_manager_view/device_manager_dialogs/upload_redis_dialog.py index a192a748..8d6574ab 100644 --- a/bec_widgets/applications/views/device_manager_view/device_manager_dialogs/upload_redis_dialog.py +++ b/bec_widgets/applications/views/device_manager_view/device_manager_dialogs/upload_redis_dialog.py @@ -12,7 +12,7 @@ from qtpy import QtCore, QtGui, QtWidgets from bec_widgets.utils.colors import get_accent_colors from bec_widgets.utils.error_popups import SafeSlot -from bec_widgets.widgets.control.device_manager.components.ophyd_validation import ( +from bec_widgets.widgets.control.device_manager.components.ophyd_validation.ophyd_validation_utils import ( ConfigStatus, ConnectionStatus, get_validation_icons, diff --git a/bec_widgets/applications/views/device_manager_view/device_manager_display_widget.py b/bec_widgets/applications/views/device_manager_view/device_manager_display_widget.py index bf6d3545..248f50db 100644 --- a/bec_widgets/applications/views/device_manager_view/device_manager_display_widget.py +++ b/bec_widgets/applications/views/device_manager_view/device_manager_display_widget.py @@ -26,8 +26,10 @@ from qtpy.QtWidgets import ( QWidget, ) -from bec_widgets.applications.views.device_manager_view.device_manager_dialogs import ( +from bec_widgets.applications.views.device_manager_view.device_manager_dialogs.config_choice_dialog import ( ConfigChoiceDialog, +) +from bec_widgets.applications.views.device_manager_view.device_manager_dialogs.device_form_dialog import ( DeviceFormDialog, ) from bec_widgets.applications.views.device_manager_view.device_manager_dialogs.upload_redis_dialog import ( @@ -39,13 +41,15 @@ from bec_widgets.utils.toolbars.actions import MaterialIconAction from bec_widgets.utils.toolbars.bundles import ToolbarBundle from bec_widgets.utils.toolbars.toolbar import ModularToolBar from bec_widgets.widgets.containers.dock_area.basic_dock_area import DockAreaWidget -from bec_widgets.widgets.control.device_manager.components import ( +from bec_widgets.widgets.control.device_manager.components._util import SharedSelectionSignal +from bec_widgets.widgets.control.device_manager.components.device_table.device_table import ( DeviceTable, - DMConfigView, - DocstringView, +) +from bec_widgets.widgets.control.device_manager.components.dm_config_view import DMConfigView +from bec_widgets.widgets.control.device_manager.components.dm_docstring_view import DocstringView +from bec_widgets.widgets.control.device_manager.components.ophyd_validation.ophyd_validation import ( OphydValidation, ) -from bec_widgets.widgets.control.device_manager.components._util import SharedSelectionSignal from bec_widgets.widgets.control.device_manager.components.ophyd_validation.ophyd_validation_utils import ( ConfigStatus, ConnectionStatus, diff --git a/bec_widgets/utils/__init__.py b/bec_widgets/utils/__init__.py index 9d584849..e69de29b 100644 --- a/bec_widgets/utils/__init__.py +++ b/bec_widgets/utils/__init__.py @@ -1,13 +0,0 @@ -from qtpy.QtWebEngineWidgets import QWebEngineView - -from .bec_connector import BECConnector, ConnectionConfig -from .bec_dispatcher import BECDispatcher -from .bec_table import BECTable -from .colors import Colors -from .container_utils import WidgetContainerUtils -from .crosshair import Crosshair -from .entry_validator import EntryValidator -from .layout_manager import GridLayoutManager -from .rpc_decorator import register_rpc_methods, rpc_public -from .ui_loader import UILoader -from .validator_delegate import DoubleValidationDelegate diff --git a/bec_widgets/utils/bec_widget.py b/bec_widgets/utils/bec_widget.py index e091e0a2..ff02c9d1 100644 --- a/bec_widgets/utils/bec_widget.py +++ b/bec_widgets/utils/bec_widget.py @@ -20,7 +20,6 @@ from bec_widgets.widgets.utility.spinner.spinner import SpinnerWidget if TYPE_CHECKING: # pragma: no cover from bec_widgets.utils.busy_loader import BusyLoaderOverlay - from bec_widgets.widgets.containers.dock import BECDock logger = bec_logger.logger diff --git a/bec_widgets/utils/plugin_utils.py b/bec_widgets/utils/plugin_utils.py index 32ac9c9d..c9c367ae 100644 --- a/bec_widgets/utils/plugin_utils.py +++ b/bec_widgets/utils/plugin_utils.py @@ -9,7 +9,7 @@ from typing import TYPE_CHECKING, Iterable from bec_lib.plugin_helper import _get_available_plugins from qtpy.QtWidgets import QWidget -from bec_widgets.utils import BECConnector +from bec_widgets.utils.bec_connector import BECConnector from bec_widgets.utils.bec_widget import BECWidget if TYPE_CHECKING: # pragma: no cover diff --git a/bec_widgets/utils/rpc_server.py b/bec_widgets/utils/rpc_server.py index d94f9c51..921212b7 100644 --- a/bec_widgets/utils/rpc_server.py +++ b/bec_widgets/utils/rpc_server.py @@ -15,8 +15,8 @@ from qtpy.QtWidgets import QWidget from redis.exceptions import RedisError from bec_widgets.cli.rpc.rpc_register import RPCRegister -from bec_widgets.utils import BECDispatcher from bec_widgets.utils.bec_connector import BECConnector +from bec_widgets.utils.bec_dispatcher import BECDispatcher from bec_widgets.utils.container_utils import WidgetContainerUtils from bec_widgets.utils.error_popups import ErrorPopupUtility from bec_widgets.utils.screen_utils import apply_window_geometry @@ -25,7 +25,6 @@ from bec_widgets.widgets.containers.main_window.main_window import BECMainWindow if TYPE_CHECKING: # pragma: no cover from bec_lib import messages - from qtpy.QtCore import QObject else: messages = lazy_import("bec_lib.messages") logger = bec_logger.logger diff --git a/bec_widgets/utils/widget_io.py b/bec_widgets/utils/widget_io.py index 9a454861..aab7f29e 100644 --- a/bec_widgets/utils/widget_io.py +++ b/bec_widgets/utils/widget_io.py @@ -26,7 +26,7 @@ from qtpy.QtWidgets import ( from bec_widgets.widgets.utility.toggle.toggle import ToggleSwitch if TYPE_CHECKING: # pragma: no cover - from bec_widgets.utils import BECConnector + from bec_widgets.utils.bec_connector import BECConnector logger = bec_logger.logger @@ -418,7 +418,7 @@ class WidgetHierarchy: only_bec_widgets(bool, optional): Whether to print only widgets that are instances of BECWidget. show_parent(bool, optional): Whether to display which BECWidget is the parent of each discovered BECWidget. """ - from bec_widgets.utils import BECConnector + from bec_widgets.utils.bec_connector import BECConnector from bec_widgets.widgets.plots.waveform.waveform import Waveform for node in WidgetHierarchy.iter_widget_tree( @@ -468,7 +468,7 @@ class WidgetHierarchy: from qtpy.QtWidgets import QApplication - from bec_widgets.utils import BECConnector + from bec_widgets.utils.bec_connector import BECConnector from bec_widgets.widgets.plots.plot_base import PlotBase # 1) Gather ALL QWidget-based BECConnector objects @@ -534,7 +534,7 @@ class WidgetHierarchy: Returns: The nearest ancestor that is a BECConnector, or None if not found. """ - from bec_widgets.utils import BECConnector + from bec_widgets.utils.bec_connector import BECConnector # Guard against deleted/invalid Qt wrappers if not shb.isValid(widget): @@ -636,7 +636,7 @@ class WidgetHierarchy: Return all BECConnector instances whose closest BECConnector ancestor is the given widget, including the widget itself if it is a BECConnector. """ - from bec_widgets.utils import BECConnector + from bec_widgets.utils.bec_connector import BECConnector connectors: list[BECConnector] = [] if isinstance(widget, BECConnector): @@ -664,7 +664,7 @@ class WidgetHierarchy: return None try: - from bec_widgets.utils import BECConnector # local import to avoid cycles + from bec_widgets.utils.bec_connector import BECConnector # local import to avoid cycles is_bec_target = False if isinstance(ancestor_class, str): diff --git a/bec_widgets/widgets/containers/dock_area/dock_area.py b/bec_widgets/widgets/containers/dock_area/dock_area.py index 18b2ee02..1bb7ec11 100644 --- a/bec_widgets/widgets/containers/dock_area/dock_area.py +++ b/bec_widgets/widgets/containers/dock_area/dock_area.py @@ -21,7 +21,7 @@ import bec_widgets.widgets.containers.qt_ads as QtAds from bec_widgets import BECWidget, SafeProperty, SafeSlot from bec_widgets.applications.views.view import ViewTourSteps from bec_widgets.cli.rpc.rpc_widget_handler import widget_handler -from bec_widgets.utils import BECDispatcher +from bec_widgets.utils.bec_dispatcher import BECDispatcher from bec_widgets.utils.colors import apply_theme from bec_widgets.utils.rpc_decorator import rpc_timeout from bec_widgets.utils.toolbars.actions import ( diff --git a/bec_widgets/widgets/containers/main_window/addons/notification_center/notification_banner.py b/bec_widgets/widgets/containers/main_window/addons/notification_center/notification_banner.py index 4b99a48f..53f7a204 100644 --- a/bec_widgets/widgets/containers/main_window/addons/notification_center/notification_banner.py +++ b/bec_widgets/widgets/containers/main_window/addons/notification_center/notification_banner.py @@ -28,7 +28,7 @@ from qtpy.QtCore import QObject, QTimer from qtpy.QtWidgets import QApplication, QFrame, QMainWindow, QScrollArea, QWidget from bec_widgets import SafeProperty, SafeSlot -from bec_widgets.utils import BECConnector +from bec_widgets.utils.bec_connector import BECConnector from bec_widgets.utils.colors import apply_theme from bec_widgets.utils.widget_io import WidgetIO diff --git a/bec_widgets/widgets/containers/main_window/main_window.py b/bec_widgets/widgets/containers/main_window/main_window.py index e0f84a08..0d3713a0 100644 --- a/bec_widgets/widgets/containers/main_window/main_window.py +++ b/bec_widgets/widgets/containers/main_window/main_window.py @@ -18,10 +18,10 @@ from qtpy.QtWidgets import ( ) import bec_widgets -from bec_widgets.utils import UILoader from bec_widgets.utils.bec_widget import BECWidget from bec_widgets.utils.colors import apply_theme from bec_widgets.utils.error_popups import SafeSlot +from bec_widgets.utils.ui_loader import UILoader from bec_widgets.widgets.containers.main_window.addons.hover_widget import HoverWidget from bec_widgets.widgets.containers.main_window.addons.notification_center.notification_banner import ( BECNotificationBroker, diff --git a/bec_widgets/widgets/containers/qt_ads/__init__.py b/bec_widgets/widgets/containers/qt_ads/__init__.py index aa837994..d432e3fd 100644 --- a/bec_widgets/widgets/containers/qt_ads/__init__.py +++ b/bec_widgets/widgets/containers/qt_ads/__init__.py @@ -1 +1,4 @@ from PySide6QtAds import * + +CDockManager.setConfigFlag(CDockManager.eConfigFlag.FocusHighlighting, True) +CDockManager.setConfigFlag(CDockManager.eConfigFlag.RetainTabSizeWhenCloseButtonHidden, True) diff --git a/bec_widgets/widgets/control/device_control/positioner_box/positioner_box/positioner_box.py b/bec_widgets/widgets/control/device_control/positioner_box/positioner_box/positioner_box.py index 8e8239dd..41e6ae62 100644 --- a/bec_widgets/widgets/control/device_control/positioner_box/positioner_box/positioner_box.py +++ b/bec_widgets/widgets/control/device_control/positioner_box/positioner_box/positioner_box.py @@ -11,9 +11,9 @@ from qtpy.QtCore import Qt, Signal from qtpy.QtGui import QDoubleValidator from qtpy.QtWidgets import QDoubleSpinBox -from bec_widgets.utils import UILoader from bec_widgets.utils.colors import apply_theme, get_accent_colors from bec_widgets.utils.error_popups import SafeProperty, SafeSlot +from bec_widgets.utils.ui_loader import UILoader from bec_widgets.widgets.control.device_control.positioner_box.positioner_box_base import ( DeviceUpdateUIComponents, PositionerBoxBase, diff --git a/bec_widgets/widgets/control/device_control/positioner_box/positioner_box_2d/positioner_box_2d.py b/bec_widgets/widgets/control/device_control/positioner_box/positioner_box_2d/positioner_box_2d.py index b7396b0c..83bb73e1 100644 --- a/bec_widgets/widgets/control/device_control/positioner_box/positioner_box_2d/positioner_box_2d.py +++ b/bec_widgets/widgets/control/device_control/positioner_box/positioner_box_2d/positioner_box_2d.py @@ -12,9 +12,9 @@ from qtpy.QtCore import Signal from qtpy.QtGui import QDoubleValidator from qtpy.QtWidgets import QDoubleSpinBox -from bec_widgets.utils import UILoader from bec_widgets.utils.colors import apply_theme from bec_widgets.utils.error_popups import SafeProperty, SafeSlot +from bec_widgets.utils.ui_loader import UILoader from bec_widgets.widgets.control.device_control.positioner_box.positioner_box_base import ( DeviceUpdateUIComponents, PositionerBoxBase, diff --git a/bec_widgets/widgets/control/device_input/base_classes/device_input_base.py b/bec_widgets/widgets/control/device_input/base_classes/device_input_base.py index 8db1a14a..a9a488bb 100644 --- a/bec_widgets/widgets/control/device_input/base_classes/device_input_base.py +++ b/bec_widgets/widgets/control/device_input/base_classes/device_input_base.py @@ -7,7 +7,7 @@ from bec_lib.device import Signal as BECSignal from bec_lib.logger import bec_logger from pydantic import field_validator -from bec_widgets.utils import ConnectionConfig +from bec_widgets.utils.bec_connector import ConnectionConfig from bec_widgets.utils.bec_widget import BECWidget from bec_widgets.utils.error_popups import SafeProperty, SafeSlot from bec_widgets.utils.filter_io import FilterIO diff --git a/bec_widgets/widgets/control/device_input/base_classes/device_signal_input_base.py b/bec_widgets/widgets/control/device_input/base_classes/device_signal_input_base.py index cc03c9a3..788dea83 100644 --- a/bec_widgets/widgets/control/device_input/base_classes/device_signal_input_base.py +++ b/bec_widgets/widgets/control/device_input/base_classes/device_signal_input_base.py @@ -3,7 +3,7 @@ from bec_lib.device import Signal from bec_lib.logger import bec_logger from qtpy.QtCore import Property -from bec_widgets.utils import ConnectionConfig +from bec_widgets.utils.bec_connector import ConnectionConfig from bec_widgets.utils.bec_widget import BECWidget from bec_widgets.utils.error_popups import SafeSlot from bec_widgets.utils.filter_io import FilterIO diff --git a/bec_widgets/widgets/control/device_manager/__init__.py b/bec_widgets/widgets/control/device_manager/__init__.py index dca7392e..e69de29b 100644 --- a/bec_widgets/widgets/control/device_manager/__init__.py +++ b/bec_widgets/widgets/control/device_manager/__init__.py @@ -1 +0,0 @@ -from .components import DeviceTable, DMConfigView, DocstringView, OphydValidation diff --git a/bec_widgets/widgets/control/device_manager/components/__init__.py b/bec_widgets/widgets/control/device_manager/components/__init__.py index d3363977..e69de29b 100644 --- a/bec_widgets/widgets/control/device_manager/components/__init__.py +++ b/bec_widgets/widgets/control/device_manager/components/__init__.py @@ -1,5 +0,0 @@ -# from .device_table_view import DeviceTableView -from .device_table.device_table import DeviceTable -from .dm_config_view import DMConfigView -from .dm_docstring_view import DocstringView, docstring_to_markdown -from .ophyd_validation.ophyd_validation import OphydValidation diff --git a/bec_widgets/widgets/control/device_manager/components/available_device_resources/__init__.py b/bec_widgets/widgets/control/device_manager/components/available_device_resources/__init__.py index 83d4d4d0..e69de29b 100644 --- a/bec_widgets/widgets/control/device_manager/components/available_device_resources/__init__.py +++ b/bec_widgets/widgets/control/device_manager/components/available_device_resources/__init__.py @@ -1,3 +0,0 @@ -from .available_device_resources import AvailableDeviceResources - -__all__ = ["AvailableDeviceResources"] diff --git a/bec_widgets/widgets/control/device_manager/components/device_table/device_table.py b/bec_widgets/widgets/control/device_manager/components/device_table/device_table.py index 4b4a408c..5f99fd47 100644 --- a/bec_widgets/widgets/control/device_manager/components/device_table/device_table.py +++ b/bec_widgets/widgets/control/device_manager/components/device_table/device_table.py @@ -22,7 +22,7 @@ from bec_widgets.utils.fuzzy_search import is_match from bec_widgets.widgets.control.device_manager.components.device_table.device_table_row import ( DeviceTableRow, ) -from bec_widgets.widgets.control.device_manager.components.ophyd_validation import ( +from bec_widgets.widgets.control.device_manager.components.ophyd_validation.ophyd_validation_utils import ( ConfigStatus, ConnectionStatus, get_validation_icons, diff --git a/bec_widgets/widgets/control/device_manager/components/device_table/device_table_row.py b/bec_widgets/widgets/control/device_manager/components/device_table/device_table_row.py index 4a777e08..9a984764 100644 --- a/bec_widgets/widgets/control/device_manager/components/device_table/device_table_row.py +++ b/bec_widgets/widgets/control/device_manager/components/device_table/device_table_row.py @@ -2,7 +2,7 @@ from bec_lib.atlas_models import Device as DeviceModel -from bec_widgets.widgets.control.device_manager.components.ophyd_validation import ( +from bec_widgets.widgets.control.device_manager.components.ophyd_validation.ophyd_validation_utils import ( ConfigStatus, ConnectionStatus, ) diff --git a/bec_widgets/widgets/control/device_manager/components/ophyd_validation/__init__.py b/bec_widgets/widgets/control/device_manager/components/ophyd_validation/__init__.py index 82993770..e69de29b 100644 --- a/bec_widgets/widgets/control/device_manager/components/ophyd_validation/__init__.py +++ b/bec_widgets/widgets/control/device_manager/components/ophyd_validation/__init__.py @@ -1,8 +0,0 @@ -from .ophyd_validation_utils import ( - ConfigStatus, - ConnectionStatus, - DeviceTestModel, - format_error_to_md, - get_validation_icons, -) -from .validation_list_item import ValidationButton, ValidationListItem diff --git a/bec_widgets/widgets/control/device_manager/components/ophyd_validation/ophyd_validation.py b/bec_widgets/widgets/control/device_manager/components/ophyd_validation/ophyd_validation.py index a2cae41a..3dc6f8ed 100644 --- a/bec_widgets/widgets/control/device_manager/components/ophyd_validation/ophyd_validation.py +++ b/bec_widgets/widgets/control/device_manager/components/ophyd_validation/ophyd_validation.py @@ -22,15 +22,17 @@ from bec_widgets.utils.bec_list import BECList from bec_widgets.utils.bec_widget import BECWidget from bec_widgets.utils.colors import get_accent_colors from bec_widgets.utils.error_popups import SafeProperty, SafeSlot -from bec_widgets.widgets.control.device_manager.components.ophyd_validation import ( +from bec_widgets.widgets.control.device_manager.components.ophyd_validation.ophyd_validation_utils import ( ConfigStatus, ConnectionStatus, DeviceTestModel, - ValidationButton, - ValidationListItem, format_error_to_md, get_validation_icons, ) +from bec_widgets.widgets.control.device_manager.components.ophyd_validation.validation_list_item import ( + ValidationButton, + ValidationListItem, +) READY_TO_TEST = False diff --git a/bec_widgets/widgets/control/device_manager/components/ophyd_validation/validation_list_item.py b/bec_widgets/widgets/control/device_manager/components/ophyd_validation/validation_list_item.py index f8566f2d..ff4ee53c 100644 --- a/bec_widgets/widgets/control/device_manager/components/ophyd_validation/validation_list_item.py +++ b/bec_widgets/widgets/control/device_manager/components/ophyd_validation/validation_list_item.py @@ -7,7 +7,7 @@ from qtpy import QtCore, QtGui, QtWidgets from bec_widgets.utils.colors import get_accent_colors from bec_widgets.utils.error_popups import SafeSlot -from bec_widgets.widgets.control.device_manager.components.ophyd_validation import ( +from bec_widgets.widgets.control.device_manager.components.ophyd_validation.ophyd_validation_utils import ( ConfigStatus, ConnectionStatus, DeviceTestModel, diff --git a/bec_widgets/widgets/control/scan_control/__init__.py b/bec_widgets/widgets/control/scan_control/__init__.py index fbeb54be..e69de29b 100644 --- a/bec_widgets/widgets/control/scan_control/__init__.py +++ b/bec_widgets/widgets/control/scan_control/__init__.py @@ -1 +0,0 @@ -from .scan_control import ScanControl diff --git a/bec_widgets/widgets/control/scan_control/scan_control.py b/bec_widgets/widgets/control/scan_control/scan_control.py index c0bc1e24..b5cb4722 100644 --- a/bec_widgets/widgets/control/scan_control/scan_control.py +++ b/bec_widgets/widgets/control/scan_control/scan_control.py @@ -19,7 +19,7 @@ from qtpy.QtWidgets import ( QWidget, ) -from bec_widgets.utils import ConnectionConfig +from bec_widgets.utils.bec_connector import ConnectionConfig from bec_widgets.utils.bec_widget import BECWidget from bec_widgets.utils.colors import apply_theme, get_accent_colors from bec_widgets.utils.error_popups import SafeProperty, SafeSlot diff --git a/bec_widgets/widgets/dap/lmfit_dialog/lmfit_dialog.py b/bec_widgets/widgets/dap/lmfit_dialog/lmfit_dialog.py index 2b5be14d..f6111927 100644 --- a/bec_widgets/widgets/dap/lmfit_dialog/lmfit_dialog.py +++ b/bec_widgets/widgets/dap/lmfit_dialog/lmfit_dialog.py @@ -5,10 +5,10 @@ from bec_lib.logger import bec_logger from qtpy.QtCore import Signal from qtpy.QtWidgets import QPushButton, QSizePolicy, QTreeWidgetItem, QVBoxLayout, QWidget -from bec_widgets.utils import UILoader from bec_widgets.utils.bec_widget import BECWidget from bec_widgets.utils.colors import get_accent_colors from bec_widgets.utils.error_popups import SafeProperty, SafeSlot +from bec_widgets.utils.ui_loader import UILoader logger = bec_logger.logger diff --git a/bec_widgets/widgets/editors/jupyter_console/jupyter_console.py b/bec_widgets/widgets/editors/jupyter_console/jupyter_console.py index 40733201..c9b61789 100644 --- a/bec_widgets/widgets/editors/jupyter_console/jupyter_console.py +++ b/bec_widgets/widgets/editors/jupyter_console/jupyter_console.py @@ -1,10 +1,12 @@ -from bec_ipython_client.main import BECIPythonClient +from bec_lib.utils.import_utils import lazy_import_from from qtconsole.inprocess import QtInProcessKernelManager from qtconsole.manager import QtKernelManager from qtconsole.rich_jupyter_widget import RichJupyterWidget from qtpy.QtCore import Qt from qtpy.QtWidgets import QApplication, QMainWindow +BECIPythonClient = lazy_import_from("bec_ipython_client.main", ("BECIPythonClient",)) + class BECJupyterConsole(RichJupyterWidget): # pragma: no cover: def __init__(self, inprocess: bool = False): diff --git a/bec_widgets/widgets/editors/monaco/scan_control_dialog.py b/bec_widgets/widgets/editors/monaco/scan_control_dialog.py index f77e62c5..b7975bf6 100644 --- a/bec_widgets/widgets/editors/monaco/scan_control_dialog.py +++ b/bec_widgets/widgets/editors/monaco/scan_control_dialog.py @@ -11,7 +11,7 @@ from bec_lib.logger import bec_logger from qtpy.QtCore import QSize, Qt from qtpy.QtWidgets import QDialog, QDialogButtonBox, QPushButton, QVBoxLayout -from bec_widgets.widgets.control.scan_control import ScanControl +from bec_widgets.widgets.control.scan_control.scan_control import ScanControl logger = bec_logger.logger diff --git a/bec_widgets/widgets/plots/heatmap/heatmap.py b/bec_widgets/widgets/plots/heatmap/heatmap.py index 22287ca3..7dd6ff4d 100644 --- a/bec_widgets/widgets/plots/heatmap/heatmap.py +++ b/bec_widgets/widgets/plots/heatmap/heatmap.py @@ -19,8 +19,8 @@ from scipy.interpolate import ( from scipy.spatial import cKDTree from toolz import partition -from bec_widgets.utils import Colors from bec_widgets.utils.bec_connector import ConnectionConfig +from bec_widgets.utils.colors import Colors from bec_widgets.utils.error_popups import SafeProperty, SafeSlot from bec_widgets.utils.settings_dialog import SettingsDialog from bec_widgets.utils.toolbars.actions import MaterialIconAction diff --git a/bec_widgets/widgets/plots/heatmap/settings/heatmap_setting.py b/bec_widgets/widgets/plots/heatmap/settings/heatmap_setting.py index 8238caa7..dd60a38f 100644 --- a/bec_widgets/widgets/plots/heatmap/settings/heatmap_setting.py +++ b/bec_widgets/widgets/plots/heatmap/settings/heatmap_setting.py @@ -4,9 +4,9 @@ import os from qtpy.QtWidgets import QFrame, QScrollArea, QVBoxLayout -from bec_widgets.utils import UILoader from bec_widgets.utils.error_popups import SafeSlot from bec_widgets.utils.settings_dialog import SettingWidget +from bec_widgets.utils.ui_loader import UILoader class HeatmapSettings(SettingWidget): diff --git a/bec_widgets/widgets/plots/image/image.py b/bec_widgets/widgets/plots/image/image.py index d2ed8e39..14429080 100644 --- a/bec_widgets/widgets/plots/image/image.py +++ b/bec_widgets/widgets/plots/image/image.py @@ -10,7 +10,7 @@ from pydantic import BaseModel, Field, field_validator from qtpy.QtCore import QTimer from qtpy.QtWidgets import QWidget -from bec_widgets.utils import ConnectionConfig +from bec_widgets.utils.bec_connector import ConnectionConfig from bec_widgets.utils.colors import Colors, apply_theme from bec_widgets.utils.error_popups import SafeProperty, SafeSlot from bec_widgets.widgets.plots.image.image_base import ImageBase diff --git a/bec_widgets/widgets/plots/image/image_base.py b/bec_widgets/widgets/plots/image/image_base.py index 8a0bcaae..57bbf95c 100644 --- a/bec_widgets/widgets/plots/image/image_base.py +++ b/bec_widgets/widgets/plots/image/image_base.py @@ -9,7 +9,7 @@ from pydantic import BaseModel, ConfigDict, Field, ValidationError from qtpy.QtCore import QPointF, Signal, SignalInstance from qtpy.QtWidgets import QDialog, QVBoxLayout -from bec_widgets.utils import Colors +from bec_widgets.utils.colors import Colors from bec_widgets.utils.container_utils import WidgetContainerUtils from bec_widgets.utils.error_popups import SafeProperty, SafeSlot from bec_widgets.utils.side_panel import SidePanel diff --git a/bec_widgets/widgets/plots/image/image_item.py b/bec_widgets/widgets/plots/image/image_item.py index 6f24ca3b..66ee0926 100644 --- a/bec_widgets/widgets/plots/image/image_item.py +++ b/bec_widgets/widgets/plots/image/image_item.py @@ -9,7 +9,8 @@ from pydantic import Field, ValidationError, field_validator from qtpy.QtCore import Signal from qtpy.QtGui import QTransform -from bec_widgets.utils import BECConnector, Colors, ConnectionConfig +from bec_widgets.utils.bec_connector import BECConnector, ConnectionConfig +from bec_widgets.utils.colors import Colors from bec_widgets.widgets.plots.image.image_processor import ( ImageProcessor, ImageStats, diff --git a/bec_widgets/widgets/plots/image/setting_widgets/image_roi_tree.py b/bec_widgets/widgets/plots/image/setting_widgets/image_roi_tree.py index 91ed3dcb..8c9d7b5b 100644 --- a/bec_widgets/widgets/plots/image/setting_widgets/image_roi_tree.py +++ b/bec_widgets/widgets/plots/image/setting_widgets/image_roi_tree.py @@ -20,7 +20,8 @@ from qtpy.QtWidgets import ( ) from bec_widgets import BECWidget -from bec_widgets.utils import BECDispatcher, ConnectionConfig +from bec_widgets.utils.bec_connector import ConnectionConfig +from bec_widgets.utils.bec_dispatcher import BECDispatcher from bec_widgets.utils.toolbars.actions import WidgetAction from bec_widgets.utils.toolbars.bundles import ToolbarBundle from bec_widgets.utils.toolbars.toolbar import MaterialIconAction, ModularToolBar diff --git a/bec_widgets/widgets/plots/motor_map/motor_map.py b/bec_widgets/widgets/plots/motor_map/motor_map.py index d2f01486..32c3d151 100644 --- a/bec_widgets/widgets/plots/motor_map/motor_map.py +++ b/bec_widgets/widgets/plots/motor_map/motor_map.py @@ -10,8 +10,8 @@ from qtpy.QtCore import Signal from qtpy.QtGui import QColor from qtpy.QtWidgets import QHBoxLayout, QMainWindow, QWidget -from bec_widgets.utils import Colors, ConnectionConfig -from bec_widgets.utils.colors import apply_theme +from bec_widgets.utils.bec_connector import ConnectionConfig +from bec_widgets.utils.colors import Colors, apply_theme from bec_widgets.utils.error_popups import SafeProperty, SafeSlot from bec_widgets.utils.settings_dialog import SettingsDialog from bec_widgets.utils.toolbars.toolbar import MaterialIconAction diff --git a/bec_widgets/widgets/plots/motor_map/settings/motor_map_settings.py b/bec_widgets/widgets/plots/motor_map/settings/motor_map_settings.py index 0cab9d3a..e67aecaf 100644 --- a/bec_widgets/widgets/plots/motor_map/settings/motor_map_settings.py +++ b/bec_widgets/widgets/plots/motor_map/settings/motor_map_settings.py @@ -2,9 +2,9 @@ import os from qtpy.QtWidgets import QFrame, QScrollArea, QVBoxLayout, QWidget -from bec_widgets.utils import UILoader from bec_widgets.utils.error_popups import SafeSlot from bec_widgets.utils.settings_dialog import SettingWidget +from bec_widgets.utils.ui_loader import UILoader from bec_widgets.utils.widget_io import WidgetIO diff --git a/bec_widgets/widgets/plots/multi_waveform/multi_waveform.py b/bec_widgets/widgets/plots/multi_waveform/multi_waveform.py index e0e214db..291a15cc 100644 --- a/bec_widgets/widgets/plots/multi_waveform/multi_waveform.py +++ b/bec_widgets/widgets/plots/multi_waveform/multi_waveform.py @@ -10,7 +10,8 @@ from pydantic import Field, ValidationError, field_validator from qtpy.QtCore import Signal from qtpy.QtWidgets import QWidget -from bec_widgets.utils import Colors, ConnectionConfig +from bec_widgets.utils.bec_connector import ConnectionConfig +from bec_widgets.utils.colors import Colors from bec_widgets.utils.error_popups import SafeProperty, SafeSlot from bec_widgets.utils.side_panel import SidePanel from bec_widgets.widgets.control.device_input.device_combobox.device_combobox import DeviceComboBox diff --git a/bec_widgets/widgets/plots/multi_waveform/settings/control_panel.py b/bec_widgets/widgets/plots/multi_waveform/settings/control_panel.py index 5ab4278b..707a96a6 100644 --- a/bec_widgets/widgets/plots/multi_waveform/settings/control_panel.py +++ b/bec_widgets/widgets/plots/multi_waveform/settings/control_panel.py @@ -2,9 +2,9 @@ import os from qtpy.QtWidgets import QVBoxLayout, QWidget -from bec_widgets.utils import UILoader from bec_widgets.utils.error_popups import SafeSlot from bec_widgets.utils.settings_dialog import SettingWidget +from bec_widgets.utils.ui_loader import UILoader from bec_widgets.utils.widget_io import WidgetIO diff --git a/bec_widgets/widgets/plots/plot_base.py b/bec_widgets/widgets/plots/plot_base.py index 88c23482..f2041a90 100644 --- a/bec_widgets/widgets/plots/plot_base.py +++ b/bec_widgets/widgets/plots/plot_base.py @@ -8,8 +8,10 @@ from bec_lib import bec_logger from qtpy.QtCore import QPoint, QPointF, Qt, Signal from qtpy.QtWidgets import QHBoxLayout, QLabel, QMainWindow, QVBoxLayout, QWidget -from bec_widgets.utils import ConnectionConfig, Crosshair, EntryValidator +from bec_widgets.utils.bec_connector import ConnectionConfig from bec_widgets.utils.bec_widget import BECWidget +from bec_widgets.utils.crosshair import Crosshair +from bec_widgets.utils.entry_validator import EntryValidator from bec_widgets.utils.error_popups import SafeProperty, SafeSlot from bec_widgets.utils.fps_counter import FPSCounter from bec_widgets.utils.plot_indicator_items import BECArrowItem, BECTickItem diff --git a/bec_widgets/widgets/plots/roi/image_roi.py b/bec_widgets/widgets/plots/roi/image_roi.py index 9c22f7bc..d6a45dba 100644 --- a/bec_widgets/widgets/plots/roi/image_roi.py +++ b/bec_widgets/widgets/plots/roi/image_roi.py @@ -10,7 +10,7 @@ from qtpy import QtCore from qtpy.QtCore import QObject, Signal from bec_widgets import SafeProperty -from bec_widgets.utils import BECConnector, ConnectionConfig +from bec_widgets.utils.bec_connector import BECConnector, ConnectionConfig from bec_widgets.utils.colors import Colors if TYPE_CHECKING: diff --git a/bec_widgets/widgets/plots/scatter_waveform/scatter_curve.py b/bec_widgets/widgets/plots/scatter_waveform/scatter_curve.py index 4624e50c..5ca0e660 100644 --- a/bec_widgets/widgets/plots/scatter_waveform/scatter_curve.py +++ b/bec_widgets/widgets/plots/scatter_waveform/scatter_curve.py @@ -8,7 +8,8 @@ from bec_lib import bec_logger from pydantic import BaseModel, Field, ValidationError, field_validator from qtpy import QtCore -from bec_widgets.utils import BECConnector, Colors, ConnectionConfig +from bec_widgets.utils.bec_connector import BECConnector, ConnectionConfig +from bec_widgets.utils.colors import Colors if TYPE_CHECKING: # pragma: no cover from bec_widgets.widgets.plots.scatter_waveform.scatter_waveform import ScatterWaveform diff --git a/bec_widgets/widgets/plots/scatter_waveform/scatter_waveform.py b/bec_widgets/widgets/plots/scatter_waveform/scatter_waveform.py index 94fb063f..dcd90598 100644 --- a/bec_widgets/widgets/plots/scatter_waveform/scatter_waveform.py +++ b/bec_widgets/widgets/plots/scatter_waveform/scatter_waveform.py @@ -7,7 +7,8 @@ from pydantic import Field, ValidationError, field_validator from qtpy.QtCore import QTimer, Signal from qtpy.QtWidgets import QHBoxLayout, QMainWindow, QWidget -from bec_widgets.utils import Colors, ConnectionConfig +from bec_widgets.utils.bec_connector import ConnectionConfig +from bec_widgets.utils.colors import Colors from bec_widgets.utils.error_popups import SafeProperty, SafeSlot from bec_widgets.utils.settings_dialog import SettingsDialog from bec_widgets.utils.toolbars.toolbar import MaterialIconAction diff --git a/bec_widgets/widgets/plots/scatter_waveform/settings/scatter_curve_setting.py b/bec_widgets/widgets/plots/scatter_waveform/settings/scatter_curve_setting.py index 46f211f5..b08fd168 100644 --- a/bec_widgets/widgets/plots/scatter_waveform/settings/scatter_curve_setting.py +++ b/bec_widgets/widgets/plots/scatter_waveform/settings/scatter_curve_setting.py @@ -2,9 +2,9 @@ import os from qtpy.QtWidgets import QFrame, QScrollArea, QVBoxLayout -from bec_widgets.utils import UILoader from bec_widgets.utils.error_popups import SafeSlot from bec_widgets.utils.settings_dialog import SettingWidget +from bec_widgets.utils.ui_loader import UILoader class ScatterCurveSettings(SettingWidget): diff --git a/bec_widgets/widgets/plots/setting_menus/axis_settings.py b/bec_widgets/widgets/plots/setting_menus/axis_settings.py index 68f4ba7b..655adceb 100644 --- a/bec_widgets/widgets/plots/setting_menus/axis_settings.py +++ b/bec_widgets/widgets/plots/setting_menus/axis_settings.py @@ -2,9 +2,9 @@ import os from qtpy.QtWidgets import QFrame, QScrollArea, QVBoxLayout, QWidget -from bec_widgets.utils import UILoader from bec_widgets.utils.error_popups import SafeSlot from bec_widgets.utils.settings_dialog import SettingWidget +from bec_widgets.utils.ui_loader import UILoader from bec_widgets.utils.widget_io import WidgetIO diff --git a/bec_widgets/widgets/plots/waveform/curve.py b/bec_widgets/widgets/plots/waveform/curve.py index a4dca716..f5bd030c 100644 --- a/bec_widgets/widgets/plots/waveform/curve.py +++ b/bec_widgets/widgets/plots/waveform/curve.py @@ -8,7 +8,8 @@ from bec_lib import bec_logger from pydantic import BaseModel, Field, field_validator from qtpy import QtCore -from bec_widgets.utils import BECConnector, Colors, ConnectionConfig +from bec_widgets.utils.bec_connector import BECConnector, ConnectionConfig +from bec_widgets.utils.colors import Colors if TYPE_CHECKING: # pragma: no cover from bec_widgets.widgets.plots.waveform.waveform import Waveform diff --git a/bec_widgets/widgets/plots/waveform/settings/curve_settings/curve_tree.py b/bec_widgets/widgets/plots/waveform/settings/curve_settings/curve_tree.py index 10c78b46..3f73677e 100644 --- a/bec_widgets/widgets/plots/waveform/settings/curve_settings/curve_tree.py +++ b/bec_widgets/widgets/plots/waveform/settings/curve_settings/curve_tree.py @@ -50,9 +50,10 @@ from qtpy.QtWidgets import ( ) from bec_widgets import SafeSlot -from bec_widgets.utils import ConnectionConfig, EntryValidator +from bec_widgets.utils.bec_connector import ConnectionConfig from bec_widgets.utils.bec_widget import BECWidget from bec_widgets.utils.colors import Colors +from bec_widgets.utils.entry_validator import EntryValidator from bec_widgets.utils.toolbars.actions import WidgetAction from bec_widgets.utils.toolbars.bundles import ToolbarBundle from bec_widgets.utils.toolbars.toolbar import MaterialIconAction, ModularToolBar diff --git a/bec_widgets/widgets/plots/waveform/waveform.py b/bec_widgets/widgets/plots/waveform/waveform.py index 95a96fb4..ee9a90fc 100644 --- a/bec_widgets/widgets/plots/waveform/waveform.py +++ b/bec_widgets/widgets/plots/waveform/waveform.py @@ -25,7 +25,7 @@ from qtpy.QtWidgets import ( QWidget, ) -from bec_widgets.utils import ConnectionConfig +from bec_widgets.utils.bec_connector import ConnectionConfig from bec_widgets.utils.bec_signal_proxy import BECSignalProxy from bec_widgets.utils.colors import Colors, apply_theme from bec_widgets.utils.container_utils import WidgetContainerUtils diff --git a/bec_widgets/widgets/progress/ring_progress_bar/ring_progress_bar.py b/bec_widgets/widgets/progress/ring_progress_bar/ring_progress_bar.py index 78627680..e427caa4 100644 --- a/bec_widgets/widgets/progress/ring_progress_bar/ring_progress_bar.py +++ b/bec_widgets/widgets/progress/ring_progress_bar/ring_progress_bar.py @@ -6,8 +6,8 @@ from bec_lib.logger import bec_logger from qtpy.QtCore import QPointF, QSize, Qt from qtpy.QtWidgets import QHBoxLayout, QLabel, QVBoxLayout, QWidget -from bec_widgets.utils import Colors from bec_widgets.utils.bec_widget import BECWidget +from bec_widgets.utils.colors import Colors from bec_widgets.utils.error_popups import SafeProperty from bec_widgets.utils.settings_dialog import SettingsDialog from bec_widgets.utils.toolbars.actions import MaterialIconAction diff --git a/bec_widgets/widgets/progress/ring_progress_bar/ring_progress_settings_cards.py b/bec_widgets/widgets/progress/ring_progress_bar/ring_progress_settings_cards.py index 20d90164..d5abfc00 100644 --- a/bec_widgets/widgets/progress/ring_progress_bar/ring_progress_settings_cards.py +++ b/bec_widgets/widgets/progress/ring_progress_bar/ring_progress_settings_cards.py @@ -19,9 +19,9 @@ from qtpy.QtWidgets import ( QWidget, ) -from bec_widgets.utils import UILoader from bec_widgets.utils.error_popups import SafeSlot from bec_widgets.utils.settings_dialog import SettingWidget +from bec_widgets.utils.ui_loader import UILoader from bec_widgets.widgets.progress.ring_progress_bar.ring import Ring from bec_widgets.widgets.utility.visual.colormap_widget.colormap_widget import BECColorMapWidget diff --git a/bec_widgets/widgets/services/device_browser/device_browser.py b/bec_widgets/widgets/services/device_browser/device_browser.py index 831f7e54..c6b66914 100644 --- a/bec_widgets/widgets/services/device_browser/device_browser.py +++ b/bec_widgets/widgets/services/device_browser/device_browser.py @@ -17,10 +17,10 @@ from bec_widgets.utils.bec_widget import BECWidget from bec_widgets.utils.error_popups import SafeSlot from bec_widgets.utils.list_of_expandable_frames import ListOfExpandableFrames from bec_widgets.utils.ui_loader import UILoader -from bec_widgets.widgets.services.device_browser.device_item import DeviceItem from bec_widgets.widgets.services.device_browser.device_item.device_config_dialog import ( DirectUpdateDeviceConfigDialog, ) +from bec_widgets.widgets.services.device_browser.device_item.device_item import DeviceItem from bec_widgets.widgets.services.device_browser.util import map_device_type_to_icon logger = bec_logger.logger diff --git a/bec_widgets/widgets/services/device_browser/device_item/__init__.py b/bec_widgets/widgets/services/device_browser/device_item/__init__.py index 6ebb878e..e69de29b 100644 --- a/bec_widgets/widgets/services/device_browser/device_item/__init__.py +++ b/bec_widgets/widgets/services/device_browser/device_item/__init__.py @@ -1 +0,0 @@ -from .device_item import DeviceItem diff --git a/bec_widgets/widgets/services/scan_history_browser/components/__init__.py b/bec_widgets/widgets/services/scan_history_browser/components/__init__.py index aa2f5f93..e69de29b 100644 --- a/bec_widgets/widgets/services/scan_history_browser/components/__init__.py +++ b/bec_widgets/widgets/services/scan_history_browser/components/__init__.py @@ -1,5 +0,0 @@ -from .scan_history_device_viewer import ScanHistoryDeviceViewer -from .scan_history_metadata_viewer import ScanHistoryMetadataViewer -from .scan_history_view import ScanHistoryView - -__all__ = ["ScanHistoryDeviceViewer", "ScanHistoryMetadataViewer", "ScanHistoryView"] diff --git a/bec_widgets/widgets/services/scan_history_browser/components/scan_history_view.py b/bec_widgets/widgets/services/scan_history_browser/components/scan_history_view.py index 33024212..dbe0010c 100644 --- a/bec_widgets/widgets/services/scan_history_browser/components/scan_history_view.py +++ b/bec_widgets/widgets/services/scan_history_browser/components/scan_history_view.py @@ -330,8 +330,10 @@ class ScanHistoryView(BECWidget, QtWidgets.QTreeWidget): if __name__ == "__main__": # pragma: no cover # pylint: disable=import-outside-toplevel - from bec_widgets.widgets.services.scan_history_browser.components import ( + from bec_widgets.widgets.services.scan_history_browser.components.scan_history_device_viewer import ( ScanHistoryDeviceViewer, + ) + from bec_widgets.widgets.services.scan_history_browser.components.scan_history_metadata_viewer import ( ScanHistoryMetadataViewer, ) from bec_widgets.widgets.utility.visual.dark_mode_button.dark_mode_button import DarkModeButton diff --git a/bec_widgets/widgets/services/scan_history_browser/scan_history_browser.py b/bec_widgets/widgets/services/scan_history_browser/scan_history_browser.py index c60a9258..c0310572 100644 --- a/bec_widgets/widgets/services/scan_history_browser/scan_history_browser.py +++ b/bec_widgets/widgets/services/scan_history_browser/scan_history_browser.py @@ -1,9 +1,13 @@ from qtpy import QtCore, QtWidgets from bec_widgets.utils.bec_widget import BECWidget, ConnectionConfig -from bec_widgets.widgets.services.scan_history_browser.components import ( +from bec_widgets.widgets.services.scan_history_browser.components.scan_history_device_viewer import ( ScanHistoryDeviceViewer, +) +from bec_widgets.widgets.services.scan_history_browser.components.scan_history_metadata_viewer import ( ScanHistoryMetadataViewer, +) +from bec_widgets.widgets.services.scan_history_browser.components.scan_history_view import ( ScanHistoryView, ) diff --git a/bec_widgets/widgets/utility/visual/colormap_widget/colormap_widget.py b/bec_widgets/widgets/utility/visual/colormap_widget/colormap_widget.py index 5317843c..91002af0 100644 --- a/bec_widgets/widgets/utility/visual/colormap_widget/colormap_widget.py +++ b/bec_widgets/widgets/utility/visual/colormap_widget/colormap_widget.py @@ -3,8 +3,7 @@ from qtpy import QtCore, QtGui from qtpy.QtCore import Property, Signal, Slot from qtpy.QtWidgets import QSizePolicy, QVBoxLayout, QWidget -from bec_widgets.utils import Colors -from bec_widgets.utils.bec_widget import BECWidget +from bec_widgets.utils.colors import Colors class RoundedColorMapButton(ColorMapButton): diff --git a/bec_widgets/widgets/utility/widget_hierarchy_tree/widget_hierarchy_tree.py b/bec_widgets/widgets/utility/widget_hierarchy_tree/widget_hierarchy_tree.py index c3ec0266..a77e8232 100644 --- a/bec_widgets/widgets/utility/widget_hierarchy_tree/widget_hierarchy_tree.py +++ b/bec_widgets/widgets/utility/widget_hierarchy_tree/widget_hierarchy_tree.py @@ -19,7 +19,7 @@ from qtpy.QtWidgets import ( QWidget, ) -from bec_widgets.utils import BECConnector +from bec_widgets.utils.bec_connector import BECConnector from bec_widgets.utils.widget_highlighter import WidgetHighlighter from bec_widgets.utils.widget_io import WidgetHierarchy diff --git a/tests/end-2-end/conftest.py b/tests/end-2-end/conftest.py index d628dec5..ad2c0d52 100644 --- a/tests/end-2-end/conftest.py +++ b/tests/end-2-end/conftest.py @@ -5,7 +5,7 @@ import random import pytest from bec_widgets.cli.client_utils import BECGuiClient -from bec_widgets.widgets.control.scan_control import ScanControl +from bec_widgets.widgets.control.scan_control.scan_control import ScanControl # pylint: disable=unused-argument # pylint: disable=redefined-outer-name diff --git a/tests/end-2-end/test_with_plugins_e2e.py b/tests/end-2-end/test_with_plugins_e2e.py index 84889f77..dc30951d 100644 --- a/tests/end-2-end/test_with_plugins_e2e.py +++ b/tests/end-2-end/test_with_plugins_e2e.py @@ -10,7 +10,7 @@ except ImportError: from qtpy.QtWidgets import QGridLayout from bec_widgets.utils.widget_io import WidgetIO -from bec_widgets.widgets.control.scan_control import ScanControl +from bec_widgets.widgets.control.scan_control.scan_control import ScanControl @pytest.fixture(scope="function") diff --git a/tests/unit_tests/test_bec_connector.py b/tests/unit_tests/test_bec_connector.py index 55773232..04be4659 100644 --- a/tests/unit_tests/test_bec_connector.py +++ b/tests/unit_tests/test_bec_connector.py @@ -5,7 +5,7 @@ import pytest from qtpy.QtCore import QObject from qtpy.QtWidgets import QApplication, QWidget -from bec_widgets.utils import BECConnector +from bec_widgets.utils.bec_connector import BECConnector from bec_widgets.utils.error_popups import SafeProperty from bec_widgets.utils.error_popups import SafeSlot as Slot diff --git a/tests/unit_tests/test_color_utils.py b/tests/unit_tests/test_color_utils.py index 39c46473..39021223 100644 --- a/tests/unit_tests/test_color_utils.py +++ b/tests/unit_tests/test_color_utils.py @@ -4,12 +4,13 @@ from pydantic import ValidationError from qtpy.QtGui import QColor from qtpy.QtWidgets import QVBoxLayout, QWidget -from bec_widgets.utils import Colors, ConnectionConfig +from bec_widgets.utils.bec_connector import ConnectionConfig from bec_widgets.utils.bec_widget import BECWidget -from bec_widgets.utils.colors import apply_theme +from bec_widgets.utils.colors import Colors, apply_theme from bec_widgets.widgets.plots.waveform.curve import CurveConfig -from tests.unit_tests.client_mocks import mocked_client -from tests.unit_tests.conftest import create_widget + +from .client_mocks import mocked_client +from .conftest import create_widget def test_color_validation_CSS(): diff --git a/tests/unit_tests/test_crosshair.py b/tests/unit_tests/test_crosshair.py index 28662a27..be2a29f8 100644 --- a/tests/unit_tests/test_crosshair.py +++ b/tests/unit_tests/test_crosshair.py @@ -4,11 +4,11 @@ import pytest from qtpy.QtCore import QPointF, Qt from qtpy.QtGui import QTransform -from bec_widgets.utils import Crosshair +from bec_widgets.utils.crosshair import Crosshair from bec_widgets.widgets.plots.image.image_item import ImageItem from bec_widgets.widgets.plots.waveform.waveform import Waveform -from tests.unit_tests.client_mocks import mocked_client +from .client_mocks import mocked_client from .conftest import create_widget # pylint: disable = redefined-outer-name @@ -214,7 +214,7 @@ def test_crosshair_clicked_signal(qtbot, plot_widget_with_crosshair): pos_in_widget = graphics_view.mapFromScene(pos_in_scene) # Simulate mouse click - qtbot.mouseClick(graphics_view.viewport(), Qt.LeftButton, pos=pos_in_widget) + qtbot.mouseClick(graphics_view.viewport(), Qt.MouseButton.LeftButton, pos=pos_in_widget) x, y = emitted_positions[0] diff --git a/tests/unit_tests/test_curve_settings.py b/tests/unit_tests/test_curve_settings.py index faaaa89c..f75dce4c 100644 --- a/tests/unit_tests/test_curve_settings.py +++ b/tests/unit_tests/test_curve_settings.py @@ -12,8 +12,9 @@ from bec_widgets.widgets.plots.waveform.settings.curve_settings.curve_tree impor ScanIndexValidator, ) from bec_widgets.widgets.plots.waveform.waveform import Waveform -from tests.unit_tests.client_mocks import dap_plugin_message, mocked_client, mocked_client_with_dap -from tests.unit_tests.conftest import create_widget + +from .client_mocks import dap_plugin_message, mocked_client, mocked_client_with_dap +from .conftest import create_widget ################################################## # CurveSetting diff --git a/tests/unit_tests/test_device_browser.py b/tests/unit_tests/test_device_browser.py index f996d96a..b9debc89 100644 --- a/tests/unit_tests/test_device_browser.py +++ b/tests/unit_tests/test_device_browser.py @@ -19,7 +19,7 @@ from .client_mocks import mocked_client if TYPE_CHECKING: # pragma: no cover from qtpy.QtWidgets import QListWidgetItem - from bec_widgets.widgets.services.device_browser.device_item import DeviceItem + from bec_widgets.widgets.services.device_browser.device_item.device_item import DeviceItem # pylint: disable=no-member diff --git a/tests/unit_tests/test_device_manager_components.py b/tests/unit_tests/test_device_manager_components.py index 370d806b..f2f3b658 100644 --- a/tests/unit_tests/test_device_manager_components.py +++ b/tests/unit_tests/test_device_manager_components.py @@ -16,8 +16,6 @@ from qtpy import QtCore, QtGui, QtWidgets from bec_widgets.utils.bec_list import BECList from bec_widgets.utils.colors import get_accent_colors -from bec_widgets.widgets.control.device_manager import DeviceTable, DMConfigView, DocstringView -from bec_widgets.widgets.control.device_manager.components import docstring_to_markdown from bec_widgets.widgets.control.device_manager.components.constants import HEADERS_HELP_MD from bec_widgets.widgets.control.device_manager.components.device_config_template.device_config_template import ( DeviceConfigTemplate, @@ -34,9 +32,17 @@ from bec_widgets.widgets.control.device_manager.components.device_config_templat ReadoutPriorityComboBox, _try_literal_eval, ) +from bec_widgets.widgets.control.device_manager.components.device_table.device_table import ( + DeviceTable, +) from bec_widgets.widgets.control.device_manager.components.device_table.device_table_row import ( DeviceTableRow, ) +from bec_widgets.widgets.control.device_manager.components.dm_config_view import DMConfigView +from bec_widgets.widgets.control.device_manager.components.dm_docstring_view import ( + DocstringView, + docstring_to_markdown, +) from bec_widgets.widgets.control.device_manager.components.ophyd_validation.ophyd_validation import ( DeviceTest, LegendLabel, diff --git a/tests/unit_tests/test_device_manager_view.py b/tests/unit_tests/test_device_manager_view.py index e7326c53..f5dc33f8 100644 --- a/tests/unit_tests/test_device_manager_view.py +++ b/tests/unit_tests/test_device_manager_view.py @@ -31,12 +31,11 @@ from bec_widgets.applications.views.device_manager_view.device_manager_view impo DeviceManagerWidget, ) from bec_widgets.utils.colors import get_accent_colors -from bec_widgets.widgets.control.device_manager.components import ( +from bec_widgets.widgets.control.device_manager.components.device_table.device_table import ( DeviceTable, - DMConfigView, - DocstringView, - OphydValidation, ) +from bec_widgets.widgets.control.device_manager.components.dm_config_view import DMConfigView +from bec_widgets.widgets.control.device_manager.components.dm_docstring_view import DocstringView from bec_widgets.widgets.control.device_manager.components.ophyd_validation.ophyd_validation import ( ConfigStatus, ConnectionStatus, diff --git a/tests/unit_tests/test_heatmap_widget.py b/tests/unit_tests/test_heatmap_widget.py index ef5f09ef..94553381 100644 --- a/tests/unit_tests/test_heatmap_widget.py +++ b/tests/unit_tests/test_heatmap_widget.py @@ -16,9 +16,7 @@ from bec_widgets.widgets.plots.heatmap.heatmap import ( ) # pytest: disable=unused-import -from tests.unit_tests.client_mocks import mocked_client - -from .client_mocks import create_dummy_scan_item +from .client_mocks import create_dummy_scan_item, mocked_client @pytest.fixture diff --git a/tests/unit_tests/test_image_roi_tree.py b/tests/unit_tests/test_image_roi_tree.py index d00866b2..89b46223 100644 --- a/tests/unit_tests/test_image_roi_tree.py +++ b/tests/unit_tests/test_image_roi_tree.py @@ -7,8 +7,9 @@ from qtpy.QtCore import QPointF, Qt from bec_widgets.widgets.plots.image.image import Image from bec_widgets.widgets.plots.image.setting_widgets.image_roi_tree import ROIPropertyTree from bec_widgets.widgets.plots.roi.image_roi import CircularROI, RectangularROI -from tests.unit_tests.client_mocks import mocked_client -from tests.unit_tests.conftest import create_widget + +from .client_mocks import mocked_client +from .conftest import create_widget @pytest.fixture @@ -44,7 +45,7 @@ def test_initialization(roi_tree, image_widget): assert roi_tree.plot == image_widget.plot_item assert roi_tree.controller == image_widget.roi_controller assert isinstance(roi_tree.roi_items, dict) - assert len(roi_tree.tree.findItems("", Qt.MatchContains)) == 0 # Empty tree initially + assert len(roi_tree.tree.findItems("", Qt.MatchFlag.MatchContains)) == 0 # Empty tree initially # Check toolbar actions assert roi_tree.toolbar.components.get_action("roi_rectangle") @@ -66,12 +67,16 @@ def test_controller_connection(roi_tree, image_widget): # Verify that ROI was added to the tree assert roi in roi_tree.roi_items - assert len(roi_tree.tree.findItems("test_roi", Qt.MatchExactly, roi_tree.COL_ROI)) == 1 + assert ( + len(roi_tree.tree.findItems("test_roi", Qt.MatchFlag.MatchExactly, roi_tree.COL_ROI)) == 1 + ) # Remove ROI via controller and check that it's removed from the tree image_widget.remove_roi(0) assert roi not in roi_tree.roi_items - assert len(roi_tree.tree.findItems("test_roi", Qt.MatchExactly, roi_tree.COL_ROI)) == 0 + assert ( + len(roi_tree.tree.findItems("test_roi", Qt.MatchFlag.MatchExactly, roi_tree.COL_ROI)) == 0 + ) def test_expand_collapse_tree(roi_tree, image_widget): diff --git a/tests/unit_tests/test_image_rois.py b/tests/unit_tests/test_image_rois.py index f667a37b..0f605548 100644 --- a/tests/unit_tests/test_image_rois.py +++ b/tests/unit_tests/test_image_rois.py @@ -12,8 +12,9 @@ from bec_widgets.widgets.plots.roi.image_roi import ( RectangularROI, ROIController, ) -from tests.unit_tests.client_mocks import mocked_client -from tests.unit_tests.conftest import create_widget + +from .client_mocks import mocked_client +from .conftest import create_widget @pytest.fixture(params=["rect", "circle", "ellipse"]) diff --git a/tests/unit_tests/test_image_view_next_gen.py b/tests/unit_tests/test_image_view_next_gen.py index 77b003bd..46947a8b 100644 --- a/tests/unit_tests/test_image_view_next_gen.py +++ b/tests/unit_tests/test_image_view_next_gen.py @@ -5,8 +5,9 @@ from bec_lib.endpoints import MessageEndpoints from qtpy.QtCore import QPointF from bec_widgets.widgets.plots.image.image import Image -from tests.unit_tests.client_mocks import mocked_client -from tests.unit_tests.conftest import create_widget + +from .client_mocks import mocked_client +from .conftest import create_widget ################################################## # Image widget base functionality tests diff --git a/tests/unit_tests/test_motor_map_next_gen.py b/tests/unit_tests/test_motor_map_next_gen.py index 5a348675..f2cd8854 100644 --- a/tests/unit_tests/test_motor_map_next_gen.py +++ b/tests/unit_tests/test_motor_map_next_gen.py @@ -1,8 +1,8 @@ from qtpy.QtTest import QSignalSpy from bec_widgets.widgets.plots.motor_map.motor_map import MotorMap -from tests.unit_tests.client_mocks import mocked_client +from .client_mocks import mocked_client from .conftest import create_widget diff --git a/tests/unit_tests/test_multi_waveform_next_gen.py b/tests/unit_tests/test_multi_waveform_next_gen.py index 0b7ae96f..e033d090 100644 --- a/tests/unit_tests/test_multi_waveform_next_gen.py +++ b/tests/unit_tests/test_multi_waveform_next_gen.py @@ -1,8 +1,8 @@ import numpy as np from bec_widgets.widgets.plots.multi_waveform.multi_waveform import MultiWaveform -from tests.unit_tests.client_mocks import mocked_client +from .client_mocks import mocked_client from .conftest import create_widget ################################################## diff --git a/tests/unit_tests/test_ring_progress_bar.py b/tests/unit_tests/test_ring_progress_bar.py index e00f0fc6..5abf7bb7 100644 --- a/tests/unit_tests/test_ring_progress_bar.py +++ b/tests/unit_tests/test_ring_progress_bar.py @@ -8,7 +8,7 @@ from qtpy.QtCore import QEvent, QPoint, QPointF, Qt from qtpy.QtGui import QColor, QMouseEvent from qtpy.QtWidgets import QApplication -from bec_widgets.utils import Colors +from bec_widgets.utils.colors import Colors from bec_widgets.widgets.progress.ring_progress_bar.ring_progress_bar import ( RingProgressBar, RingProgressContainerWidget, diff --git a/tests/unit_tests/test_ring_progress_settings.py b/tests/unit_tests/test_ring_progress_settings.py index 341e7ade..1f525f1d 100644 --- a/tests/unit_tests/test_ring_progress_settings.py +++ b/tests/unit_tests/test_ring_progress_settings.py @@ -3,7 +3,8 @@ import pytest from bec_widgets.utils.settings_dialog import SettingsDialog from bec_widgets.widgets.progress.ring_progress_bar.ring_progress_bar import RingProgressBar from bec_widgets.widgets.progress.ring_progress_bar.ring_progress_settings_cards import RingSettings -from tests.unit_tests.client_mocks import mocked_client + +from .client_mocks import mocked_client @pytest.fixture diff --git a/tests/unit_tests/test_scan_control.py b/tests/unit_tests/test_scan_control.py index d070e5e2..6dc9464d 100644 --- a/tests/unit_tests/test_scan_control.py +++ b/tests/unit_tests/test_scan_control.py @@ -9,7 +9,7 @@ from qtpy.QtCore import QModelIndex, Qt from bec_widgets.utils.forms_from_types.items import StrFormItem from bec_widgets.utils.widget_io import WidgetIO -from bec_widgets.widgets.control.scan_control import ScanControl +from bec_widgets.widgets.control.scan_control.scan_control import ScanControl from .client_mocks import mocked_client diff --git a/tests/unit_tests/test_scan_history_browser.py b/tests/unit_tests/test_scan_history_browser.py index 4ddf24e7..62344464 100644 --- a/tests/unit_tests/test_scan_history_browser.py +++ b/tests/unit_tests/test_scan_history_browser.py @@ -6,9 +6,13 @@ from pytestqt import qtbot from qtpy import QtCore from bec_widgets.utils.colors import get_accent_colors -from bec_widgets.widgets.services.scan_history_browser.components import ( +from bec_widgets.widgets.services.scan_history_browser.components.scan_history_device_viewer import ( ScanHistoryDeviceViewer, +) +from bec_widgets.widgets.services.scan_history_browser.components.scan_history_metadata_viewer import ( ScanHistoryMetadataViewer, +) +from bec_widgets.widgets.services.scan_history_browser.components.scan_history_view import ( ScanHistoryView, ) from bec_widgets.widgets.services.scan_history_browser.scan_history_browser import ( diff --git a/tests/unit_tests/test_scatter_waveform.py b/tests/unit_tests/test_scatter_waveform.py index a70f6f58..4158cbdd 100644 --- a/tests/unit_tests/test_scatter_waveform.py +++ b/tests/unit_tests/test_scatter_waveform.py @@ -10,8 +10,8 @@ from bec_widgets.widgets.plots.scatter_waveform.scatter_waveform import ScatterW from bec_widgets.widgets.plots.scatter_waveform.settings.scatter_curve_setting import ( ScatterCurveSettings, ) -from tests.unit_tests.client_mocks import create_dummy_scan_item, mocked_client +from .client_mocks import create_dummy_scan_item, mocked_client from .conftest import create_widget diff --git a/tests/unit_tests/test_waveform.py b/tests/unit_tests/test_waveform.py index 60a2356a..9f417d5d 100644 --- a/tests/unit_tests/test_waveform.py +++ b/tests/unit_tests/test_waveform.py @@ -18,7 +18,8 @@ from bec_widgets.widgets.plots.waveform.waveform import Waveform from bec_widgets.widgets.services.scan_history_browser.scan_history_browser import ( ScanHistoryBrowser, ) -from tests.unit_tests.client_mocks import ( + +from .client_mocks import ( DummyData, create_dummy_scan_item, dap_plugin_message, @@ -26,7 +27,6 @@ from tests.unit_tests.client_mocks import ( mocked_client, mocked_client_with_dap, ) - from .conftest import create_widget # pylint: disable=unexpected-keyword-arg