feat: add queue widget
CI for pxii_bec / test (push) Failing after 55s

This commit is contained in:
perl_d committed 2026-11-03 09:30:30 +01:00
1 parent 029778cd66
commit e87b019b57
8 files changed
+99 -2

No files matched your search

+2 -1
View File
@@ -1,3 +1,4 @@
from mx_bec.bec_widgets.widgets.aare_bec.actors_config import MxActorConfigWidget
from mx_bec.bec_widgets.widgets.aare_bec.task_queue import MxTaskQueueWidget
__all__ = ["MxActorConfigWidget"]
__all__ = ["MxActorConfigWidget", "MxTaskQueueWidget"]
+11
View File
@@ -14,6 +14,7 @@ logger = bec_logger.logger
_Widgets = {
"PxIIActorConfigWiget": "PxIIActorConfigWiget",
"PxIITaskQueueWidget": "PxIITaskQueueWidget",
"ScanHistory": "ScanHistory",
}
@@ -28,6 +29,16 @@ class PxIIActorConfigWiget(RPCBase):
"""
class PxIITaskQueueWidget(RPCBase):
_IMPORT_MODULE = "pxii_bec.bec_widgets.widgets.imported"
@rpc_call
def refresh(self):
"""
Reload the queued tasks from Redis.
"""
class ScanHistory(RPCBase):
_IMPORT_MODULE = "pxii_bec.bec_widgets.widgets.scan_history.scan_history"
@@ -6,10 +6,12 @@ from __future__ import annotations
designer_plugins = {
"PxIIActorConfigWiget": ("pxii_bec.bec_widgets.widgets.imported", "PxIIActorConfigWiget"),
"PxIITaskQueueWidget": ("pxii_bec.bec_widgets.widgets.imported", "PxIITaskQueueWidget"),
"ScanHistory": ("pxii_bec.bec_widgets.widgets.scan_history.scan_history", "ScanHistory"),
}
widget_icons = {
"PxIIActorConfigWiget": "format_list_bulleted",
"PxIITaskQueueWidget": "pending_actions",
"ScanHistory": "widgets",
}
+4
View File
@@ -1,4 +1,8 @@
from mx_bec.bec_widgets.widgets.aare_bec.actors_config import MxActorConfigWidget
from mx_bec.bec_widgets.widgets.aare_bec.task_queue import MxTaskQueueWidget
class PxIIActorConfigWiget(MxActorConfigWidget): ...
class PxIITaskQueueWidget(MxTaskQueueWidget): ...
@@ -0,0 +1 @@
{'files': ['imported.py']}
@@ -0,0 +1,57 @@
# Copyright (C) 2022 The Qt Company Ltd.
# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
from qtpy.QtDesigner import QDesignerCustomWidgetInterface
from qtpy.QtWidgets import QWidget
from bec_widgets.utils.bec_designer import designer_material_icon
from pxii_bec.bec_widgets.widgets.imported import PxIITaskQueueWidget
DOM_XML = """
<ui language='c++'>
<widget class='PxIITaskQueueWidget' name='px_ii_task_queue_widget'>
</widget>
</ui>
"""
class PxIITaskQueueWidgetPlugin(QDesignerCustomWidgetInterface): # pragma: no cover
def __init__(self):
super().__init__()
self._form_editor = None
def createWidget(self, parent):
if parent is None:
return QWidget()
t = PxIITaskQueueWidget(parent)
return t
def domXml(self):
return DOM_XML
def group(self):
return ""
def icon(self):
return designer_material_icon(PxIITaskQueueWidget.ICON_NAME)
def includeFile(self):
return "px_ii_task_queue_widget"
def initialize(self, form_editor):
self._form_editor = form_editor
def isContainer(self):
return False
def isInitialized(self):
return self._form_editor is not None
def name(self):
return "PxIITaskQueueWidget"
def toolTip(self):
return "PxIITaskQueueWidget"
def whatsThis(self):
return self.toolTip()
@@ -0,0 +1,15 @@
def main(): # pragma: no cover
from qtpy import PYSIDE6
if not PYSIDE6:
print("PYSIDE6 is not available in the environment. Cannot patch designer.")
return
from PySide6.QtDesigner import QPyDesignerCustomWidgetCollection
from pxii_bec.bec_widgets.widgets.px_ii_task_queue_widget_plugin import PxIITaskQueueWidgetPlugin
QPyDesignerCustomWidgetCollection.addCustomWidget(PxIITaskQueueWidgetPlugin())
if __name__ == "__main__": # pragma: no cover
main()
+7 -1
View File
@@ -4,7 +4,13 @@ find them through the `bec.messages` entry point registered by this package."""
from mx_bec.messages import (
MXMeasurementSequenceMessage,
MXTaskExecutionMessage,
MXTaskQueueChangedMessage,
OpticalPredictionMessage,
)
__all__ = ["MXMeasurementSequenceMessage", "MXTaskExecutionMessage", "OpticalPredictionMessage"]
__all__ = [
"MXMeasurementSequenceMessage",
"MXTaskExecutionMessage",
"MXTaskQueueChangedMessage",
"OpticalPredictionMessage",
]