From 2bf6f56d7ff804bfe88c645e3d38cdcb2e70b870 Mon Sep 17 00:00:00 2001 From: wakonig_k Date: Tue, 13 Oct 2026 09:51:50 +0200 Subject: [PATCH] feat: add scan scheduler editor --- bec_widgets/applications/main_app.py | 9 + bec_widgets/cli/client.py | 38 ++ bec_widgets/cli/designer_plugins.py | 2 + bec_widgets/examples/scan_scheduler.py | 58 ++ .../control/scan_control/scan_control.py | 25 +- .../control/scan_scheduler/__init__.py | 5 + .../control/scan_scheduler/document.py | 190 ++++++ .../control/scan_scheduler/inspector.py | 386 ++++++++++++ .../control/scan_scheduler/presentation.py | 163 +++++ .../scan_scheduler/register_scan_scheduler.py | 15 + .../control/scan_scheduler/scan_editor.py | 358 +++++++++++ .../control/scan_scheduler/scan_scheduler.py | 570 ++++++++++++++++++ .../scan_scheduler/scan_scheduler.pyproject | 1 + .../scan_scheduler/scan_scheduler_plugin.py | 57 ++ docs/scan_scheduler/README.md | 62 ++ docs/scan_scheduler/example-description.png | Bin 0 -> 76702 bytes docs/scan_scheduler/example-python.png | Bin 0 -> 79091 bytes docs/scan_scheduler/scheduler-revised.png | Bin 0 -> 140865 bytes docs/scan_scheduler/scheduler.png | Bin 0 -> 97974 bytes .../unit_tests/scan_scheduler/scan_info.json | 472 +++++++++++++++ .../scan_scheduler/test_scan_scheduler.py | 476 +++++++++++++++ 21 files changed, 2883 insertions(+), 4 deletions(-) create mode 100644 bec_widgets/examples/scan_scheduler.py create mode 100644 bec_widgets/widgets/control/scan_scheduler/__init__.py create mode 100644 bec_widgets/widgets/control/scan_scheduler/document.py create mode 100644 bec_widgets/widgets/control/scan_scheduler/inspector.py create mode 100644 bec_widgets/widgets/control/scan_scheduler/presentation.py create mode 100644 bec_widgets/widgets/control/scan_scheduler/register_scan_scheduler.py create mode 100644 bec_widgets/widgets/control/scan_scheduler/scan_editor.py create mode 100644 bec_widgets/widgets/control/scan_scheduler/scan_scheduler.py create mode 100644 bec_widgets/widgets/control/scan_scheduler/scan_scheduler.pyproject create mode 100644 bec_widgets/widgets/control/scan_scheduler/scan_scheduler_plugin.py create mode 100644 docs/scan_scheduler/README.md create mode 100644 docs/scan_scheduler/example-description.png create mode 100644 docs/scan_scheduler/example-python.png create mode 100644 docs/scan_scheduler/scheduler-revised.png create mode 100644 docs/scan_scheduler/scheduler.png create mode 100644 tests/unit_tests/scan_scheduler/scan_info.json create mode 100644 tests/unit_tests/scan_scheduler/test_scan_scheduler.py diff --git a/bec_widgets/applications/main_app.py b/bec_widgets/applications/main_app.py index e238599d..66b05587 100644 --- a/bec_widgets/applications/main_app.py +++ b/bec_widgets/applications/main_app.py @@ -24,6 +24,7 @@ from bec_widgets.utils.screen_utils import ( ) from bec_widgets.widgets.containers.dock_area.profile_utils import is_experimental_features_enabled from bec_widgets.widgets.containers.main_window.main_window import BECMainWindow +from bec_widgets.widgets.control.scan_scheduler import ScanScheduler startup_profiler.mark("module imports") @@ -94,6 +95,14 @@ class BECMainApp(BECMainWindow): widget=self.device_manager, mini_text="DM", ) + self.scan_scheduler = ScanScheduler(parent=self) + self.add_view( + icon="account_tree", + title="Scan Scheduler", + widget=self.scan_scheduler, + mini_text="Scans", + view_id="scan_scheduler", + ) if is_experimental_features_enabled(): self.developer_view = DeveloperView(self) self.add_view( diff --git a/bec_widgets/cli/client.py b/bec_widgets/cli/client.py index 56b0f853..75fd2370 100644 --- a/bec_widgets/cli/client.py +++ b/bec_widgets/cli/client.py @@ -54,6 +54,7 @@ _Widgets = { "SBBMonitor": "SBBMonitor", "ScanControl": "ScanControl", "ScanProgressBar": "ScanProgressBar", + "ScanScheduler": "ScanScheduler", "ScatterWaveform": "ScatterWaveform", "SignalLabel": "SignalLabel", "TextBox": "TextBox", @@ -5426,6 +5427,43 @@ class ScanProgressBar(RPCBase): """ +class ScanScheduler(RPCBase): + """Edit nested components and execute validated sequences through procedures.""" + + _IMPORT_MODULE = "bec_widgets.widgets.control.scan_scheduler.scan_scheduler" + + @rpc_call + def load_json(self, document: "str", definitions: "str" = "[]") -> "None": + """ + Load a structurally valid document and reusable definitions into the editor. + + Args: + document (str): Sequence document JSON. + definitions (str): JSON list of reusable definitions. Defaults to an empty library. + """ + + @rpc_call + def document_json(self) -> "str": + """ + Return the current edited document with structural schema validation. + + Returns: + str: Authoritative sequence JSON for saving or submission. + """ + + @rpc_call + def validate_sequence(self) -> "None": + """ + Validate the entire draft and refresh all exports on a background task. + """ + + @rpc_call + def execute_sequence(self) -> "None": + """ + Validate and execute the current sequence through the existing procedure API. + """ + + class ScatterCurve(RPCBase): """Scatter curve item for the scatter waveform widget.""" diff --git a/bec_widgets/cli/designer_plugins.py b/bec_widgets/cli/designer_plugins.py index 9c51d995..1e4d7324 100644 --- a/bec_widgets/cli/designer_plugins.py +++ b/bec_widgets/cli/designer_plugins.py @@ -100,6 +100,7 @@ designer_plugins = { "bec_widgets.widgets.progress.scan_progressbar.scan_progressbar", "ScanProgressBar", ), + "ScanScheduler": ("bec_widgets.widgets.control.scan_scheduler.scan_scheduler", "ScanScheduler"), "ScatterWaveform": ( "bec_widgets.widgets.plots.scatter_waveform.scatter_waveform", "ScatterWaveform", @@ -163,6 +164,7 @@ widget_icons = { "ScanIndexComboBox": "history", "ScanMetadata": "list_alt", "ScanProgressBar": "timelapse", + "ScanScheduler": "account_tree", "ScatterWaveform": "scatter_plot", "SignalComboBox": "list_alt", "SignalLabel": "scoreboard", diff --git a/bec_widgets/examples/scan_scheduler.py b/bec_widgets/examples/scan_scheduler.py new file mode 100644 index 00000000..4a78dd81 --- /dev/null +++ b/bec_widgets/examples/scan_scheduler.py @@ -0,0 +1,58 @@ +"""Open a scheduler with an editable example using a running BEC deployment. + +Run with ``python -m bec_widgets.examples.scan_scheduler``. Opening the example does +not execute it; inspect the description before choosing Execute. +""" + +from __future__ import annotations + +import sys + +from bec_lib.scan_sequencer.components import ForEach, Repeat, ScanCall, Schedule, Sequence, Set +from qtpy.QtWidgets import QApplication + +from bec_widgets.widgets.control.scan_scheduler import ScanScheduler + + +def example_sequence() -> Schedule: + """Compose four time scans interleaved with alternating device moves. + + Returns: + Schedule: Editable example requiring samx and the advertised time_scan scan. + """ + return Schedule( + id="alternating_positions", + revision=1, + root=Repeat( + id="repeat", + count=2, + body=ForEach( + id="positions", + variable="position", + values=[1, -1], + body=Sequence( + id="steps", + children=[ + Set(id="move", device="samx", value={"ref": "position"}, wait=True), + ScanCall(id="scan", name="time_scan", positional=[1, 0.1]), + ], + ), + ), + ), + ) + + +def main() -> None: + """Open the scheduler; execution requires an explicit Execute action.""" + app = QApplication.instance() or QApplication(sys.argv) + widget = ScanScheduler() + widget.setWindowTitle("BEC Scan Scheduler") + widget.resize(1400, 1000) + widget.load_json(example_sequence().model_dump_json()) + widget.show() + app.exec() + widget.cleanup() + + +if __name__ == "__main__": + main() diff --git a/bec_widgets/widgets/control/scan_control/scan_control.py b/bec_widgets/widgets/control/scan_control/scan_control.py index 45078546..cfacfcc7 100644 --- a/bec_widgets/widgets/control/scan_control/scan_control.py +++ b/bec_widgets/widgets/control/scan_control/scan_control.py @@ -80,8 +80,23 @@ class ScanControl(BECWidget, QWidget): gui_id: str | None = None, allowed_scans: list | None = None, default_scan: str | None = None, + scan_info: dict | None = None, **kwargs, ): + """Initialize scan controls from subscribed metadata or the available-scans endpoint. + + Args: + parent (QWidget | None): Owning widget. + client (BECClient | None): Existing BEC client. + config (ScanControlConfig | dict | None): Widget configuration. + gui_id (str | None): RPC widget identity. + allowed_scans (list | None): Optional scan-selection filter. + default_scan (str | None): Initial selected scan. + scan_info (dict | None): Already subscribed scan metadata, avoiding a Redis read + during embedded editor construction. Defaults to reading the existing endpoint. + **kwargs (object): Additional BECWidget arguments. + """ + self._available_scans_override = scan_info if config is None: config = ScanControlConfig( widget_class=self.__class__.__name__, allowed_scans=allowed_scans @@ -254,9 +269,11 @@ class ScanControl(BECWidget, QWidget): def populate_scans(self): """Populates the scan selection combo box with available scans from BEC session.""" - self.available_scans = self.client.connector.get( - MessageEndpoints.available_scans() - ).resource + self.available_scans = ( + self._available_scans_override + if self._available_scans_override is not None + else self.client.connector.get(MessageEndpoints.available_scans()).resource + ) self._update_scan_selector() def _supported_scan_names(self) -> list[str]: @@ -768,7 +785,7 @@ class ScanControl(BECWidget, QWidget): hide(bool): Hide or show the metadata form. """ self._hide_metadata = hide - self._metadata_form.setVisible(not hide) + self._metadata_group.setVisible(not hide) @SafeProperty(bool) def hide_optional_metadata(self): diff --git a/bec_widgets/widgets/control/scan_scheduler/__init__.py b/bec_widgets/widgets/control/scan_scheduler/__init__.py new file mode 100644 index 00000000..e39c350b --- /dev/null +++ b/bec_widgets/widgets/control/scan_scheduler/__init__.py @@ -0,0 +1,5 @@ +"""Sequence composition and procedure submission widget.""" + +from .scan_scheduler import ScanScheduler + +__all__ = ["ScanScheduler"] diff --git a/bec_widgets/widgets/control/scan_scheduler/document.py b/bec_widgets/widgets/control/scan_scheduler/document.py new file mode 100644 index 00000000..1e58ccb4 --- /dev/null +++ b/bec_widgets/widgets/control/scan_scheduler/document.py @@ -0,0 +1,190 @@ +"""Editable sequence trees owned by the scheduler interface.""" + +from __future__ import annotations + +from copy import deepcopy +from uuid import uuid4 + +from bec_lib.scan_sequencer.components import Schedule + + +def component(kind: str) -> dict: + """Create an editable component with a unique identity. + + Args: + kind (str): Backend component discriminator. + + Returns: + dict: Component template. Scan and device targets require user selection. + """ + node = {"id": f"{kind}_{uuid4().hex[:12]}", "type": kind} + if kind == "sequence": + node["children"] = [] + elif kind in {"repeat", "for_each", "while"}: + node["body"] = component("sequence") + node.update( + { + "repeat": {"count": 1}, + "for_each": {"variable": "value", "values": []}, + "while": {"condition": False}, + }[kind] + ) + elif kind == "set": + node.update(device="", value=0, wait=True, bind_status=None) + elif kind == "scan_call": + node.update(name="", positional=[], arguments={}) + elif kind == "component_call": + node.update(definition={"id": "", "version": 1}, arguments={}) + else: + raise ValueError(f"Unknown component: {kind}") + return node + + +class SequenceDraft: + """Hold an editable tree independently of submitted procedure payloads. + + Args: + document (dict | None): Initial sequence document or a new empty sequence. + """ + + def __init__(self, document: dict | None = None) -> None: + self.document = ( + deepcopy(document) + if document is not None + else { + "schema_version": 1, + "type": "sequence", + "id": "new_sequence", + "revision": 1, + "root": component("sequence"), + } + ) + + def node(self, path: tuple) -> dict: + """Look up a component by its structural path. + + Args: + path (tuple): Keys and child indices relative to the root. + + Returns: + dict: Mutable component in this draft. + """ + value = self.document["root"] + for key in path: + value = value[key] + return value + + def replace(self, path: tuple, node: dict) -> None: + """Replace one component. + + Args: + path (tuple): Component path. + node (dict): Replacement component. + """ + if not path: + self.document["root"] = node + else: + parent = self.node(path[:-1]) + parent[path[-1]] = node + + def add(self, path: tuple, kind: str) -> tuple: + """Append inside a sequence or loop; insert after a selected sequence child. + + Args: + path (tuple): Selected component path. + kind (str): Component type to insert. + + Returns: + tuple: Inserted component's path. + """ + node = self.node(path) + if "body" in node: + if node["body"]["type"] != "sequence": + wrapper = component("sequence") + wrapper["children"] = [node["body"]] + node["body"] = wrapper + path += ("body",) + node = node["body"] + if node["type"] == "sequence": + index = len(node["children"]) + node["children"].append(component(kind)) + return path + ("children", index) + if len(path) >= 2 and path[-2] == "children": + index = path[-1] + 1 + self.node(path[:-2])["children"].insert(index, component(kind)) + return path[:-1] + (index,) + raise ValueError("Select a sequence, or wrap this step in a sequence first.") + + def wrap(self, path: tuple, kind: str) -> None: + """Wrap the selected component in a sequence or loop. + + Args: + path (tuple): Selected component path. + kind (str): Sequence, repeat, for_each or while. + """ + if kind not in {"sequence", "repeat", "for_each", "while"}: + raise ValueError("Only a sequence or loop can wrap a step.") + wrapper = component(kind) + if kind == "sequence": + wrapper["children"] = [self.node(path)] + else: + wrapper["body"] = self.node(path) + self.replace(path, wrapper) + + def remove(self, path: tuple) -> None: + """Remove a child, replacing a required root or body with an empty sequence. + + Args: + path (tuple): Selected component path. + """ + if len(path) >= 2 and path[-2] == "children": + self.node(path[:-2])["children"].pop(path[-1]) + else: + self.replace(path, component("sequence")) + + def move(self, path: tuple, offset: int) -> tuple: + """Move a component amongst its sequence siblings. + + Args: + path (tuple): Selected child path. + offset (int): Relative sibling position. + + Returns: + tuple: New component path. + """ + if len(path) < 2 or path[-2] != "children": + return path + children = self.node(path[:-2])["children"] + target = path[-1] + offset + if 0 <= target < len(children): + children.insert(target, children.pop(path[-1])) + return path[:-1] + (target,) + return path + + def validated(self) -> Schedule: + """Validate the document's structural schema. + + Returns: + Schedule: Typed document; semantic validation is performed by the sequencer. + """ + return Schedule.model_validate(self.document) + + def variables(self, path: tuple) -> list[str]: + """Return visible loop variables, with inner bindings shadowing outer ones. + + Args: + path (tuple): Selected component path. + + Returns: + list[str]: Names visible inside enclosing for_each bodies. + """ + names = [] + for length, part in enumerate(path): + if part == "body": + ancestor = self.node(path[:length]) + if ancestor["type"] == "for_each": + name = ancestor["variable"] + if name in names: + names.remove(name) + names.append(name) + return names diff --git a/bec_widgets/widgets/control/scan_scheduler/inspector.py b/bec_widgets/widgets/control/scan_scheduler/inspector.py new file mode 100644 index 00000000..f20fcfdc --- /dev/null +++ b/bec_widgets/widgets/control/scan_scheduler/inspector.py @@ -0,0 +1,386 @@ +"""Component field editors with explicit literal and scoped-variable inputs.""" + +from __future__ import annotations + +import json + +from qtpy.QtCore import Qt, Signal +from qtpy.QtWidgets import ( + QCheckBox, + QComboBox, + QFormLayout, + QHBoxLayout, + QLabel, + QLineEdit, + QPlainTextEdit, + QPushButton, + QSpinBox, + QVBoxLayout, + QWidget, +) + +from bec_widgets.widgets.control.scan_control.scan_info_adapter import ScanInfoAdapter + +from .presentation import LABELS, Section +from .scan_editor import ScanDefinitionEditor + +# Qt signal descriptors are not understood by pylint. +# pylint: disable=no-member + + +class ValueInput(QWidget): + """Edit a JSON value or an explicit loop-variable reference. + + Args: + value (object): Initial JSON value. + variables (list[str]): Visible loop variable names. + parent (QWidget | None): Owning widget. + """ + + changed = Signal() + + def __init__(self, value: object, variables: list[str], parent=None) -> None: + super().__init__(parent) + layout = QHBoxLayout(self) + layout.setContentsMargins(0, 0, 0, 0) + self.mode = QComboBox(self) + self.mode.addItem("Value", None) + for name in variables: + self.mode.addItem(f"Variable: {name}", name) + self.allow_encoding = True + self.encoding = QComboBox(self) + for label, kind in ( + ("Text", "text"), + ("Number", "number"), + ("Boolean", "boolean"), + ("JSON", "json"), + ): + self.encoding.addItem(label, kind) + kind = ( + "text" + if isinstance(value, str) + else ( + "boolean" + if isinstance(value, bool) + else "number" if isinstance(value, (int, float)) else "json" + ) + ) + self.encoding.setCurrentIndex(self.encoding.findData(kind)) + self.value_edit = QLineEdit( + value if kind == "text" else json.dumps(value, ensure_ascii=False, allow_nan=False), + self, + ) + self.value_edit.setPlaceholderText('e.g. 1.0, "Circ+", [1, 2], {"type": "status_field", …}') + layout.addWidget(self.mode) + layout.addWidget(self.value_edit, 1) + layout.addWidget(self.encoding) + self.mode.currentIndexChanged.connect(self._mode_changed) + self.mode.currentIndexChanged.connect(lambda *_: self.changed.emit()) + self.encoding.currentIndexChanged.connect(lambda *_: self.changed.emit()) + self.value_edit.editingFinished.connect(self.changed.emit) + if isinstance(value, dict) and set(value) == {"ref"}: + index = self.mode.findData(value["ref"]) + if index >= 0: + self.mode.setCurrentIndex(index) + + def _mode_changed(self) -> None: + self.value_edit.setVisible(self.mode.currentData() is None) + self.encoding.setVisible(self.mode.currentData() is None and self.allow_encoding) + + def value(self) -> object: + """Read the explicit reference or parsed literal/expression. + + Returns: + object: JSON value for the backend. + """ + name = self.mode.currentData() + if name is not None: + return {"ref": name} + text = self.value_edit.text() + kind = self.encoding.currentData() + if kind == "text": + return text + value = json.loads(text) + if kind == "number" and (isinstance(value, bool) or not isinstance(value, (int, float))): + raise ValueError("Enter a number, or change the input type.") + if kind == "boolean" and not isinstance(value, bool): + raise ValueError("Enter true or false.") + return value + + +class ValuesInput(QWidget): + """Edit ordered loop values as individual typed inputs. + + Args: + values (list): Initial loop values. + variables (list[str]): Visible outer loop bindings. + parent (QWidget | None): Owning widget. + """ + + changed = Signal() + + def __init__(self, values: list, variables: list[str], parent=None) -> None: + super().__init__(parent) + self.variables = variables + self.rows = [] + self.rows_layout = QVBoxLayout(self) + self.rows_layout.setContentsMargins(0, 0, 0, 0) + self.add_button = QPushButton("+ Add value", self) + self.add_button.clicked.connect(lambda: self._add("")) + self.rows_layout.addWidget(self.add_button) + for value in values: + self._add(value) + + def _add(self, value): + row = QWidget(self) + layout = QHBoxLayout(row) + layout.setContentsMargins(0, 0, 0, 0) + editor = ValueInput(value, self.variables, row) + remove = QPushButton("×", row) + remove.setFixedWidth(28) + layout.addWidget(editor, 1) + layout.addWidget(remove) + self.rows_layout.insertWidget(len(self.rows), row) + self.rows.append((row, editor)) + remove.clicked.connect(lambda: self._remove(row, editor)) + editor.changed.connect(self.changed.emit) + self.changed.emit() + + def _remove(self, row, editor): + self.rows.remove((row, editor)) + self.rows_layout.removeWidget(row) + row.deleteLater() + self.changed.emit() + + def value(self) -> list: + """Read loop values in displayed order. + + Returns: + list: JSON loop values. + """ + return [editor.value() for _, editor in self.rows] + + +class ComponentInspector(QWidget): + """Show the backend's component documentation and editable fields. + + Args: + parent (QWidget | None): Owning widget. + client (BECClient | None): Shared BEC client for the embedded ScanControl. + """ + + changed = Signal() + + def __init__(self, parent=None, client=None) -> None: + super().__init__(parent) + self.client = client + layout = QVBoxLayout(self) + layout.setAlignment(Qt.AlignTop) + self.breadcrumb = QLabel(self) + self.help = QLabel(self) + self.help.setWordWrap(True) + self.scope = QLabel(self) + self.scope.setWordWrap(True) + self.breadcrumb.setObjectName("breadcrumb") + self.help.setObjectName("stepHeading") + self.scope.setObjectName("scopeChip") + layout.addWidget(self.breadcrumb) + layout.addWidget(self.help) + layout.addWidget(self.scope) + for label in (self.help, self.scope, self.breadcrumb): + label.setTextFormat(Qt.PlainText) + self.form = QFormLayout() + self.form.setVerticalSpacing(14) + self.form.setFieldGrowthPolicy(QFormLayout.AllNonFixedFieldsGrow) + layout.addLayout(self.form) + self.metadata = QPlainTextEdit(self) + self.metadata.setReadOnly(True) + self.metadata.setMaximumHeight(200) + self.metadata.setPlaceholderText("Advertised scan signature and documentation") + self.documentation = Section("Component documentation", self.metadata, self) + layout.addWidget(self.documentation) + layout.addStretch() + self.fields = {} + self.node = {} + self.scan_arguments = None + self.raw_arguments = None + + # The inspector receives independently owned editor metadata. + # pylint: disable=too-many-arguments,too-many-positional-arguments + def display( + self, + node: dict, + schema: dict, + variables: list[str], + scans: dict, + devices: list[str], + breadcrumb: str, + ) -> None: + """Populate fields using component schema and subscribed scan metadata. + + Args: + node (dict): Selected component. + schema (dict): Component JSON schema. + variables (list[str]): Visible loop bindings. + scans (dict): Advertised scan metadata. + devices (list[str]): Available device names; dotted signal names remain editable. + breadcrumb (str): Selected component's nesting path. + """ + self.cleanup() + self.node = node + self.scan_arguments = None + self.raw_arguments = None + self.fields = {} + while self.form.rowCount(): + self.form.removeRow(0) + self.breadcrumb.setText(breadcrumb) + self.help.setText(LABELS[node["type"]]) + self.help.setToolTip(schema.get("description", "").split("Args:")[0].strip()) + self.scope.setText( + "Available in this step " + " ".join(f"${name}" for name in variables) + ) + self.scope.setVisible(bool(variables)) + advanced = QWidget(self) + advanced_form = QFormLayout(advanced) + advanced_form.setContentsMargins(0, 8, 0, 8) + for name, field in schema["properties"].items(): + if name in {"type", "children", "body"}: + continue + value = node.get(name, field.get("default")) + editor = self._field_editor(name, value, variables, scans, devices) + editor.setToolTip(field.get("description", "")) + self.fields[name] = editor + label = { + "id": "Step name", + "name": "Scan type", + "device": "Target", + "value": "Set to", + "variable": "Variable name", + "count": "Repeat group", + "wait": "", + "bind_status": "Status name", + }.get(name, name.replace("_", " ").capitalize()) + target_form = ( + advanced_form + if name in {"bind_status", "arguments", "positional"} + or (name == "name" and node["type"] == "scan_call") + else self.form + ) + target_form.addRow(label, editor) + self.documentation.setVisible(node["type"] == "scan_call") + if node["type"] == "scan_call": + self._scan_editor(node, variables, scans, advanced_form) + self.form.addRow(Section("Advanced settings", advanced, self)) + for editor in self.fields.values(): + self._connect_editor(editor) + if self.scan_arguments is not None: + self.scan_arguments.changed.connect(self.changed.emit) + + def _field_editor(self, name, value, variables, scans, devices): + if name == "count": + editor = QSpinBox(self) + editor.setRange(1, 2_147_483_647) + editor.setValue(value) + editor.setSuffix(" times") + elif name == "wait": + editor = QCheckBox("Wait for completion", self) + editor.setChecked(value) + elif name in {"name", "device"}: + editor = QComboBox(self) + editor.setEditable(True) + editor.addItems(sorted(scans) if name == "name" else devices) + editor.setCurrentText(value or "") + elif name in {"id", "variable", "bind_status"}: + editor = QLineEdit(value or "", self) + elif name == "values": + editor = ValuesInput(value, variables, self) + else: + editor = ValueInput(value, variables, self) + return editor + + def _scan_editor(self, node, variables, scans, advanced_form): + self.fields["name"].currentTextChanged.connect( + lambda name: self._scan_metadata(scans.get(name, {})) + ) + self._scan_metadata(scans.get(node["name"], {})) + if ( + isinstance(node.get("arguments"), dict) + and not any(key in node["arguments"] for key in ("ref", "param", "type")) + and bool(scans) + and (not node["name"] or node["name"] in scans) + ): + self.scan_arguments = ScanDefinitionEditor(node, variables, scans, self.client, self) + self.form.addRow(self.scan_arguments) + for name in ("arguments", "positional"): + self.fields[name].setToolTip( + "Raw JSON inputs, including metadata and structured expressions." + ) + self.raw_arguments = QCheckBox("Edit arguments as raw JSON", self) + advanced_form.addRow(self.raw_arguments) + self.raw_arguments.toggled.connect(self._argument_mode) + self._argument_mode(False) + self.fields["name"].currentTextChanged.connect( + lambda _: self.raw_arguments.setChecked(True) + ) + + def _connect_editor(self, editor): + if isinstance(editor, (ValueInput, ValuesInput)): + editor.changed.connect(self.changed.emit) + elif isinstance(editor, QLineEdit): + editor.editingFinished.connect(self.changed.emit) + elif isinstance(editor, QComboBox): + if editor.isEditable(): + editor.lineEdit().editingFinished.connect(self.changed.emit) + editor.activated.connect(lambda *_: self.changed.emit()) + elif isinstance(editor, QSpinBox): + editor.editingFinished.connect(self.changed.emit) + elif isinstance(editor, QCheckBox): + editor.toggled.connect(lambda *_: self.changed.emit()) + + def cleanup(self) -> None: + """Release the embedded scan editor before changing the selected component.""" + if self.scan_arguments is not None: + self.scan_arguments.cleanup() + + def _scan_metadata(self, info: dict) -> None: + lines = [info.get("doc", ""), "", "Advertised inputs:"] + for entry in info.get("signature", []): + annotation, _ = ScanInfoAdapter.parse_annotation(entry.get("annotation")) + default = entry.get("default", "_empty") + requirement = "required" if default == "_empty" else f"default: {default!r}" + lines.append(f"{entry['name']} ({annotation}; {entry['kind']}; {requirement})") + self.metadata.setPlainText("\n".join(lines)) + + def _argument_mode(self, raw: bool) -> None: + self.scan_arguments.setEnabled(not raw) + for name in ("name", "arguments", "positional"): + self.fields[name].setEnabled(raw) + + def values(self) -> dict: + """Read component fields without modifying nested children. + + Returns: + dict: Edited component preserving its body or children. + """ + node = self.node.copy() + for name, editor in self.fields.items(): + if ( + name in {"name", "arguments", "positional"} + and self.scan_arguments is not None + and not self.raw_arguments.isChecked() + ): + continue + if isinstance(editor, (ValueInput, ValuesInput)): + value = editor.value() + elif isinstance(editor, QComboBox): + value = editor.currentText() + elif isinstance(editor, QSpinBox): + value = editor.value() + elif isinstance(editor, QCheckBox): + value = editor.isChecked() + else: + value = editor.text() + node[name] = None if name == "bind_status" and not value else value + if self.scan_arguments is not None and not self.raw_arguments.isChecked(): + node["name"], node["positional"], node["arguments"] = self.scan_arguments.values() + return node diff --git a/bec_widgets/widgets/control/scan_scheduler/presentation.py b/bec_widgets/widgets/control/scan_scheduler/presentation.py new file mode 100644 index 00000000..8cafff4b --- /dev/null +++ b/bec_widgets/widgets/control/scan_scheduler/presentation.py @@ -0,0 +1,163 @@ +"""Compact step cards and collapsible inspector sections.""" + +from __future__ import annotations + +from qtpy.QtCore import QEvent, QRect, QSize, Qt +from qtpy.QtGui import QColor, QFont, QPainter, QPen +from qtpy.QtWidgets import ( + QApplication, + QStyle, + QStyledItemDelegate, + QToolButton, + QVBoxLayout, + QWidget, +) + +from bec_widgets.utils.colors import theme_color + +# Qt signal descriptors are not understood by pylint. +# pylint: disable=no-member + +LABELS = { + "sequence": "Sequence group", + "repeat": "Repeat group", + "for_each": "For each value", + "while": "While condition", + "set": "Set device or signal", + "scan_call": "Scan", + "component_call": "Reusable component", +} + + +def step_title(node: dict) -> str: + """Return the supplied step name or a readable name for a generated identity. + + Args: + node (dict): Sequence component. + + Returns: + str: Human-readable tree title. + """ + identity = node["id"] + if identity.startswith(node["type"] + "_"): + if node["type"] == "scan_call" and node.get("name"): + return node["name"].replace("_", " ").capitalize() + return LABELS[node["type"]] + return identity.replace("_", " ").capitalize() + + +class StepDelegate(QStyledItemDelegate): + """Paint two-line nested step cards using the application's palette.""" + + def sizeHint(self, _option, _index) -> QSize: + """Reserve a compact card row. + + Args: + _option (QStyleOptionViewItem): Item style options. + _index (QModelIndex): Tree item index. + + Returns: + QSize: Card dimensions. + """ + return QSize(240, 66) + + def paint(self, painter, option, index) -> None: + """Render a step title and its execution behavior. + + Args: + painter (QPainter): Active Qt painter. + option (QStyleOptionViewItem): Item style options. + index (QModelIndex): Tree item index. + """ + painter.save() + rect = option.rect.adjusted(2, 3, -8, -3) + selected = bool(option.state & QStyle.State_Selected) + palette = QApplication.palette() + theme = getattr(QApplication.instance(), "theme", None) + accent = theme_color(theme, "PRIMARY", palette.highlight().color()) + background = theme_color(theme, "CARD_BG", palette.window().color()) + foreground = theme_color(theme, "FG", palette.text().color()) + border = theme_color(theme, "BORDER", palette.midlight().color()) + if selected: + background = QColor( + int(background.red() * 0.9 + accent.red() * 0.1), + int(background.green() * 0.9 + accent.green() * 0.1), + int(background.blue() * 0.9 + accent.blue() * 0.1), + ) + painter.setRenderHint(QPainter.Antialiasing) + painter.setPen(QPen(accent if selected else border, 1)) + painter.setBrush(background) + painter.drawRoundedRect(rect, 5, 5) + title = QFont(option.font) + title.setBold(True) + painter.setFont(title) + painter.setPen(foreground) + painter.drawText( + rect.adjusted(30, 8, -32, -28), + Qt.AlignVCenter, + option.fontMetrics.elidedText(str(index.data()), Qt.ElideRight, rect.width() - 62), + ) + if index.data(Qt.DecorationRole) is not None: + index.data(Qt.DecorationRole).paint( + painter, QRect(rect.left() + 10, rect.top() + 11, 14, 14) + ) + painter.drawText(rect.adjusted(rect.width() - 26, 5, -6, -30), Qt.AlignCenter, "⋯") + painter.setFont(option.font) + muted = QColor(foreground) + muted.setAlpha(160) + painter.setPen(muted) + subtitle = str(index.data(Qt.UserRole + 1) or "") + painter.drawText( + rect.adjusted(12, 30, -12, -7), + Qt.AlignVCenter, + option.fontMetrics.elidedText(subtitle, Qt.ElideRight, rect.width() - 24), + ) + painter.restore() + + def editorEvent(self, event, model, option, index) -> bool: + """Open step actions from the card's overflow control. + + Args: + event (QEvent): Item input event. + model (QAbstractItemModel): Tree model. + option (QStyleOptionViewItem): Item geometry. + index (QModelIndex): Target item. + + Returns: + bool: Whether the overflow click was handled. + """ + if ( + event.type() == QEvent.MouseButtonRelease + and event.button() == Qt.LeftButton + and event.pos().x() > option.rect.right() - 35 + ): + self.parent().customContextMenuRequested.emit(event.pos()) + return True + return super().editorEvent(event, model, option, index) + + +class Section(QWidget): + """Hold optional inspector controls behind a disclosure button. + + Args: + title (str): Section label. + content (QWidget): Controls to show when expanded. + parent (QWidget | None): Owning widget. + """ + + def __init__(self, title: str, content: QWidget, parent=None) -> None: + super().__init__(parent) + layout = QVBoxLayout(self) + layout.setContentsMargins(0, 0, 0, 0) + self.toggle = QToolButton(self) + self.toggle.setText(title) + self.toggle.setCheckable(True) + self.toggle.setToolButtonStyle(Qt.ToolButtonTextBesideIcon) + self.toggle.setArrowType(Qt.RightArrow) + content.setVisible(False) + layout.addWidget(self.toggle) + layout.addWidget(content) + self.toggle.toggled.connect(content.setVisible) + self.toggle.toggled.connect( + lambda checked: self.toggle.setArrowType(Qt.DownArrow if checked else Qt.RightArrow) + ) diff --git a/bec_widgets/widgets/control/scan_scheduler/register_scan_scheduler.py b/bec_widgets/widgets/control/scan_scheduler/register_scan_scheduler.py new file mode 100644 index 00000000..ccbce467 --- /dev/null +++ b/bec_widgets/widgets/control/scan_scheduler/register_scan_scheduler.py @@ -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 bec_widgets.widgets.control.scan_scheduler.scan_scheduler_plugin import ScanSchedulerPlugin + + QPyDesignerCustomWidgetCollection.addCustomWidget(ScanSchedulerPlugin()) + + +if __name__ == "__main__": # pragma: no cover + main() diff --git a/bec_widgets/widgets/control/scan_scheduler/scan_editor.py b/bec_widgets/widgets/control/scan_scheduler/scan_editor.py new file mode 100644 index 00000000..c8fbc16c --- /dev/null +++ b/bec_widgets/widgets/control/scan_scheduler/scan_editor.py @@ -0,0 +1,358 @@ +"""Embed ScanControl, adding scoped references and preserving JSON calling semantics.""" + +from __future__ import annotations + +import json +from copy import deepcopy + +from qtpy.QtCore import QTimer, Signal +from qtpy.QtGui import QValidator +from qtpy.QtWidgets import ( + QCheckBox, + QComboBox, + QCompleter, + QDoubleSpinBox, + QLineEdit, + QSpinBox, + QVBoxLayout, + QWidget, +) + +from bec_widgets.utils.widget_io import WidgetIO +from bec_widgets.widgets.control.device_input.device_combobox.device_combobox import DeviceComboBox +from bec_widgets.widgets.control.scan_control import ScanControl +from bec_widgets.widgets.control.scan_control.scan_group_box import ScanLiteralsComboBox + +# Qt signal descriptors are not understood by pylint. +# pylint: disable=no-member + +_MISSING = object() + + +class ScanInputValidator(QValidator): + """Permit visible variables or literals accepted by the native scan input. + + Args: + widget (QWidget): Native input supplying type, bounds and literal validation. + variables (list[str]): Loop variables visible at this component. + parent (QWidget): Owning input. + """ + + def __init__(self, widget: QWidget, variables: list[str], parent: QWidget) -> None: + super().__init__(parent) + self.widget = widget + self.variables = {f"${name}" for name in variables} + + def validate(self, text: str, position: int) -> tuple: + """Validate a scoped variable or defer to the scan's native literal rules. + + Args: + text (str): Current input text. + position (int): Cursor position. + + Returns: + tuple: Qt validation state, unchanged text and cursor position. + """ + if text in self.variables: + return QValidator.State.Acceptable, text, position + if text.startswith("$"): + state = ( + QValidator.State.Intermediate + if any(name.startswith(text) for name in self.variables) + else QValidator.State.Invalid + ) + return state, text, position + if isinstance(self.widget, (QSpinBox, QDoubleSpinBox)): + return self.widget.validate(text, position) + if isinstance(self.widget, QCheckBox): + valid = text.lower() in {"true", "false"} + elif isinstance(self.widget, DeviceComboBox): + valid = self.widget.validate_device(text) + elif isinstance(self.widget, ScanLiteralsComboBox): + valid = self.widget.findText(text) >= 0 + else: + validator = self.widget.validator() if isinstance(self.widget, QLineEdit) else None + if validator is not None: + return validator.validate(text, position) + valid = True + return ( + (QValidator.State.Acceptable if valid else QValidator.State.Intermediate), + text, + position, + ) + + +class BoundScanInput(QLineEdit): + """Edit a native scan value or a visible ``$variable`` in one input. + + The validator keeps the native input's literal rules and additionally permits scoped + loop variables. Variables are serialized as JSON references, never as Python expressions. + + Args: + widget (QWidget): Native scan input supplying literal conversion and validation. + value (object): Loaded JSON value or a missing-value sentinel. + variables (list[str]): Visible loop bindings. + parent (QWidget | None): Owning scan-input tile. + """ + + changed = Signal() + + def __init__(self, widget: QWidget, value: object, variables: list[str], parent=None) -> None: + super().__init__(parent) + self.widget = widget + self.variables = variables + self.setValidator(ScanInputValidator(widget, variables, self)) + choices = [f"${name}" for name in variables] + if isinstance(widget, QComboBox): + choices += [widget.itemText(index) for index in range(widget.count())] + if choices: + self.setCompleter(QCompleter(choices, self)) + self.setToolTip( + widget.toolTip() + + ( + "\nAvailable variables: " + ", ".join(f"${name}" for name in variables) + if variables + else "" + ) + ) + if isinstance(value, dict): + self.setText(f"${value['ref']}" if set(value) == {"ref"} else json.dumps(value)) + else: + if value is not _MISSING: + if isinstance(widget, ScanLiteralsComboBox): + widget.setCurrentText(str(value) if value is not None else "") + else: + WidgetIO.set_value(widget, value) + self.load_native_value() + widget.hide() + self.textEdited.connect(lambda *_: self.changed.emit()) + self.editingFinished.connect(self.changed.emit) + + def load_native_value(self) -> None: + """Display a literal restored by ScanControl.""" + if isinstance(self.widget, (QSpinBox, QDoubleSpinBox)): + text = self.widget.text() + elif isinstance(self.widget, QCheckBox): + text = "true" if self.widget.isChecked() else "false" + elif isinstance(self.widget, QComboBox): + text = self.widget.currentText() + else: + text = self.widget.text() + self.setText(text) + + def value(self) -> object: + """Read a checked literal or scoped JSON reference. + + Returns: + object: JSON-compatible scan argument. + + Raises: + ValueError: Input is neither a valid literal nor an available variable. + """ + text = self.text() + if text.startswith("$"): + name = text[1:] + if name not in self.variables: + raise ValueError(f"Variable {text} is not available in this step") + return {"ref": name} + if not self.hasAcceptableInput(): + raise ValueError(f"Invalid {self.widget.arg_name}: {text}") + if isinstance(self.widget, (QSpinBox, QDoubleSpinBox)): + return self.widget.valueFromText(text) + if isinstance(self.widget, QCheckBox): + return text.lower() == "true" + return text + + +class ScanDefinitionEditor(QWidget): + """Use ScanControl for scan selection, argument groups and device bundles. + + The scheduler permits scoped variables in the inputs and translates edits back to + their original positional/keyword locations. Opening a node does not supply missing + arguments or replace its JSON values with widget defaults. + + Args: + node (dict): Scan-call component. + variables (list[str]): Visible loop variables. + scan_info (dict): Already subscribed scan metadata. + client (BECClient): Existing BEC client. + parent (QWidget | None): Owning inspector. + """ + + changed = Signal() + + def __init__( + self, node: dict, variables: list[str], scan_info: dict, client, parent=None + ) -> None: + super().__init__(parent) + self.original = deepcopy(node) + self.variables = variables + self.inputs = {} + self.dirty = set() + self._name_changed = False + self._closed = False + layout = QVBoxLayout(self) + layout.setContentsMargins(0, 0, 0, 0) + self.control = ScanControl( + parent=self, client=client, scan_info=scan_info, default_scan=node.get("name") or None + ) + self.control.hide_scan_control_buttons = True + self.control.scan_control_group.setEnabled(False) + if self.control.arg_box is not None and node.get("positional"): + defaults, _ = self.control.get_scan_parameters(bec_object=False) + values = [ + defaults[index % len(defaults)] if isinstance(value, dict) else value + for index, value in enumerate(node["positional"]) + ] + self.control.arg_box.set_parameters(values) + # Metadata can contain expressions; it remains in the scheduler's advanced JSON editor. + self.control.hide_metadata = True + layout.addWidget(self.control) + self.refresh_timer = QTimer(self) + self.refresh_timer.setSingleShot(True) + self.refresh_timer.timeout.connect(self._refresh_inputs) + self._refresh_inputs() + self.control.scan_selected.connect(self._selected) + self.control.comboBox_scan_selection.activated.connect(self._confirmed) + # ScanControl applies this result first; the wrapper then refreshes replaced inputs. + # pylint: disable=protected-access + self.control._last_scan_parameters_received.connect(self._restored) + + def _restored(self, generation: int, name: str, parameters: tuple[list, dict]) -> None: + # Match ScanControl's stale-response guard before reading the restored inputs. + # pylint: disable=protected-access + if self._closed or generation != self.control._last_scan_fetch_generation: + return + if name != self.control.current_scan: + return + positional, keywords = parameters + self.original = { + "name": name, + "positional": deepcopy(positional), + "arguments": deepcopy(keywords), + } + self._name_changed = False + self.dirty.clear() + for binding in self.inputs.values(): + binding.load_native_value() + self.refresh_timer.start(0) + self.changed.emit() + + def _positional_names(self) -> list[str]: + signature = self.control.available_scans.get(self.control.current_scan, {}).get( + "signature", [] + ) + return [ + entry["name"] + for entry in signature + if entry["kind"] in {"POSITIONAL_ONLY", "POSITIONAL_OR_KEYWORD"} + ] + + def _selected(self, _name): + self._name_changed = True + self.original = {"name": self.control.current_scan, "positional": [], "arguments": {}} + self.inputs.clear() + self.dirty.clear() + # Native ScanControl restores its inputs after emitting scan_selected. + self.refresh_timer.start(0) + self.changed.emit() + + def _confirmed(self, _index): + if not self.original.get("name"): + self._name_changed = True + self.changed.emit() + + def _input_changed(self, path): + if not self.original.get("name"): + self._name_changed = True + self.dirty.add(path) + self.changed.emit() + + def _refresh_inputs(self): + if self._closed: + return + current = {} + if self.control.arg_box is not None: + for index, widget in enumerate(self.control.arg_box.widgets): + current[("positional", index)] = widget + box = self.control.arg_box + if not box.property("sequence_bindings_connected"): + box.setProperty("sequence_bindings_connected", True) + for button in (box.button_add_bundle, box.button_remove_bundle): + button.clicked.connect(self._bundles_changed) + for box in self.control.kwarg_boxes: + for widget in box.widgets: + name = widget.arg_name + positional_names = self._positional_names() + path = ( + ("positional", positional_names.index(name)) + if ( + self.control.arg_box is None + and name in positional_names + and positional_names.index(name) < len(self.original.get("positional", [])) + ) + else ("arguments", name) + ) + current[path] = widget + existing = {id(binding.widget): binding for binding in self.inputs.values()} + self.inputs = {} + for path, widget in current.items(): + if id(widget) in existing: + binding = existing[id(widget)] + binding.changed.disconnect() + binding.changed.connect(lambda path=path: self._input_changed(path)) + self.inputs[path] = binding + continue + values = self.original.get(path[0], {} if path[0] == "arguments" else []) + value = ( + values.get(path[1], _MISSING) + if isinstance(values, dict) + else (values[path[1]] if path[1] < len(values) else _MISSING) + ) + tile = widget.parentWidget() + tile.layout().removeWidget(widget) + binding = BoundScanInput(widget, value, self.variables, tile) + tile.layout().addWidget(binding) + binding.changed.connect(lambda path=path: self._input_changed(path)) + self.inputs[path] = binding + self.changed.emit() + + def _bundles_changed(self, *_): + self._name_changed = True + self.refresh_timer.start(0) + + def values(self) -> tuple[str, list, dict]: + """Read native edits while retaining untouched arguments and positional calls. + + Returns: + tuple[str, list, dict]: Scan name, positional arguments and keyword arguments. + """ + if self.refresh_timer.isActive(): + self.refresh_timer.stop() + self._refresh_inputs() + name = self.control.current_scan if self._name_changed else self.original.get("name", "") + positional = deepcopy(self.original.get("positional", [])) + keywords = deepcopy(self.original.get("arguments", {})) + if self._name_changed: + positional, defaults = self.control.get_scan_parameters(bec_object=False) + keywords.update({key: value for key, value in defaults.items() if key != "metadata"}) + for path, binding in self.inputs.items(): + if path not in self.dirty and not self._name_changed: + continue + value = binding.value() + if path[0] == "arguments": + keywords[path[1]] = value + else: + if path[1] >= len(positional): + native, _ = self.control.get_scan_parameters(bec_object=False) + positional.extend(native[len(positional) :]) + positional[path[1]] = value + return name, positional, keywords + + def cleanup(self) -> None: + """Release embedded ScanControl resources and pending input refreshes.""" + if self._closed: + return + self._closed = True + self.refresh_timer.stop() + self.control.cleanup() diff --git a/bec_widgets/widgets/control/scan_scheduler/scan_scheduler.py b/bec_widgets/widgets/control/scan_scheduler/scan_scheduler.py new file mode 100644 index 00000000..4bfea087 --- /dev/null +++ b/bec_widgets/widgets/control/scan_scheduler/scan_scheduler.py @@ -0,0 +1,570 @@ +"""Compose JSON sequences, inspect exports and submit through BEC procedures.""" + +from __future__ import annotations + +import json + +# Qt signal descriptors are not understood by pylint. +# pylint: disable=no-member +from pathlib import Path + +from bec_lib.scan_sequencer import ( + BECAdapter, + DefinitionLibrary, + ScanCatalog, + Schedule, + Sequencer, + available_components, +) +from bec_qthemes import material_icon +from qtpy.QtCore import QSignalBlocker, Qt, QTimer +from qtpy.QtWidgets import ( + QComboBox, + QDialog, + QDialogButtonBox, + QFileDialog, + QHBoxLayout, + QLabel, + QLineEdit, + QMenu, + QPlainTextEdit, + QPushButton, + QScrollArea, + QSplitter, + QTabWidget, + QTreeWidget, + QTreeWidgetItem, + QVBoxLayout, + QWidget, +) + +from bec_widgets import BECWidget, SafeSlot + +from .document import SequenceDraft +from .inspector import ComponentInspector +from .presentation import LABELS, StepDelegate, step_title + + +class ScanScheduler(BECWidget, QWidget): + """Edit nested components and execute validated sequences through procedures. + + Description, Python and JSON representations share the backend's resolver. Execution + uses the existing run_sequence procedure without keeping submission records. + + Args: + parent (QWidget | None): Owning widget. + **kwargs (object): BECWidget connection and configuration arguments. + """ + + PLUGIN = True + ICON_NAME = "account_tree" + USER_ACCESS = ["load_json", "document_json", "validate_sequence", "execute_sequence"] + + def __init__(self, parent=None, **kwargs) -> None: + super().__init__(parent=parent, **kwargs) + self.draft = SequenceDraft() + self.schema = available_components() + self.catalog = ScanCatalog.from_client(self.client) + self._path = () + self._busy = False + self._closed = False + self._result = {} + self.exports = None + self.description = None + self.python = None + self.json = None + self.definitions = None + self.title = None + self.tree = None + self.apply_json_button = None + self._build_ui() + self.edit_timer = QTimer(self) + self.edit_timer.setSingleShot(True) + self.edit_timer.setInterval(250) + self.edit_timer.timeout.connect(self._apply) + self.inspector.changed.connect(self.edit_timer.start) + self.title.editingFinished.connect(self.edit_timer.start) + self.render_timer = QTimer(self) + self.render_timer.setSingleShot(True) + self.render_timer.setInterval(250) + self.render_timer.timeout.connect(self.validate_sequence) + self._rebuild_tree() + + def _button(self, text, slot, layout): + button = QPushButton(text, self) + button.clicked.connect(slot) + layout.addWidget(button) + return button + + def _build_ui(self) -> None: + self.setObjectName("scanScheduler") + self.setStyleSheet(""" + QWidget#scanScheduler { background: palette(base); } + QWidget#sequenceOutline { background: palette(alternate-base); border-radius: 5px; } + QLabel#sectionHeading, QLabel#brand { font-weight: 600; } + QLabel#stepHeading { font-size: 16px; font-weight: 600; margin-top: 12px; } + QLabel#breadcrumb { color: palette(placeholder-text); font-size: 11px; } + QLabel#scopeChip { background: palette(alternate-base); padding: 8px; border-radius: 4px; } + QTreeWidget { background: transparent; border: none; } + QLineEdit, QComboBox, QSpinBox { min-height: 24px; } + QLineEdit { padding-left: 7px; } + QPushButton#primary { background: palette(highlight); color: palette(highlighted-text); padding: 7px 16px; } + QTabWidget::pane { border: 1px solid palette(midlight); } + QTabBar { qproperty-expanding: false; } + QTabBar::tab { min-width: 80px; padding: 8px 12px; margin-right: 5px; } + QTreeWidget::item:selected, QTreeWidget::branch:selected { background: transparent; } + """) + layout = QVBoxLayout(self) + layout.setContentsMargins(16, 12, 16, 12) + brand = QLabel("BEC Scan scheduler", self) + brand.setObjectName("brand") + layout.addWidget(brand) + self.editor = QWidget(self) + layout.addWidget(self.editor) + editor_layout = QVBoxLayout(self.editor) + editor_layout.setContentsMargins(0, 12, 0, 0) + self._build_toolbar(editor_layout) + splitter = QSplitter(self) + splitter.setChildrenCollapsible(False) + editor_layout.addWidget(splitter, 1) + self._build_outline(splitter) + scroll = QScrollArea(self) + scroll.setWidgetResizable(True) + scroll.setFrameShape(QScrollArea.NoFrame) + self.inspector = ComponentInspector(self, client=self.client) + scroll.setWidget(self.inspector) + splitter.addWidget(scroll) + splitter.setStretchFactor(0, 1) + splitter.setStretchFactor(1, 2) + splitter.setSizes([380, 760]) + self._build_exports(editor_layout) + self.message = QLabel("Compose steps and execute the validated sequence.", self) + self.message.setWordWrap(True) + self.message.setTextFormat(Qt.PlainText) + self.message.setObjectName("breadcrumb") + layout.addWidget(self.message) + + def _build_toolbar(self, editor_layout): + toolbar = QHBoxLayout() + self.title = QLineEdit(self.draft.document["id"], self) + self.title.setPlaceholderText("Sequence name") + toolbar.addWidget(self.title, 1) + toolbar.addWidget(QLabel("Draft", self)) + options = QMenu(self) + for text, slot in ( + ("New sequence", self._new), + ("Open sequence…", self._open), + ("Save sequence…", self._save), + ("Reusable definitions…", self._definitions_dialog), + ): + options.addAction(text, slot) + more = QPushButton("Sequence options ⋯", self) + more.setMenu(options) + toolbar.addWidget(more) + editor_layout.addLayout(toolbar) + + def _build_outline(self, splitter): + outline = QWidget(self) + outline.setObjectName("sequenceOutline") + outline_layout = QVBoxLayout(outline) + outline_layout.setContentsMargins(10, 12, 6, 10) + actions = QHBoxLayout() + heading = QLabel("Sequence", self) + heading.setObjectName("sectionHeading") + actions.addWidget(heading) + actions.addStretch() + self.palette = QComboBox(self) + self.palette.addItems(list(self.schema["discriminator"]["mapping"])) + self.palette.hide() + add_menu = QMenu(self) + for kind in self.schema["discriminator"]["mapping"]: + add_menu.addAction( + LABELS[kind], lambda _checked=False, kind=kind: self._choose_add(kind) + ) + add = QPushButton("+ Add step", self) + add.setMenu(add_menu) + actions.addWidget(add) + outline_layout.addLayout(actions) + self.tree = QTreeWidget(self) + self.tree.setColumnCount(2) + self.tree.setHeaderHidden(True) + self.tree.setIndentation(14) + self.tree.setItemDelegate(StepDelegate(self.tree)) + self.tree.setContextMenuPolicy(Qt.CustomContextMenu) + self.tree.customContextMenuRequested.connect(self._step_menu) + self.tree.currentItemChanged.connect(self._selected) + outline_layout.addWidget(self.tree) + hint = QLabel("Groups run in order. Repeats apply to their children.", self) + hint.setWordWrap(True) + hint.setObjectName("breadcrumb") + outline_layout.addWidget(hint) + splitter.addWidget(outline) + + def _build_exports(self, editor_layout): + self.exports = QTabWidget(self) + self.exports.tabBar().setExpanding(False) + self.exports.setMaximumHeight(210) + self.description = self._text_tab(self.exports, "Description", readonly=True) + self.python = self._text_tab(self.exports, "Python", readonly=True) + self.json = self._text_tab(self.exports, "JSON", readonly=False) + self.definitions = QPlainTextEdit(self) + self.definitions.setPlainText("[]") + self.definitions.hide() + editor_layout.addWidget(self.exports) + footer = QHBoxLayout() + self.apply_json_button = self._button("Apply JSON edits", self._apply_json, footer) + self.apply_json_button.hide() + self.exports.currentChanged.connect( + lambda index: self.apply_json_button.setVisible(index == 2) + ) + footer.addStretch() + execute = self._button("Execute", self.execute_sequence, footer) + execute.setObjectName("primary") + editor_layout.addLayout(footer) + + def _choose_add(self, kind): + self.palette.setCurrentText(kind) + self._add() + + @SafeSlot(object) + def _step_menu(self, point): + item = self.tree.itemAt(point) + if item is None: + return + self.tree.setCurrentItem(item) + menu = QMenu(self) + add = menu.addMenu("Add step") + for kind in self.schema["discriminator"]["mapping"]: + add.addAction(LABELS[kind], lambda _checked=False, kind=kind: self._choose_add(kind)) + wrap = menu.addMenu("Wrap in") + for kind in ("sequence", "repeat", "for_each", "while"): + + def wrap_step(_checked=False, kind=kind): + self.palette.setCurrentText(kind) + self._wrap() + + wrap.addAction(LABELS[kind], wrap_step) + menu.addSeparator() + menu.addAction("Move up", lambda: self._move(-1)) + menu.addAction("Move down", lambda: self._move(1)) + menu.addAction("Remove step", self._remove) + menu.exec(self.tree.viewport().mapToGlobal(point)) + + @SafeSlot() + def _definitions_dialog(self): + dialog = QDialog(self) + dialog.setWindowTitle("Reusable definitions") + dialog.resize(700, 500) + layout = QVBoxLayout(dialog) + layout.addWidget(QLabel("Versioned component definitions (JSON list)", dialog)) + text = QPlainTextEdit(self.definitions.toPlainText(), dialog) + layout.addWidget(text) + buttons = QDialogButtonBox(QDialogButtonBox.Ok | QDialogButtonBox.Cancel, dialog) + buttons.accepted.connect(dialog.accept) + buttons.rejected.connect(dialog.reject) + layout.addWidget(buttons) + if dialog.exec() == QDialog.Accepted: + self.definitions.setPlainText(text.toPlainText()) + self._sync_json() + dialog.deleteLater() + + def _text_tab(self, tabs, title, readonly): + text = QPlainTextEdit(self) + text.setReadOnly(readonly) + tabs.addTab(text, title) + return text + + def _schema(self, kind): + ref = self.schema["discriminator"]["mapping"][kind].rsplit("/", 1)[-1] + return self.schema["$defs"][ref] + + def _show_inspector(self): + node = self.draft.node(self._path) + self.inspector.display( + node, + self._schema(node["type"]), + self.draft.variables(self._path), + self.catalog.entries, + sorted(self.client.device_manager.devices), + self._breadcrumb(), + ) + + def _breadcrumb(self): + titles = [self.title.text().replace("_", " ")] + for length in range(len(self._path) + 1): + node = self.draft.node(self._path[:length]) + if isinstance(node, dict) and node.get("type") != "sequence": + titles.append(step_title(node)) + return " / ".join(titles) + + def _rebuild_tree(self, selected=()): + if hasattr(self, "edit_timer"): + self.edit_timer.stop() + blocker = QSignalBlocker(self.tree) + self.tree.clear() + target = None + + def add(node, path, parent): + nonlocal target + kind = node["type"] + detail = { + "repeat": f"Repeat whole group ×{node.get('count')}", + "for_each": f"For each ${node.get('variable')} · {len(node.get('values', []))} values", + "set": f"Set {node.get('device')}" + + (" and wait" if node.get("wait") else " asynchronously"), + "scan_call": node.get("name", "").replace("_", " "), + "while": "Check before each iteration", + "sequence": "Children execute in order", + "component_call": str(node.get("definition", "")), + }[kind] + item = QTreeWidgetItem(parent, [step_title(node), detail]) + item.setIcon( + 0, + material_icon( + { + "sequence": "account_tree", + "repeat": "repeat", + "for_each": "format_list_bulleted", + "while": "sync", + "set": "tune", + "scan_call": "filter_center_focus", + "component_call": "extension", + }[kind] + ), + ) + item.setData(0, Qt.UserRole + 1, detail) + item.setData(0, Qt.UserRole, path) + if path == selected: + target = item + for index, child in enumerate(node.get("children", [])): + add(child, path + ("children", index), item) + if "body" in node: + body = node["body"] + if body["type"] == "sequence": + for index, child in enumerate(body["children"]): + add(child, path + ("body", "children", index), item) + else: + add(body, path + ("body",), item) + + root = self.draft.document["root"] + if root["type"] == "sequence" and root["children"]: + for index, child in enumerate(root["children"]): + add(child, ("children", index), self.tree) + else: + add(root, (), self.tree) + self.tree.expandAll() + self.tree.setCurrentItem(target or self.tree.topLevelItem(0)) + self._path = tuple(self.tree.currentItem().data(0, Qt.UserRole)) + del blocker + self._show_inspector() + self.tree.setColumnHidden(1, True) + self.tree.header().setStretchLastSection(True) + self._sync_json() + + def _sync_json(self): + self.json.setPlainText(json.dumps(self.draft.document, indent=2, ensure_ascii=False)) + self.description.clear() + self.python.clear() + self.message.setText("Sequence changed.") + if hasattr(self, "render_timer"): + self.render_timer.start() + + def _commit(self): + node = self.inspector.values() + changed = ( + node != self.draft.node(self._path) or self.draft.document["id"] != self.title.text() + ) + self.draft.replace(self._path, node) + self.draft.document["id"] = self.title.text() + return changed + + @SafeSlot(object, object) + def _selected(self, current, previous): + if current is None: + return + try: + changed = self._commit() + except (ValueError, TypeError) as exc: + blocker = QSignalBlocker(self.tree) + self.tree.setCurrentItem(previous) + del blocker + self.message.setText(f"Step not applied: {exc}") + return + self._path = tuple(current.data(0, Qt.UserRole)) + self._show_inspector() + if changed: + self._sync_json() + + @SafeSlot() + def _apply(self): + if not self._busy and not self._closed: + self._edit(lambda: self._path) + + def _edit(self, action): + try: + self._commit() + selected = action() + self._rebuild_tree(selected or ()) + except (ValueError, TypeError, KeyError) as exc: + self.message.setText(str(exc)) + + @SafeSlot() + def _add(self): + self._edit(lambda: self.draft.add(self._path, self.palette.currentText())) + + @SafeSlot() + def _wrap(self): + def wrap(): + self.draft.wrap(self._path, self.palette.currentText()) + return self._path + + self._edit(wrap) + + @SafeSlot() + def _remove(self): + self._edit(lambda: self.draft.remove(self._path)) + + def _move(self, offset): + self._edit(lambda: self.draft.move(self._path, offset)) + + @SafeSlot() + def _new(self): + self.draft = SequenceDraft() + self.title.setText(self.draft.document["id"]) + self._rebuild_tree() + + def load_json(self, document: str, definitions: str = "[]") -> None: + """Load a structurally valid document and reusable definitions into the editor. + + Args: + document (str): Sequence document JSON. + definitions (str): JSON list of reusable definitions. Defaults to an empty library. + """ + if self._busy: + raise RuntimeError("Wait for the current validation or execution to finish.") + schedule = Schedule.model_validate_json(document) + DefinitionLibrary(json.loads(definitions)) + self.draft = SequenceDraft(schedule.model_dump(mode="json")) + self.title.setText(schedule.id) + self.definitions.setPlainText(definitions) + self._rebuild_tree() + + def document_json(self) -> str: + """Return the current edited document with structural schema validation. + + Returns: + str: Authoritative sequence JSON for saving or submission. + """ + self._commit() + return self.draft.validated().model_dump_json(indent=2) + + @SafeSlot() + def _apply_json(self): + try: + self.load_json(self.json.toPlainText(), self.definitions.toPlainText()) + except (ValueError, TypeError) as exc: + self.message.setText(str(exc)) + + @SafeSlot() + def _open(self): + filename, _ = QFileDialog.getOpenFileName(self, "Open sequence", filter="JSON (*.json)") + if filename: + try: + self.load_json( + Path(filename).read_text(encoding="utf-8"), self.definitions.toPlainText() + ) + except (OSError, ValueError) as exc: + self.message.setText(str(exc)) + + @SafeSlot() + def _save(self): + filename, _ = QFileDialog.getSaveFileName(self, "Save sequence", filter="JSON (*.json)") + if filename: + try: + Path(filename).write_text(self.document_json(), encoding="utf-8") + except (OSError, ValueError) as exc: + self.message.setText(str(exc)) + + @SafeSlot() + def validate_sequence(self) -> None: + """Validate the entire draft and refresh all exports on a background task.""" + self._start(False) + + @SafeSlot() + def execute_sequence(self) -> None: + """Validate and execute the current sequence through the existing procedure API.""" + self._start(True) + + def _start(self, execute): + self.edit_timer.stop() + self.render_timer.stop() + if self._busy: + return + try: + payload = self.document_json() + definitions = json.loads(self.definitions.toPlainText()) + except (ValueError, TypeError) as exc: + self.message.setText(str(exc)) + return + self.description.clear() + self.python.clear() + self.json.setPlainText(payload) + self._busy = True + self.editor.setEnabled(False) + self.message.setText("Validating and executing…" if execute else "Validating…") + self._result = {} + client = self.client + result = self._result + + def prepare(): + catalog = ScanCatalog.from_client(client) + library = DefinitionLibrary(definitions) + sequencer = Sequencer(catalog, library) + sequencer.validate(payload, BECAdapter(client) if execute else None) + description = sequencer.export(payload, format="description") + python = sequencer.export(payload, format="python") + _, closure = library.resolve(Schedule.model_validate_json(payload).root) + result.update(description=description, python=python, payload=payload) + if execute: + client.proc.request_new( + "run_sequence", + ((payload, [entry.model_dump(mode="json") for entry in closure]), {}), + ) + result["executed"] = True + + self.submit_task(prepare, on_complete=self._prepared, on_failed=self._failed) + + @SafeSlot() + def _prepared(self): + if self._closed: + return + self._busy = False + self.editor.setEnabled(True) + self.description.setPlainText(self._result["description"]) + self.python.setPlainText(self._result["python"]) + self.json.setPlainText(self._result["payload"]) + self.message.setText( + "Execution requested through run_sequence." + if self._result.get("executed") + else "Sequence valid." + ) + + @SafeSlot(str) + def _failed(self, error): + if self._closed: + return + self._busy = False + self.editor.setEnabled(True) + self.message.setText(error.strip().splitlines()[-1]) + self.message.setToolTip(error) + + def cleanup(self) -> None: + """Stop pending edits and disconnect widget resources.""" + self._closed = True + if hasattr(self, "edit_timer"): + self.edit_timer.stop() + if hasattr(self, "render_timer"): + self.render_timer.stop() + if hasattr(self, "inspector"): + self.inspector.cleanup() + super().cleanup() diff --git a/bec_widgets/widgets/control/scan_scheduler/scan_scheduler.pyproject b/bec_widgets/widgets/control/scan_scheduler/scan_scheduler.pyproject new file mode 100644 index 00000000..51cb8e25 --- /dev/null +++ b/bec_widgets/widgets/control/scan_scheduler/scan_scheduler.pyproject @@ -0,0 +1 @@ +{'files': ['scan_scheduler.py']} \ No newline at end of file diff --git a/bec_widgets/widgets/control/scan_scheduler/scan_scheduler_plugin.py b/bec_widgets/widgets/control/scan_scheduler/scan_scheduler_plugin.py new file mode 100644 index 00000000..fb77882d --- /dev/null +++ b/bec_widgets/widgets/control/scan_scheduler/scan_scheduler_plugin.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 bec_widgets.widgets.control.scan_scheduler.scan_scheduler import ScanScheduler + +DOM_XML = """ + + + + +""" + + +class ScanSchedulerPlugin(QDesignerCustomWidgetInterface): # pragma: no cover + def __init__(self): + super().__init__() + self._form_editor = None + + def createWidget(self, parent): + if parent is None: + return QWidget() + t = ScanScheduler(parent) + return t + + def domXml(self): + return DOM_XML + + def group(self): + return "" + + def icon(self): + return designer_material_icon(ScanScheduler.ICON_NAME) + + def includeFile(self): + return "scan_scheduler" + + 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 "ScanScheduler" + + def toolTip(self): + return "Edit nested components and execute validated sequences through procedures." + + def whatsThis(self): + return self.toolTip() diff --git a/docs/scan_scheduler/README.md b/docs/scan_scheduler/README.md new file mode 100644 index 00000000..36483bed --- /dev/null +++ b/docs/scan_scheduler/README.md @@ -0,0 +1,62 @@ +# Scan scheduler + +The scheduler composes nested BEC sequence components and executes their JSON to the existing +`run_sequence` procedure. It requires the BEC `feature/scan_sequencer` branch, installed in both +this GUI environment and the procedure worker environment. There is no new execution service. + +Open **Scan Scheduler** in `bec-app`, add a ScanScheduler through the GUI server/Designer, or run: + +```bash +python -m bec_widgets.examples.scan_scheduler +``` + +Opening the example does not move hardware or acquire scans. Its `samx` and `time_scan` inputs +must be available on your deployment before validation/execution succeeds. + +## Compose and inspect + +- Select a sequence or loop, choose a component and click **Add step**. A selected sequence child + inserts a sibling after that child. **Wrap** surrounds the selected step with a sequence or loop. +- Edit the selected component in the inspector. Changes save automatically. Repeat counts must + be positive. The card menu provides wrap, reorder and remove actions. +- Set targets accept dotted device/signal names. **Wait for completion** controls native blocking + set/move behavior. Visible for_each variables appear in the **Variable** selector. +- Scan definitions use the existing **ScanControl** widget: its scan selector, argument groups, + device bundles, input bounds, units, tooltips and **Restore last** behavior. The scheduler hides + its execution buttons; composing a step does not submit a scan. Inputs accept a visible loop variable directly, for example `$exposure`. + Autocompletion offers the current scope; numeric literals retain their native bounds and units. Existing positional inputs remain positional, and untouched missing + arguments remain missing so backend validation can reject them. +- **Advanced settings → Edit arguments as raw JSON** supports metadata, whole argument-mapping + references and structured expressions. For example `{"ref": "pol"}`. Use + `{"type": "literal", "value": ...}` to protect dictionaries resembling reserved expressions. +- **Description**, **Python** and **JSON** update automatically after editing. Description is + selected first. Validation covers the complete tree, references and definitions. Execution also + checks live scan/device inputs before requesting the procedure. Invalid sequences cannot execute. +- **JSON → Apply JSON** imports edits made to the document JSON. **Sequence options → Open/Save** + uses standalone sequence documents. **Reusable definitions** accepts a JSON list of versioned + backend definitions; save/share that list separately alongside a sequence that needs it. + This prototype does not provide a reusable-definition authoring form. + +## Execute + +Choose **Execute** to validate the sequence and request the existing `run_sequence` procedure. +Validation and the request run off the Qt thread. The request contains the current JSON document +and the transitive reusable definitions it needs. The worker independently validates these inputs +before using native IPython scan/device calls. Scan implementations must be available in that worker. + +The widget does not keep submission records, queue views or history. Procedure execution and +interruption remain owned by BEC. Closing this editor does not interrupt a running procedure. + +## Programmatic use + +```python +from bec_widgets.widgets.control.scan_scheduler import ScanScheduler + +scheduler = ScanScheduler(client=bec) +scheduler.load_json(sequence_json, definitions_json) # definitions defaults to "[]" +scheduler.show() +scheduler.validate_sequence() # optional: refresh immediately instead of waiting for automatic updates +# scheduler.execute_sequence() # explicit execution action +``` + +![Scheduler with native ScanControl and description](scheduler-revised.png) diff --git a/docs/scan_scheduler/example-description.png b/docs/scan_scheduler/example-description.png new file mode 100644 index 0000000000000000000000000000000000000000..48fee79d3b4b83ac07ec62b5a1ad9b645a024195 GIT binary patch literal 76702 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

`h5h_x5T6u5#bw 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 Q)31^elY`{Hc>Vr=0YYA}A^-pY literal 0 HcmV?d00001 diff --git a/docs/scan_scheduler/example-python.png b/docs/scan_scheduler/example-python.png new file mode 100644 index 0000000000000000000000000000000000000000..4a25598eaa129cb6336de20febc432697d43c22f GIT binary patch literal 79091 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

`h5h_x5T6u5#bw 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 GGywp#J35*G literal 0 HcmV?d00001 diff --git a/docs/scan_scheduler/scheduler-revised.png b/docs/scan_scheduler/scheduler-revised.png new file mode 100644 index 0000000000000000000000000000000000000000..be98e53c8137a138243da226d4584b29537175c0 GIT binary patch literal 140865 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

BgQpl`w-Mt=UhG`&ATgc{MI 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 l_Mhqg|1k#npKjT5bP_>$^ literal 0 HcmV?d00001 diff --git a/docs/scan_scheduler/scheduler.png b/docs/scan_scheduler/scheduler.png new file mode 100644 index 0000000000000000000000000000000000000000..00b051cc07ac2dfa1d454bd6e871e91b8b5ced5b GIT binary patch literal 97974 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 D>> scans.time_scan(1, 1.0)\n Full:\n >>> scans.time_scan(1, 1.0, exp_time=0, settling_time=0)", + "gui_visibility": { + "Scan Parameters": [ + "points", + "interval", + "exp_time", + "settling_time" + ] + } + }, + "line_scan": { + "class": "LineScan", + "base_class": "ScanBaseV4", + "is_scan": true, + "is_internal": false, + "arg_input": { + "device": "DeviceBase", + "start": { + "Annotated": { + "type": "float", + "metadata": { + "ScanArgument": { + "display_name": "Start Position", + "description": null, + "tooltip": null, + "expert": false, + "hidden": false, + "example": null, + "units": null, + "reference_units": "device", + "gt": null, + "ge": null, + "lt": null, + "le": null, + "reference_limits": null, + "precision": null, + "alternative_group": null + } + } + } + }, + "stop": { + "Annotated": { + "type": "float", + "metadata": { + "ScanArgument": { + "display_name": "Stop Position", + "description": null, + "tooltip": null, + "expert": false, + "hidden": false, + "example": null, + "units": null, + "reference_units": "device", + "gt": null, + "ge": null, + "lt": null, + "le": null, + "reference_limits": null, + "precision": null, + "alternative_group": null + } + } + } + } + }, + "required_kwargs": [], + "arg_bundle_size": { + "bundle": 3, + "min": 1, + "max": null + }, + "signature": [ + { + "name": "args", + "kind": "VAR_POSITIONAL", + "default": "_empty", + "annotation": "_empty" + }, + { + "name": "steps", + "kind": "KEYWORD_ONLY", + "default": "_empty", + "annotation": { + "Annotated": { + "type": "int", + "metadata": { + "ScanArgument": { + "display_name": "Number of Steps", + "description": null, + "tooltip": null, + "expert": false, + "hidden": false, + "example": null, + "units": null, + "reference_units": null, + "gt": 0.0, + "ge": null, + "lt": null, + "le": null, + "reference_limits": null, + "precision": null, + "alternative_group": null + } + } + } + } + }, + { + "name": "relative", + "kind": "KEYWORD_ONLY", + "default": "_empty", + "annotation": { + "Annotated": { + "type": "bool", + "metadata": { + "ScanArgument": { + "display_name": "Relative", + "description": "Whether the positions are relative to the current position", + "tooltip": null, + "expert": false, + "hidden": false, + "example": null, + "units": null, + "reference_units": null, + "gt": null, + "ge": null, + "lt": null, + "le": null, + "reference_limits": null, + "precision": null, + "alternative_group": null + } + } + } + } + }, + { + "name": "exp_time", + "kind": "KEYWORD_ONLY", + "default": 0, + "annotation": { + "Annotated": { + "type": "float", + "metadata": { + "ScanArgument": { + "display_name": "Exposure Time", + "description": "Exposure time in seconds", + "tooltip": null, + "expert": false, + "hidden": false, + "example": null, + "units": "s", + "reference_units": null, + "gt": null, + "ge": 0.0, + "lt": null, + "le": null, + "reference_limits": null, + "precision": null, + "alternative_group": null + } + } + } + } + }, + { + "name": "frames_per_trigger", + "kind": "KEYWORD_ONLY", + "default": 1, + "annotation": { + "Annotated": { + "type": "int", + "metadata": { + "ScanArgument": { + "display_name": "Frames per Trigger", + "description": "Number of frames per trigger for devices that support configurable frame counts per trigger.", + "tooltip": null, + "expert": false, + "hidden": false, + "example": null, + "units": null, + "reference_units": null, + "gt": null, + "ge": 1.0, + "lt": null, + "le": null, + "reference_limits": null, + "precision": null, + "alternative_group": null + } + } + } + } + }, + { + "name": "settling_time", + "kind": "KEYWORD_ONLY", + "default": 0, + "annotation": { + "Annotated": { + "type": "float", + "metadata": { + "ScanArgument": { + "display_name": "Settling Time", + "description": "Time to settle before trigger and readout.", + "tooltip": null, + "expert": false, + "hidden": false, + "example": null, + "units": "s", + "reference_units": null, + "gt": null, + "ge": 0.0, + "lt": null, + "le": null, + "reference_limits": null, + "precision": null, + "alternative_group": null + } + } + } + } + }, + { + "name": "settling_time_after_trigger", + "kind": "KEYWORD_ONLY", + "default": 0, + "annotation": { + "Annotated": { + "type": "float", + "metadata": { + "ScanArgument": { + "display_name": "Settling Time After Trigger", + "description": "Time to settle after the trigger but before the readout.", + "tooltip": null, + "expert": false, + "hidden": false, + "example": null, + "units": "s", + "reference_units": null, + "gt": null, + "ge": 0.0, + "lt": null, + "le": null, + "reference_limits": null, + "precision": null, + "alternative_group": null + } + } + } + } + }, + { + "name": "readout_time", + "kind": "KEYWORD_ONLY", + "default": 0, + "annotation": { + "Annotated": { + "type": "float", + "metadata": { + "ScanArgument": { + "display_name": "Readout Time", + "description": "Configuration for devices that support configurable readout times.", + "tooltip": null, + "expert": false, + "hidden": false, + "example": null, + "units": "s", + "reference_units": null, + "gt": null, + "ge": 0.0, + "lt": null, + "le": null, + "reference_limits": null, + "precision": null, + "alternative_group": null + } + } + } + } + }, + { + "name": "burst_at_each_point", + "kind": "KEYWORD_ONLY", + "default": 1, + "annotation": { + "Annotated": { + "type": "int", + "metadata": { + "ScanArgument": { + "display_name": "Burst at Each Point", + "description": "Number of triggers and readouts at each point.", + "tooltip": null, + "expert": false, + "hidden": false, + "example": null, + "units": null, + "reference_units": null, + "gt": null, + "ge": 1.0, + "lt": null, + "le": null, + "reference_limits": null, + "precision": null, + "alternative_group": null + } + } + } + } + }, + { + "name": "kwargs", + "kind": "VAR_KEYWORD", + "default": "_empty", + "annotation": "_empty" + } + ], + "doc": "A line scan for one or more motors.\n\nArgs:\n *args (device: DeviceBase, start: float, stop: float): repeated scan argument bundles.\n steps (int): steps.\n relative (bool): Whether the positions are relative to the current position.\n exp_time (float [s]): Exposure time in seconds. Default: 0 s\n frames_per_trigger (int): Number of frames per trigger for devices that support configurable frame counts per trigger. Default: 1\n settling_time (float [s]): Time to settle before trigger and readout. Default: 0 s\n settling_time_after_trigger (float [s]): Time to settle after the trigger but before the readout. Default: 0 s\n readout_time (float [s]): Configuration for devices that support configurable readout times. Default: 0 s\n burst_at_each_point (int): Number of triggers and readouts at each point. Default: 1\n\nReturns:\n ScanReport\n\nExamples:\n Minimum:\n >>> scans.line_scan(dev.device1, -1.0, 1.0, steps=10, relative=False)\n Full:\n >>> scans.line_scan(dev.device1, -1.0, 1.0, steps=10, relative=False, exp_time=0, frames_per_trigger=1, settling_time=0, settling_time_after_trigger=0, readout_time=0, burst_at_each_point=1)", + "gui_visibility": { + "Movement Parameters": [ + "steps", + "relative" + ], + "Acquisition Parameters": [ + "exp_time", + "frames_per_trigger", + "settling_time", + "settling_time_after_trigger", + "readout_time", + "burst_at_each_point" + ] + } + } +} diff --git a/tests/unit_tests/scan_scheduler/test_scan_scheduler.py b/tests/unit_tests/scan_scheduler/test_scan_scheduler.py new file mode 100644 index 00000000..70db0fbf --- /dev/null +++ b/tests/unit_tests/scan_scheduler/test_scan_scheduler.py @@ -0,0 +1,476 @@ +"""Scheduler composition and authoritative procedure integration tests.""" + +from __future__ import annotations + +import json +from pathlib import Path +from threading import Event, get_ident +from types import SimpleNamespace +from unittest.mock import MagicMock + +import pytest + +from bec_widgets.tests.utils import create_widget +from bec_widgets.widgets.control.scan_scheduler import ScanScheduler +from bec_widgets.widgets.control.scan_scheduler.document import SequenceDraft +from bec_widgets.widgets.control.scan_scheduler.inspector import ValueInput + + +@pytest.fixture +def scheduler(qtbot, mocked_client): + info = json.loads(Path(__file__).with_name("scan_info.json").read_text()) + mocked_client.scans._available_scans = { + name: SimpleNamespace(scan_info=entry) for name, entry in info.items() + } + mocked_client.proc = MagicMock() + return create_widget(qtbot, ScanScheduler, client=mocked_client) + + +@pytest.fixture +def sequence(): + return { + "schema_version": 1, + "type": "sequence", + "id": "alternating_positions", + "revision": 1, + "root": { + "id": "repeat", + "type": "repeat", + "count": 2, + "body": { + "id": "positions", + "type": "for_each", + "variable": "position", + "values": [1, -1], + "body": { + "id": "steps", + "type": "sequence", + "children": [ + { + "id": "move", + "type": "set", + "device": "samx", + "value": {"ref": "position"}, + "wait": True, + }, + { + "id": "scan", + "type": "scan_call", + "name": "time_scan", + "positional": [1, 0.1], + "arguments": {}, + }, + ], + }, + }, + }, + } + + +def test_tree_and_scope(scheduler, sequence): + scheduler.load_json(json.dumps(sequence)) + assert scheduler.exports.tabText(0) == "Description" + scheduler._rebuild_tree(("body", "body", "children", 0)) + assert scheduler.inspector.fields["value"].mode.currentData() == "position" + assert "position" in scheduler.inspector.scope.text() + assert "and wait" in scheduler.tree.currentItem().text(1) + assert json.loads(scheduler.document_json())["root"] == scheduler.draft.document["root"] + + +def test_validate_exports_in_worker(scheduler, sequence, qtbot): + scheduler.load_json(json.dumps(sequence)) + scheduler.validate_sequence() + qtbot.waitUntil(lambda: not scheduler._busy) + assert "Sequence valid" in scheduler.message.text() + assert "wait" in scheduler.description.toPlainText() + assert "time_scan" in scheduler.python.toPlainText() + assert scheduler.client.proc.request_new.call_count == 0 + + +def test_invalid_scan_never_submitted(scheduler, sequence, qtbot): + sequence["root"]["body"]["body"]["children"][1]["positional"] = [] + scheduler.load_json(json.dumps(sequence)) + scheduler.execute_sequence() + qtbot.waitUntil(lambda: not scheduler._busy) + assert scheduler.client.proc.request_new.call_count == 0 + assert "points" in scheduler.message.text() + + +def test_execute_uses_procedure_without_retaining_records(scheduler, sequence, qtbot): + scheduler.load_json(json.dumps(sequence)) + scheduler.execute_sequence() + qtbot.waitUntil(lambda: not scheduler._busy) + request = scheduler.client.proc.request_new.call_args + assert request.args[0] == "run_sequence" + document, _definitions = request.args[1][0] + assert json.loads(document)["revision"] == 1 + assert scheduler.draft.document["revision"] == 1 + assert not hasattr(scheduler, "records") + assert not hasattr(scheduler, "queue_table") + assert not hasattr(scheduler, "history_table") + + +def test_submission_does_not_block_event_loop(scheduler, sequence, qtbot): + started, release = Event(), Event() + threads = [] + + def request(*args, **kwargs): + threads.append(get_ident()) + started.set() + assert release.wait(5) + return SimpleNamespace(done=True, state=SimpleNamespace(value="SUCCESS"), error=None) + + scheduler.client.proc.request_new.side_effect = request + scheduler.load_json(json.dumps(sequence)) + scheduler.execute_sequence() + try: + qtbot.waitUntil(started.is_set) + assert scheduler._busy + assert threads == [threads[0]] and threads[0] != get_ident() + finally: + release.set() + qtbot.waitUntil(lambda: not scheduler._busy) + + +def test_json_errors_preserve_draft(scheduler, sequence): + scheduler.load_json(json.dumps(sequence)) + original = scheduler.document_json() + scheduler.json.setPlainText('{"type":"scan"}') + scheduler._apply_json() + assert scheduler.document_json() == original + + +def test_edit_add_wrap_move_remove(scheduler): + scheduler.palette.setCurrentText("set") + scheduler._add() + scheduler.inspector.fields["device"].setCurrentText("samx.velocity") + scheduler.inspector.fields["value"].value_edit.setText("2") + scheduler._apply() + scheduler.palette.setCurrentText("repeat") + scheduler._wrap() + assert scheduler.draft.node(scheduler._path)["count"] == 1 + assert scheduler.inspector.fields["count"].minimum() == 1 + scheduler._remove() + assert scheduler.draft.document["root"]["children"] == [] + + +def test_document_nested_scope_and_reordering(sequence): + draft = SequenceDraft(sequence) + path = ("body", "body", "children", 0) + assert draft.variables(path) == ["position"] + assert draft.variables(("body",)) == [] + assert draft.move(path, 1)[-1] == 1 + draft.remove(("body", "body")) + assert draft.node(("body", "body"))["children"] == [] + + +def test_value_reference_and_safe_literal(qtbot): + widget = ValueInput({"ref": "pol"}, ["pol"]) + qtbot.addWidget(widget) + assert widget.value() == {"ref": "pol"} + widget.mode.setCurrentIndex(0) + widget.value_edit.setText(json.dumps("'\n__import__('os')")) + assert widget.value() == "'\n__import__('os')" + + +def test_close_stops_pending_edits(scheduler): + scheduler.render_timer.start() + scheduler.close() + assert not scheduler.render_timer.isActive() + + +def test_named_scan_arguments_preserve_semantics(scheduler, sequence, qtbot): + sequence["root"]["body"]["values"] = [0.1, 0.2] + scheduler.load_json(json.dumps(sequence)) + path = ("body", "body", "children", 1) + scheduler._rebuild_tree(path) + inputs = scheduler.inspector.scan_arguments + assert inputs.values() == ("time_scan", [1, 0.1], {}) + # Bind exposure time to the visible variable without rewriting positional arguments. + editor = inputs.inputs[("arguments", "exp_time")] + editor.setText("$position") + editor.editingFinished.emit() + scheduler._apply() + scan = scheduler.draft.node(path) + assert scan["positional"] == [1, 0.1] + assert scan["arguments"]["exp_time"] == {"ref": "position"} + scheduler.validate_sequence() + qtbot.waitUntil(lambda: not scheduler._busy) + assert "time_scan" in scheduler.description.toPlainText(), scheduler.message.text() + + +def test_execution_passes_transitive_definitions(scheduler, qtbot): + definitions = [ + { + "id": "inner", + "version": 1, + "parameters": {"type": "object", "additionalProperties": False}, + "body": { + "id": "scan", + "type": "scan_call", + "name": "time_scan", + "positional": [1, 0.1], + }, + }, + { + "id": "outer", + "version": 1, + "body": { + "id": "call", + "type": "component_call", + "definition": {"id": "inner", "version": 1}, + }, + }, + {"id": "unused", "version": 1, "body": {"id": "empty", "type": "sequence", "children": []}}, + ] + document = { + "id": "reusable", + "revision": 1, + "root": { + "id": "call", + "type": "component_call", + "definition": {"id": "outer", "version": 1}, + }, + } + scheduler.client.proc.request_new.return_value = SimpleNamespace( + done=False, state=SimpleNamespace(value="RUNNING"), error=None + ) + scheduler.load_json(json.dumps(document), json.dumps(definitions)) + scheduler.execute_sequence() + qtbot.waitUntil(lambda: not scheduler._busy) + request = scheduler.client.proc.request_new.call_args + assert request is not None, scheduler.message.text() + definitions = request.args[1][0][1] + assert [entry["id"] for entry in definitions] == ["inner", "outer"] + + +def test_invalid_reference_rejected_before_submission(scheduler, sequence, qtbot): + sequence["root"]["body"]["body"]["children"][0]["value"] = {"ref": "missing"} + scheduler.load_json(json.dumps(sequence)) + scheduler.execute_sequence() + qtbot.waitUntil(lambda: not scheduler._busy) + assert "missing" in scheduler.message.text() + scheduler.client.proc.request_new.assert_not_called() + + +def test_repeat_zero_and_unknown_types_rejected(scheduler, sequence): + sequence["root"]["count"] = 0 + with pytest.raises(ValueError): + scheduler.load_json(json.dumps(sequence)) + sequence["root"]["count"] = 1 + sequence["type"] = "scan" + with pytest.raises(ValueError): + scheduler.load_json(json.dumps(sequence)) + + +def test_description_capture(scheduler, qtbot): + import os + + from bec_widgets.examples.scan_scheduler import example_sequence + + scheduler.load_json(example_sequence().model_dump_json()) + scheduler.resize(1400, 1000) + scheduler._rebuild_tree(("body", "body", "children", 0)) + scheduler.show() + scheduler.validate_sequence() + qtbot.waitUntil(lambda: not scheduler._busy) + assert scheduler.description.toPlainText() + if filename := os.environ.get("BEC_SCHEDULER_SCREENSHOT"): + qtbot.wait(100) + assert scheduler.grab().save(filename) + if filename := os.environ.get("BEC_SCHEDULER_PYTHON_SCREENSHOT"): + scheduler.exports.setCurrentIndex(1) + qtbot.wait(100) + assert scheduler.grab().save(filename) + + +def test_nested_scan_inspector_capture(scheduler, qtbot): + import os + + def scan(identity, exposure): + return { + "id": identity, + "type": "scan_call", + "name": "line_scan", + "positional": ["samx", -1.0, 1.0], + "arguments": { + "steps": 30, + "relative": False, + "exp_time": exposure, + "metadata": {"sample_name": "sample1"}, + }, + } + + document = { + "id": "Position & exposure", + "revision": 1, + "root": { + "id": "root", + "type": "sequence", + "children": [ + { + "id": "Position cycle", + "type": "repeat", + "count": 3, + "body": { + "id": "Position sweep", + "type": "for_each", + "variable": "position", + "values": [-1, 1], + "body": { + "id": "position_steps", + "type": "sequence", + "children": [ + { + "id": "Set position", + "type": "set", + "device": "samx", + "value": {"ref": "position"}, + "wait": True, + }, + { + "id": "Repeat acquisition", + "type": "repeat", + "count": 2, + "body": scan("Position line", 0.1), + }, + ], + }, + }, + }, + { + "id": "Exposure series", + "type": "for_each", + "variable": "exposure", + "values": [0.1, 0.2], + "body": { + "id": "Repeat exposure acquisition", + "type": "repeat", + "count": 2, + "body": scan("Exposure line", {"ref": "exposure"}), + }, + }, + ], + }, + } + scheduler.load_json(json.dumps(document)) + scheduler.resize(1250, 1050) + scheduler._rebuild_tree(("children", 1, "body", "body")) + scheduler.show() + scheduler.validate_sequence() + qtbot.waitUntil(lambda: not scheduler._busy) + assert scheduler.description.toPlainText(), scheduler.message.text() + assert "$exposure" in scheduler.inspector.scope.text() + if filename := os.environ.get("BEC_SCHEDULER_REVISED_SCREENSHOT"): + qtbot.wait(100) + assert scheduler.grab().save(filename) + + +def test_scan_control_is_embedded_without_fetching_metadata(scheduler, sequence, monkeypatch): + from bec_widgets.widgets.control.scan_control import ScanControl + + def unexpected_fetch(*args, **kwargs): + raise AssertionError("Scan metadata is already subscribed") + + monkeypatch.setattr(scheduler.client.connector, "get", unexpected_fetch) + scheduler.load_json(json.dumps(sequence)) + scheduler._rebuild_tree(("body", "body", "children", 1)) + editor = scheduler.inspector.scan_arguments + assert isinstance(editor.control, ScanControl) + assert editor.control.hide_scan_control_buttons + assert not editor.control.scan_control_group.isEnabled() + assert editor.values() == ("time_scan", [1, 0.1], {}) + + +def test_native_restore_refreshes_bindings(scheduler, sequence, qtbot): + scheduler.load_json(json.dumps(sequence)) + scheduler._rebuild_tree(("body", "body", "children", 1)) + editor = scheduler.inspector.scan_arguments + binding = editor.inputs[("arguments", "exp_time")] + binding.setText("$position") + binding.editingFinished.emit() + control = editor.control + control._last_scan_parameters_received.emit( + control._last_scan_fetch_generation, "time_scan", ([], {"points": 5, "interval": 0.2}) + ) + qtbot.waitUntil(lambda: not editor.refresh_timer.isActive()) + assert editor.values() == ("time_scan", [], {"points": 5, "interval": 0.2}) + assert binding.text() == "0.00 s" + + +def test_missing_scan_arguments_stay_missing(scheduler, sequence): + scan = sequence["root"]["body"]["body"]["children"][1] + scan["positional"] = [] + scheduler.load_json(json.dumps(sequence)) + scheduler._rebuild_tree(("body", "body", "children", 1)) + assert scheduler.inspector.scan_arguments.values() == ("time_scan", [], {}) + + +def test_new_scan_uses_native_selector(scheduler, sequence): + scan = sequence["root"]["body"]["body"]["children"][1] + scheduler.load_json(json.dumps(sequence)) + scan = scheduler.draft.document["root"]["body"]["body"]["children"][1] + scan["name"] = "" + scan["positional"] = [] + scheduler._rebuild_tree(("body", "body", "children", 1)) + editor = scheduler.inspector.scan_arguments + assert editor is not None + editor.control.current_scan = "time_scan" + editor._confirmed(0) + assert editor.values()[0] == "time_scan" + + +def test_native_scan_device_bundles_preserve_positional_inputs(scheduler, sequence, qtbot): + node = sequence["root"]["body"]["body"]["children"][1] + node.update( + name="line_scan", + positional=["samx", -1, 1, "samy", -2, 2], + arguments={"steps": 3, "relative": False}, + ) + scheduler.load_json(json.dumps(sequence)) + scheduler._rebuild_tree(("body", "body", "children", 1)) + editor = scheduler.inspector.scan_arguments + assert editor.control.arg_box.count_arg_rows() == 2 + assert editor.values() == ("line_scan", node["positional"], node["arguments"]) + editor.control.arg_box.button_remove_bundle.click() + qtbot.waitUntil(lambda: not editor.refresh_timer.isActive()) + name, positional, keywords = editor.values() + assert name == "line_scan" + assert positional == ["samx", -1, 1] + assert keywords["steps"] == 3 + + +def test_direct_variable_input_respects_scope_and_literal_bounds(scheduler, sequence): + from qtpy.QtGui import QValidator + + sequence["root"]["body"]["body"]["children"][1].update( + name="line_scan", positional=["samx", -1, 1], arguments={"steps": 3, "relative": False} + ) + scheduler.load_json(json.dumps(sequence)) + scheduler._rebuild_tree(("body", "body", "children", 1)) + field = scheduler.inspector.scan_arguments.inputs[("arguments", "steps")] + validator = field.validator() + assert validator.validate("$position", 9)[0] == QValidator.State.Acceptable + field.setText("$position") + assert field.value() == {"ref": "position"} + field.setText("$missing") + with pytest.raises(ValueError, match="not available"): + field.value() + field.setText("0") + with pytest.raises(ValueError, match="Invalid steps"): + field.value() + field.setText("5") + assert field.value() == 5 + + +def test_description_updates_without_preview_action(scheduler, sequence, qtbot): + from qtpy.QtWidgets import QPushButton + + scheduler.load_json(json.dumps(sequence)) + qtbot.waitUntil(lambda: bool(scheduler.description.toPlainText())) + assert scheduler.exports.count() == 3 + buttons = [button.text() for button in scheduler.findChildren(QPushButton)] + assert "Execute" in buttons + assert "Preview execution" not in buttons + assert "Submit sequence" not in buttons + scheduler.client.proc.request_new.assert_not_called()