bec-widgets 3.40.0__tar.gz → 3.40.2__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/CHANGELOG.md +27 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/PKG-INFO +1 -1
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/widgets/control/device_manager/components/ophyd_validation/ophyd_validation.py +118 -2
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/widgets/services/bec_queue/bec_queue.py +42 -9
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/pyproject.toml +1 -1
- bec_widgets-3.40.0/bec_widgets/assets/app_icons/alignment_1d.png +0 -0
- bec_widgets-3.40.0/bec_widgets/utils/bec_table.py +0 -21
- bec_widgets-3.40.0/bec_widgets/utils/validator_delegate.py +0 -13
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/.git_hooks/pre-commit +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/.github/ISSUE_TEMPLATE/bug_report.yml +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/.github/ISSUE_TEMPLATE/documentation_update.md +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/.github/ISSUE_TEMPLATE/feature_request.md +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/.github/actions/bw_install/action.yml +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/.github/dependabot.yml +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/.github/pull_request_template.md +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/.github/scripts/aggregate_benchmarks.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/.github/scripts/compare_benchmarks.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/.github/scripts/run_benchmarks.sh +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/.github/scripts/run_with_bec_servers.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/.github/workflows/benchmark.yml +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/.github/workflows/check_pr.yml +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/.github/workflows/child_repos.yml +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/.github/workflows/ci.yml +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/.github/workflows/end2end-conda.yml +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/.github/workflows/formatter.yml +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/.github/workflows/generate-cli-check.yml +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/.github/workflows/pytest-matrix.yml +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/.github/workflows/pytest.yml +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/.github/workflows/semantic_release.yml +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/.github/workflows/stale-issues.yml +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/.github/workflows/sync-issues-pr.yml +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/.gitignore +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/.pylintrc +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/AGENTS.md +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/CLAUDE.md +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/LICENSE +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/README.md +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/THIRD-PARTY-LICENCES +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/__init__.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/applications/__init__.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/applications/bw_launch.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/applications/companion_app.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/applications/launch_window.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/applications/main_app.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/applications/navigation_centre/__init__.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/applications/navigation_centre/reveal_animator.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/applications/navigation_centre/side_bar.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/applications/navigation_centre/side_bar_components.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/applications/startup_profiler.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/applications/views/__init__.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/applications/views/admin_view/__init__.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/applications/views/admin_view/admin_view.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/applications/views/developer_view/__init__.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/applications/views/developer_view/developer_view.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/applications/views/developer_view/developer_widget.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/applications/views/device_manager_view/__init__.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/applications/views/device_manager_view/device_manager_dialogs/__init__.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/applications/views/device_manager_view/device_manager_dialogs/config_choice_dialog.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/applications/views/device_manager_view/device_manager_dialogs/device_form_dialog.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/applications/views/device_manager_view/device_manager_dialogs/upload_redis_dialog.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/applications/views/device_manager_view/device_manager_display_widget.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/applications/views/device_manager_view/device_manager_view.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/applications/views/device_manager_view/device_manager_widget.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/applications/views/dock_area_view/__init__.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/applications/views/dock_area_view/dock_area_view.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/applications/views/view.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/assets/app_icons/BEC-General-App.png +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/assets/app_icons/auto_update.png +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/assets/app_icons/bec_widgets_icon.png +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/assets/app_icons/ui_loader_tile.png +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/assets/app_icons/widget_launch_tile.png +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/cli/__init__.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/cli/client.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/cli/client_utils.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/cli/designer_plugins.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/cli/rpc/__init__.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/cli/rpc/rpc_base.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/examples/__init__.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/examples/jupyter_console/__init__.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/examples/jupyter_console/jupyter_console_window.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/examples/plugin_example_pyside/__init__.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/examples/plugin_example_pyside/main.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/examples/plugin_example_pyside/registertictactoe.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/examples/plugin_example_pyside/taskmenuextension.pyproject +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/examples/plugin_example_pyside/tictactoe.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/examples/plugin_example_pyside/tictactoeplugin.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/examples/plugin_example_pyside/tictactoetaskmenu.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/tests/__init__.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/tests/client_mocks.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/tests/fake_devices.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/tests/fixtures.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/tests/testable_qtimer.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/tests/utils.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/utils/__init__.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/utils/bec_connector.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/utils/bec_designer.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/utils/bec_dispatcher.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/utils/bec_list.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/utils/bec_login.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/utils/bec_plugin_helper.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/utils/bec_plugin_manager/__init__.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/utils/bec_plugin_manager/create/__init__.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/utils/bec_plugin_manager/create/widget.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/utils/bec_plugin_manager/edit_ui.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/utils/bec_signal_proxy.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/utils/bec_widget.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/utils/busy_loader.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/utils/clickable_label.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/utils/collapsible_panel_manager.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/utils/colors.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/utils/container_utils.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/utils/crosshair.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/utils/eliding_label.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/utils/entry_validator.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/utils/error_popups.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/utils/expandable_frame.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/utils/filter_io.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/utils/flow_layout.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/utils/forms_from_types/__init__.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/utils/forms_from_types/forms.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/utils/forms_from_types/items.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/utils/forms_from_types/pydantic_model_info_adapter.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/utils/forms_from_types/pydantic_widget_form.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/utils/forms_from_types/styles.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/utils/fps_counter.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/utils/fuzzy_search.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/utils/generate_cli.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/utils/generate_designer_plugin.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/utils/guided_tour.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/utils/help_inspector/__init__.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/utils/help_inspector/help_inspector.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/utils/launch_progress.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/utils/launcher_ready.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/utils/layout_manager.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/utils/linear_region_selector.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/utils/list_of_expandable_frames.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/utils/name_utils.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/utils/ophyd_kind_util.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/utils/palette_viewer.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/utils/plot_indicator_items.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/utils/plugin_templates/plugin.template +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/utils/plugin_templates/register.template +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/utils/plugin_utils.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/utils/property_editor.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/utils/redis_message_waiter.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/utils/reference_utils.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/utils/round_frame.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/utils/rpc_decorator.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/utils/rpc_logging.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/utils/rpc_register.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/utils/rpc_server.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/utils/rpc_widget_handler.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/utils/scan_arg_metadata.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/utils/screen_utils.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/utils/serialization.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/utils/settings_dialog.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/utils/side_panel.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/utils/signal_classification.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/utils/thread_checker.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/utils/toolbars/actions.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/utils/toolbars/bundles.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/utils/toolbars/connections.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/utils/toolbars/performance.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/utils/toolbars/splitter.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/utils/toolbars/toolbar.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/utils/ui_loader.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/utils/widget_highlighter.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/utils/widget_io.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/utils/widget_state_manager.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/utils/yaml_dialog.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/widgets/__init__.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/widgets/containers/__init__.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/widgets/containers/auto_update/__init__.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/widgets/containers/auto_update/auto_updates.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/widgets/containers/dock_area/__init__.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/widgets/containers/dock_area/basic_dock_area.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/widgets/containers/dock_area/dock_area.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/widgets/containers/dock_area/profile_utils.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/widgets/containers/dock_area/settings/__init__.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/widgets/containers/dock_area/settings/dialogs.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/widgets/containers/dock_area/settings/workspace_manager.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/widgets/containers/dock_area/toolbar_components/__init__.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/widgets/containers/dock_area/toolbar_components/workspace_actions.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/widgets/containers/explorer/__init__.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/widgets/containers/explorer/collapsible_tree_section.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/widgets/containers/explorer/explorer.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/widgets/containers/explorer/file_browser_tree_widget.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/widgets/containers/layout_manager/__init__.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/widgets/containers/layout_manager/layout_manager.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/widgets/containers/main_window/__init__.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/widgets/containers/main_window/addons/__init__.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/widgets/containers/main_window/addons/hover_widget.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/widgets/containers/main_window/addons/notification_center/__init__.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/widgets/containers/main_window/addons/notification_center/notification_banner.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/widgets/containers/main_window/addons/scroll_label.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/widgets/containers/main_window/addons/web_links.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/widgets/containers/main_window/bec_main_window.pyproject +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/widgets/containers/main_window/bec_main_window_plugin.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/widgets/containers/main_window/main_window.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/widgets/containers/main_window/register_bec_main_window.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/widgets/containers/qt_ads/__init__.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/widgets/containers/qt_ads/__init__.pyi +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/widgets/containers/qt_ads/ads/__init__.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/widgets/containers/qt_ads/ads/__init__.pyi +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/widgets/control/__init__.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/widgets/control/buttons/__init__.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/widgets/control/buttons/button_abort/__init__.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/widgets/control/buttons/button_abort/abort_button.pyproject +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/widgets/control/buttons/button_abort/abort_button_plugin.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/widgets/control/buttons/button_abort/button_abort.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/widgets/control/buttons/button_abort/register_abort_button.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/widgets/control/buttons/button_reset/__init__.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/widgets/control/buttons/button_reset/button_reset.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/widgets/control/buttons/button_reset/register_reset_button.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/widgets/control/buttons/button_reset/reset_button.pyproject +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/widgets/control/buttons/button_reset/reset_button_plugin.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/widgets/control/buttons/button_resume/__init__.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/widgets/control/buttons/button_resume/button_resume.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/widgets/control/buttons/button_resume/register_resume_button.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/widgets/control/buttons/button_resume/resume_button.pyproject +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/widgets/control/buttons/button_resume/resume_button_plugin.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/widgets/control/buttons/stop_button/__init__.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/widgets/control/buttons/stop_button/register_stop_button.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/widgets/control/buttons/stop_button/stop_button.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/widgets/control/buttons/stop_button/stop_button.pyproject +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/widgets/control/buttons/stop_button/stop_button_plugin.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/widgets/control/device_control/__init__.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/widgets/control/device_control/position_indicator/__init__.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/widgets/control/device_control/position_indicator/position_indicator.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/widgets/control/device_control/position_indicator/position_indicator.pyproject +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/widgets/control/device_control/position_indicator/position_indicator_plugin.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/widgets/control/device_control/position_indicator/register_position_indicator.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/widgets/control/device_control/positioner_box/__init__.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/widgets/control/device_control/positioner_box/positioner_box/__init__.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/widgets/control/device_control/positioner_box/positioner_box/positioner_box.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/widgets/control/device_control/positioner_box/positioner_box/positioner_box.pyproject +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/widgets/control/device_control/positioner_box/positioner_box/positioner_box.ui +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/widgets/control/device_control/positioner_box/positioner_box/positioner_box_plugin.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/widgets/control/device_control/positioner_box/positioner_box/register_positioner_box.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/widgets/control/device_control/positioner_box/positioner_box_2d/__init__.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/widgets/control/device_control/positioner_box/positioner_box_2d/positioner_box2_d.pyproject +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/widgets/control/device_control/positioner_box/positioner_box_2d/positioner_box2_d_plugin.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/widgets/control/device_control/positioner_box/positioner_box_2d/positioner_box_2d.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/widgets/control/device_control/positioner_box/positioner_box_2d/positioner_box_2d.ui +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/widgets/control/device_control/positioner_box/positioner_box_2d/register_positioner_box2_d.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/widgets/control/device_control/positioner_box/positioner_box_base.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/widgets/control/device_control/positioner_box/positioner_control_line/__init__.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/widgets/control/device_control/positioner_box/positioner_control_line/positioner_control_line.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/widgets/control/device_control/positioner_box/positioner_control_line/positioner_control_line.pyproject +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/widgets/control/device_control/positioner_box/positioner_control_line/positioner_control_line.ui +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/widgets/control/device_control/positioner_box/positioner_control_line/positioner_control_line_plugin.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/widgets/control/device_control/positioner_box/positioner_control_line/register_positioner_control_line.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/widgets/control/device_control/positioner_group/__init__.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/widgets/control/device_control/positioner_group/positioner_group.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/widgets/control/device_control/positioner_group/positioner_group.pyproject +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/widgets/control/device_control/positioner_group/positioner_group_plugin.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/widgets/control/device_control/positioner_group/register_positioner_group.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/widgets/control/device_input/__init__.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/widgets/control/device_input/device_combobox/__init__.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/widgets/control/device_input/device_combobox/device_combo_box.pyproject +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/widgets/control/device_input/device_combobox/device_combo_box_plugin.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/widgets/control/device_input/device_combobox/device_combobox.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/widgets/control/device_input/device_combobox/register_device_combo_box.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/widgets/control/device_input/signal_combobox/__init__.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/widgets/control/device_input/signal_combobox/register_signal_combo_box.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/widgets/control/device_input/signal_combobox/signal_combo_box.pyproject +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/widgets/control/device_input/signal_combobox/signal_combo_box_plugin.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/widgets/control/device_input/signal_combobox/signal_combobox.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/widgets/control/device_manager/__init__.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/widgets/control/device_manager/components/__init__.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/widgets/control/device_manager/components/_util.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/widgets/control/device_manager/components/available_device_resources/__init__.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/widgets/control/device_manager/components/available_device_resources/available_device_group.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/widgets/control/device_manager/components/available_device_resources/available_device_group_ui.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/widgets/control/device_manager/components/available_device_resources/available_device_resources.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/widgets/control/device_manager/components/available_device_resources/available_device_resources_ui.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/widgets/control/device_manager/components/available_device_resources/device_resource_backend.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/widgets/control/device_manager/components/constants.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/widgets/control/device_manager/components/device_config_template/__init__.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/widgets/control/device_manager/components/device_config_template/device_config_template.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/widgets/control/device_manager/components/device_config_template/template_items.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/widgets/control/device_manager/components/device_table/__init__.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/widgets/control/device_manager/components/device_table/device_table.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/widgets/control/device_manager/components/device_table/device_table_row.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/widgets/control/device_manager/components/dm_config_view.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/widgets/control/device_manager/components/dm_docstring_view.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/widgets/control/device_manager/components/ophyd_validation/__init__.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/widgets/control/device_manager/components/ophyd_validation/ophyd_validation_utils.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/widgets/control/device_manager/components/ophyd_validation/validation_list_item.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/widgets/control/scan_control/__init__.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/widgets/control/scan_control/register_scan_control.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/widgets/control/scan_control/scan_control.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/widgets/control/scan_control/scan_control.pyproject +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/widgets/control/scan_control/scan_control_plugin.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/widgets/control/scan_control/scan_docstring.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/widgets/control/scan_control/scan_group_box.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/widgets/control/scan_control/scan_info_adapter.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/widgets/control/scan_control/scan_info_dialog.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/widgets/control/scan_control/scan_selection_dialog.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/widgets/dap/__init__.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/widgets/dap/dap_combo_box/__init__.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/widgets/dap/dap_combo_box/dap_combo_box.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/widgets/dap/dap_combo_box/dap_combo_box.pyproject +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/widgets/dap/dap_combo_box/dap_combo_box_plugin.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/widgets/dap/dap_combo_box/register_dap_combo_box.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/widgets/dap/lmfit_dialog/__init__.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/widgets/dap/lmfit_dialog/lm_fit_dialog.pyproject +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/widgets/dap/lmfit_dialog/lm_fit_dialog_plugin.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/widgets/dap/lmfit_dialog/lmfit_dialog.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/widgets/dap/lmfit_dialog/lmfit_dialog_compact.ui +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/widgets/dap/lmfit_dialog/lmfit_dialog_vertical.ui +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/widgets/dap/lmfit_dialog/register_lm_fit_dialog.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/widgets/editors/__init__.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/widgets/editors/bec_console/__init__.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/widgets/editors/bec_console/bec_console.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/widgets/editors/bec_console/bec_console.pyproject +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/widgets/editors/bec_console/bec_console_plugin.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/widgets/editors/bec_console/bec_shell.pyproject +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/widgets/editors/bec_console/bec_shell_plugin.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/widgets/editors/bec_console/register_bec_console.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/widgets/editors/bec_console/register_bec_shell.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/widgets/editors/dict_backed_table.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/widgets/editors/jupyter_console/__init__.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/widgets/editors/jupyter_console/jupyter_console.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/widgets/editors/monaco/__init__.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/widgets/editors/monaco/monaco_dock.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/widgets/editors/monaco/monaco_widget.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/widgets/editors/monaco/monaco_widget.pyproject +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/widgets/editors/monaco/monaco_widget_plugin.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/widgets/editors/monaco/register_monaco_widget.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/widgets/editors/monaco/scan_control_dialog.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/widgets/editors/sbb_monitor/__init__.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/widgets/editors/sbb_monitor/register_sbb_monitor.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/widgets/editors/sbb_monitor/sbb_monitor.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/widgets/editors/sbb_monitor/sbb_monitor.pyproject +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/widgets/editors/sbb_monitor/sbb_monitor_plugin.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/widgets/editors/scan_metadata/__init__.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/widgets/editors/scan_metadata/_util.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/widgets/editors/scan_metadata/register_scan_metadata.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/widgets/editors/scan_metadata/scan_metadata.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/widgets/editors/scan_metadata/scan_metadata.pyproject +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/widgets/editors/scan_metadata/scan_metadata_plugin.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/widgets/editors/text_box/__init__.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/widgets/editors/text_box/register_text_box.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/widgets/editors/text_box/text_box.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/widgets/editors/text_box/text_box.pyproject +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/widgets/editors/text_box/text_box_plugin.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/widgets/editors/website/__init__.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/widgets/editors/website/register_website_widget.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/widgets/editors/website/website.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/widgets/editors/website/website_widget.pyproject +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/widgets/editors/website/website_widget_plugin.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/widgets/games/__init__.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/widgets/games/minesweeper.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/widgets/games/minesweeper.pyproject +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/widgets/games/minesweeper_plugin.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/widgets/games/register_minesweeper.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/widgets/plots/__init__.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/widgets/plots/heatmap/__init__.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/widgets/plots/heatmap/heatmap.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/widgets/plots/heatmap/heatmap.pyproject +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/widgets/plots/heatmap/heatmap_plugin.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/widgets/plots/heatmap/register_heatmap.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/widgets/plots/heatmap/settings/__init__.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/widgets/plots/heatmap/settings/heatmap_setting.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/widgets/plots/heatmap/settings/heatmap_settings_horizontal.ui +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/widgets/plots/heatmap/settings/heatmap_settings_vertical.ui +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/widgets/plots/image/__init__.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/widgets/plots/image/bec_histogram_lut_item.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/widgets/plots/image/image.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/widgets/plots/image/image.pyproject +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/widgets/plots/image/image_base.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/widgets/plots/image/image_item.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/widgets/plots/image/image_plugin.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/widgets/plots/image/image_processor.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/widgets/plots/image/image_roi_plot.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/widgets/plots/image/register_image.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/widgets/plots/image/setting_widgets/__init__.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/widgets/plots/image/setting_widgets/image_roi_tree.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/widgets/plots/image/toolbar_components/__init__.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/widgets/plots/image/toolbar_components/device_selection.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/widgets/plots/image/toolbar_components/image_base_actions.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/widgets/plots/motor_map/__init__.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/widgets/plots/motor_map/motor_map.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/widgets/plots/motor_map/motor_map.pyproject +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/widgets/plots/motor_map/motor_map_plugin.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/widgets/plots/motor_map/register_motor_map.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/widgets/plots/motor_map/settings/__init__.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/widgets/plots/motor_map/settings/motor_map_settings.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/widgets/plots/motor_map/settings/motor_map_settings.ui +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/widgets/plots/motor_map/toolbar_components/__init__.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/widgets/plots/motor_map/toolbar_components/motor_selection.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/widgets/plots/multi_waveform/__init__.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/widgets/plots/multi_waveform/multi_waveform.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/widgets/plots/multi_waveform/multi_waveform.pyproject +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/widgets/plots/multi_waveform/multi_waveform_plugin.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/widgets/plots/multi_waveform/register_multi_waveform.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/widgets/plots/multi_waveform/settings/__init__.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/widgets/plots/multi_waveform/settings/control_panel.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/widgets/plots/multi_waveform/settings/multi_waveform_controls.ui +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/widgets/plots/multi_waveform/toolbar_components/__init__.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/widgets/plots/multi_waveform/toolbar_components/monitor_selection.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/widgets/plots/plot_base.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/widgets/plots/plot_info_label.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/widgets/plots/roi/__init__.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/widgets/plots/roi/image_roi.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/widgets/plots/scatter_waveform/__init__.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/widgets/plots/scatter_waveform/register_scatter_waveform.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/widgets/plots/scatter_waveform/scatter_curve.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/widgets/plots/scatter_waveform/scatter_waveform.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/widgets/plots/scatter_waveform/scatter_waveform.pyproject +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/widgets/plots/scatter_waveform/scatter_waveform_plugin.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/widgets/plots/scatter_waveform/settings/__init__.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/widgets/plots/scatter_waveform/settings/scatter_curve_setting.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/widgets/plots/scatter_waveform/settings/scatter_curve_settings_horizontal.ui +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/widgets/plots/scatter_waveform/settings/scatter_curve_settings_vertical.ui +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/widgets/plots/setting_menus/__init__.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/widgets/plots/setting_menus/axis_settings.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/widgets/plots/setting_menus/axis_settings_horizontal.ui +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/widgets/plots/setting_menus/axis_settings_vertical.ui +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/widgets/plots/toolbar_components/__init__.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/widgets/plots/toolbar_components/axis_settings_popup.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/widgets/plots/toolbar_components/mouse_interactions.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/widgets/plots/toolbar_components/plot_export.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/widgets/plots/toolbar_components/roi.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/widgets/plots/waveform/__init__.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/widgets/plots/waveform/curve.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/widgets/plots/waveform/register_waveform.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/widgets/plots/waveform/settings/__init__.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/widgets/plots/waveform/settings/curve_settings/__init__.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/widgets/plots/waveform/settings/curve_settings/curve_setting.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/widgets/plots/waveform/settings/curve_settings/curve_tree.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/widgets/plots/waveform/utils/__init__.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/widgets/plots/waveform/utils/alignment_controller.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/widgets/plots/waveform/utils/alignment_panel.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/widgets/plots/waveform/utils/roi_manager.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/widgets/plots/waveform/waveform.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/widgets/plots/waveform/waveform.pyproject +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/widgets/plots/waveform/waveform_plugin.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/widgets/progress/__init__.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/widgets/progress/bec_progressbar/__init__.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/widgets/progress/bec_progressbar/bec_progress_bar.pyproject +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/widgets/progress/bec_progressbar/bec_progress_bar_plugin.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/widgets/progress/bec_progressbar/bec_progressbar.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/widgets/progress/bec_progressbar/register_bec_progress_bar.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/widgets/progress/device_initialization_progress_bar/__init__.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/widgets/progress/device_initialization_progress_bar/device_initialization_progress_bar.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/widgets/progress/device_initialization_progress_bar/device_initialization_progress_bar.pyproject +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/widgets/progress/device_initialization_progress_bar/device_initialization_progress_bar_plugin.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/widgets/progress/device_initialization_progress_bar/register_device_initialization_progress_bar.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/widgets/progress/progress_backend.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/widgets/progress/ring_progress_bar/__init__.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/widgets/progress/ring_progress_bar/register_ring_progress_bar.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/widgets/progress/ring_progress_bar/ring.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/widgets/progress/ring_progress_bar/ring_progress_bar.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/widgets/progress/ring_progress_bar/ring_progress_bar.pyproject +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/widgets/progress/ring_progress_bar/ring_progress_bar_plugin.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/widgets/progress/ring_progress_bar/ring_progress_settings_cards.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/widgets/progress/ring_progress_bar/ring_settings.ui +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/widgets/progress/scan_progressbar/__init__.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/widgets/progress/scan_progressbar/register_scan_progress_bar.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/widgets/progress/scan_progressbar/scan_progress_bar.pyproject +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/widgets/progress/scan_progressbar/scan_progress_bar_plugin.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/widgets/progress/scan_progressbar/scan_progressbar.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/widgets/progress/scan_progressbar/scan_progressbar.ui +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/widgets/progress/scan_progressbar/scan_progressbar_one_line.ui +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/widgets/services/__init__.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/widgets/services/beamline_states/__init__.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/widgets/services/beamline_states/beamline_state_manager.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/widgets/services/beamline_states/beamline_state_manager.pyproject +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/widgets/services/beamline_states/beamline_state_manager_plugin.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/widgets/services/beamline_states/beamline_state_pill.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/widgets/services/beamline_states/dialogs.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/widgets/services/beamline_states/register_beamline_state_manager.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/widgets/services/bec_atlas_admin_view/__init__.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/widgets/services/bec_atlas_admin_view/bec_atlas_admin_view.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/widgets/services/bec_atlas_admin_view/bec_atlas_http_service.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/widgets/services/bec_atlas_admin_view/experiment_selection/__init__.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/widgets/services/bec_atlas_admin_view/experiment_selection/experiment_mat_card.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/widgets/services/bec_atlas_admin_view/experiment_selection/experiment_selection.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/widgets/services/bec_atlas_admin_view/experiment_selection/utils.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/widgets/services/bec_queue/__init__.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/widgets/services/bec_queue/bec_queue.pyproject +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/widgets/services/bec_queue/bec_queue_plugin.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/widgets/services/bec_queue/register_bec_queue.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/widgets/services/bec_status_box/__init__.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/widgets/services/bec_status_box/bec_status_box.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/widgets/services/bec_status_box/bec_status_box.pyproject +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/widgets/services/bec_status_box/bec_status_box_plugin.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/widgets/services/bec_status_box/register_bec_status_box.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/widgets/services/bec_status_box/status_item.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/widgets/services/device_browser/__init__.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/widgets/services/device_browser/device_browser.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/widgets/services/device_browser/device_browser.pyproject +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/widgets/services/device_browser/device_browser.ui +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/widgets/services/device_browser/device_browser_plugin.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/widgets/services/device_browser/device_item/__init__.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/widgets/services/device_browser/device_item/config_communicator.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/widgets/services/device_browser/device_item/device_config_dialog.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/widgets/services/device_browser/device_item/device_config_form.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/widgets/services/device_browser/device_item/device_item.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/widgets/services/device_browser/device_item/device_signal_display.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/widgets/services/device_browser/register_device_browser.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/widgets/services/device_browser/util.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/widgets/services/scan_history_browser/__init__.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/widgets/services/scan_history_browser/components/__init__.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/widgets/services/scan_history_browser/components/scan_history_device_viewer.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/widgets/services/scan_history_browser/components/scan_history_metadata_viewer.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/widgets/services/scan_history_browser/components/scan_history_view.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/widgets/services/scan_history_browser/scan_history_browser.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/widgets/utility/__init__.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/widgets/utility/bec_term/__init__.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/widgets/utility/bec_term/protocol.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/widgets/utility/bec_term/qtermwidget_wrapper.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/widgets/utility/bec_term/util.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/widgets/utility/feedback_dialog/__init__.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/widgets/utility/feedback_dialog/feedback_dialog.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/widgets/utility/ide_explorer/ide_explorer.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/widgets/utility/ide_explorer/ide_explorer.pyproject +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/widgets/utility/ide_explorer/ide_explorer_plugin.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/widgets/utility/ide_explorer/register_ide_explorer.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/widgets/utility/logpanel/__init__.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/widgets/utility/logpanel/log_panel.pyproject +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/widgets/utility/logpanel/log_panel_plugin.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/widgets/utility/logpanel/logpanel.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/widgets/utility/logpanel/register_log_panel.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/widgets/utility/pdf_viewer/pdf_viewer.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/widgets/utility/pdf_viewer/pdf_viewer_widget.pyproject +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/widgets/utility/pdf_viewer/pdf_viewer_widget_plugin.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/widgets/utility/pdf_viewer/register_pdf_viewer_widget.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/widgets/utility/scan_index_combobox/__init__.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/widgets/utility/scan_index_combobox/register_scan_index_combo_box.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/widgets/utility/scan_index_combobox/scan_index_combo_box.pyproject +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/widgets/utility/scan_index_combobox/scan_index_combo_box_plugin.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/widgets/utility/scan_index_combobox/scan_index_combobox.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/widgets/utility/signal_label/__init__.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/widgets/utility/signal_label/register_signal_label.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/widgets/utility/signal_label/signal_label.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/widgets/utility/signal_label/signal_label.pyproject +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/widgets/utility/signal_label/signal_label_plugin.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/widgets/utility/spinbox/__init__.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/widgets/utility/spinbox/bec_spin_box.pyproject +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/widgets/utility/spinbox/bec_spin_box_plugin.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/widgets/utility/spinbox/decimal_spinbox.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/widgets/utility/spinbox/register_bec_spin_box.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/widgets/utility/spinner/__init__.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/widgets/utility/spinner/register_spinner_widget.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/widgets/utility/spinner/spinner.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/widgets/utility/spinner/spinner_widget.pyproject +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/widgets/utility/spinner/spinner_widget_plugin.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/widgets/utility/toggle/__init__.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/widgets/utility/toggle/register_toggle_switch.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/widgets/utility/toggle/toggle.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/widgets/utility/toggle/toggle_switch.pyproject +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/widgets/utility/toggle/toggle_switch_plugin.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/widgets/utility/visual/__init__.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/widgets/utility/visual/color_button/__init__.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/widgets/utility/visual/color_button/color_button.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/widgets/utility/visual/color_button/color_button.pyproject +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/widgets/utility/visual/color_button/color_button_plugin.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/widgets/utility/visual/color_button/register_color_button.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/widgets/utility/visual/color_button_native/__init__.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/widgets/utility/visual/color_button_native/color_button_native.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/widgets/utility/visual/color_button_native/color_button_native.pyproject +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/widgets/utility/visual/color_button_native/color_button_native_plugin.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/widgets/utility/visual/color_button_native/register_color_button_native.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/widgets/utility/visual/colormap_selector/__init__.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/widgets/utility/visual/colormap_selector/colormap_selector.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/widgets/utility/visual/colormap_selector/colormap_selector.pyproject +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/widgets/utility/visual/colormap_selector/colormap_selector_plugin.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/widgets/utility/visual/colormap_selector/register_colormap_selector.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/widgets/utility/visual/colormap_widget/__init__.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/widgets/utility/visual/colormap_widget/bec_color_map_widget.pyproject +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/widgets/utility/visual/colormap_widget/bec_color_map_widget_plugin.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/widgets/utility/visual/colormap_widget/colormap_widget.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/widgets/utility/visual/colormap_widget/register_bec_color_map_widget.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/widgets/utility/visual/dark_mode_button/__init__.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/widgets/utility/visual/dark_mode_button/dark_mode_button.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/widgets/utility/visual/dark_mode_button/dark_mode_button.pyproject +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/widgets/utility/visual/dark_mode_button/dark_mode_button_plugin.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/widgets/utility/visual/dark_mode_button/register_dark_mode_button.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/widgets/utility/widget_finder/__init__.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/widgets/utility/widget_finder/register_widget_finder_combo_box.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/widgets/utility/widget_finder/widget_finder.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/widgets/utility/widget_finder/widget_finder_combo_box.pyproject +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/widgets/utility/widget_finder/widget_finder_combo_box_plugin.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/widgets/utility/widget_hierarchy_tree/__init__.py +0 -0
- {bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/widgets/utility/widget_hierarchy_tree/widget_hierarchy_tree.py +0 -0
|
@@ -1,6 +1,33 @@
|
|
|
1
1
|
# CHANGELOG
|
|
2
2
|
|
|
3
3
|
|
|
4
|
+
## v3.40.2 (2026-10-15)
|
|
5
|
+
|
|
6
|
+
### Bug Fixes
|
|
7
|
+
|
|
8
|
+
- **bec_queue**: Remove the clicked row on abort
|
|
9
|
+
([`0f325a7`](https://github.com/bec-project/bec_widgets/commit/0f325a75490350e038c3a8fd64c113b76c11f704))
|
|
10
|
+
|
|
11
|
+
### Refactoring
|
|
12
|
+
|
|
13
|
+
- **assets**: Remove unused alignment_1d icon
|
|
14
|
+
([`4120f27`](https://github.com/bec-project/bec_widgets/commit/4120f270075ce7a68ac7a1b1255be815b91cea96))
|
|
15
|
+
|
|
16
|
+
- **utils**: Remove unused BECTable
|
|
17
|
+
([`e4b6589`](https://github.com/bec-project/bec_widgets/commit/e4b6589c4dd71022eec7fe9852f4f69d498a43bf))
|
|
18
|
+
|
|
19
|
+
- **utils**: Remove unused DoubleValidationDelegate
|
|
20
|
+
([`49643b8`](https://github.com/bec-project/bec_widgets/commit/49643b8374fac76398e7b082ca0423e9116177f6))
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
## v3.40.1 (2026-10-15)
|
|
24
|
+
|
|
25
|
+
### Bug Fixes
|
|
26
|
+
|
|
27
|
+
- **ophyd_validation**: Shut down the validation thread pool on cleanup
|
|
28
|
+
([`592323c`](https://github.com/bec-project/bec_widgets/commit/592323c5756122acac218f5c348feea1d7ed1f3e))
|
|
29
|
+
|
|
30
|
+
|
|
4
31
|
## v3.40.0 (2026-10-15)
|
|
5
32
|
|
|
6
33
|
### Bug Fixes
|
|
@@ -9,11 +9,13 @@ In addition, it allows to configure the test parameters.
|
|
|
9
9
|
Mostly relevant for ADBase integrations.
|
|
10
10
|
"""
|
|
11
11
|
|
|
12
|
+
import atexit
|
|
12
13
|
import queue
|
|
13
14
|
import weakref
|
|
14
15
|
from typing import Any
|
|
15
16
|
from uuid import uuid4
|
|
16
17
|
|
|
18
|
+
import shiboken6
|
|
17
19
|
from bec_lib.atlas_models import Device as DeviceModel
|
|
18
20
|
from bec_lib.logger import bec_logger
|
|
19
21
|
from qtpy import QtCore, QtWidgets
|
|
@@ -134,6 +136,57 @@ class DeviceTest(QtCore.QRunnable):
|
|
|
134
136
|
)
|
|
135
137
|
|
|
136
138
|
|
|
139
|
+
_RETIRED_POOL_POLL_MS = 200
|
|
140
|
+
# Thread pools of shut-down ThreadPoolManagers that still run device tests (see _retire_pool).
|
|
141
|
+
_retired_pools: list[QtCore.QThreadPool] = []
|
|
142
|
+
|
|
143
|
+
|
|
144
|
+
def _retire_pool(pool: QtCore.QThreadPool) -> None:
|
|
145
|
+
"""
|
|
146
|
+
Take over a thread pool that still runs device tests from its (closing) owner.
|
|
147
|
+
|
|
148
|
+
A running StaticDeviceTest cannot be interrupted, and destroying a QThreadPool blocks until
|
|
149
|
+
its runnables return. The pool is therefore re-parented to the application, so destroying
|
|
150
|
+
its former parent does not freeze the GUI thread, and deleted once it is idle.
|
|
151
|
+
|
|
152
|
+
Args:
|
|
153
|
+
pool (QtCore.QThreadPool): The thread pool to retire.
|
|
154
|
+
"""
|
|
155
|
+
pool.setParent(QtCore.QCoreApplication.instance())
|
|
156
|
+
_retired_pools.append(pool)
|
|
157
|
+
_delete_pool_when_idle(pool)
|
|
158
|
+
|
|
159
|
+
|
|
160
|
+
def _delete_pool_when_idle(pool: QtCore.QThreadPool) -> None:
|
|
161
|
+
"""
|
|
162
|
+
Delete a retired thread pool once none of its runnables is running any more.
|
|
163
|
+
|
|
164
|
+
Polled from the GUI thread, so the QThreadPool destructor never has to wait for a test.
|
|
165
|
+
|
|
166
|
+
Args:
|
|
167
|
+
pool (QtCore.QThreadPool): The thread pool to delete.
|
|
168
|
+
"""
|
|
169
|
+
if shiboken6.isValid(pool) and pool.activeThreadCount() > 0:
|
|
170
|
+
QtCore.QTimer.singleShot(_RETIRED_POOL_POLL_MS, pool, lambda: _delete_pool_when_idle(pool))
|
|
171
|
+
return
|
|
172
|
+
_retired_pools[:] = [p for p in _retired_pools if p is not pool]
|
|
173
|
+
if shiboken6.isValid(pool):
|
|
174
|
+
pool.deleteLater()
|
|
175
|
+
|
|
176
|
+
|
|
177
|
+
@atexit.register
|
|
178
|
+
def _wait_for_retired_pools() -> None:
|
|
179
|
+
"""
|
|
180
|
+
At interpreter exit, wait for device tests that are still running in retired pools.
|
|
181
|
+
|
|
182
|
+
Registered after PySide's own atexit cleanup and therefore run before it: PySide destroys
|
|
183
|
+
the Python-owned QObjects (e.g. the DeviceTestResult a running test emits on) in its cleanup.
|
|
184
|
+
"""
|
|
185
|
+
for pool in list(_retired_pools):
|
|
186
|
+
if shiboken6.isValid(pool):
|
|
187
|
+
pool.waitForDone()
|
|
188
|
+
|
|
189
|
+
|
|
137
190
|
class ThreadPoolManager(QtCore.QObject):
|
|
138
191
|
"""
|
|
139
192
|
Manager wrapping QThreadPool to expose a queue for jobs.
|
|
@@ -159,6 +212,7 @@ class ThreadPoolManager(QtCore.QObject):
|
|
|
159
212
|
self.poll_interval_ms = poll_interval_ms
|
|
160
213
|
self._timer.setInterval(self.poll_interval_ms)
|
|
161
214
|
self._active_tests: dict[str, weakref.ReferenceType[DeviceTest]] = {}
|
|
215
|
+
self._shut_down = False
|
|
162
216
|
|
|
163
217
|
def start_polling(self):
|
|
164
218
|
"""Start the polling timer."""
|
|
@@ -172,16 +226,26 @@ class ThreadPoolManager(QtCore.QObject):
|
|
|
172
226
|
|
|
173
227
|
def _emit_device_validation_started(self, device_name: str):
|
|
174
228
|
"""Emit device validation started signal."""
|
|
229
|
+
if self._shut_down:
|
|
230
|
+
return
|
|
175
231
|
self.device_validation_started.emit(device_name)
|
|
176
232
|
|
|
177
233
|
def _emit_device_validated(
|
|
178
234
|
self, device_config: dict, config_status: int, connection_status: int, error_message: str
|
|
179
235
|
):
|
|
180
236
|
"""Emit device validated signal."""
|
|
237
|
+
if self._shut_down:
|
|
238
|
+
return
|
|
181
239
|
self.device_validated.emit(device_config, config_status, connection_status, error_message)
|
|
182
240
|
|
|
183
241
|
def submit(self, device_name: str, device_test: DeviceTest):
|
|
184
242
|
"""Queue a job for execution."""
|
|
243
|
+
if self._shut_down:
|
|
244
|
+
logger.debug(
|
|
245
|
+
f"Thread pool manager is shut down, dropping device test of {device_name}."
|
|
246
|
+
)
|
|
247
|
+
device_test.cancel()
|
|
248
|
+
return
|
|
185
249
|
device_test.signals.device_validation_started.connect(self._emit_device_validation_started)
|
|
186
250
|
device_test.signals.device_validated.connect(self._emit_device_validated)
|
|
187
251
|
self._queue.put((device_name, device_test))
|
|
@@ -225,8 +289,45 @@ class ThreadPoolManager(QtCore.QObject):
|
|
|
225
289
|
with self._queue.mutex:
|
|
226
290
|
return [device_name for device_name, _ in list(self._queue.queue)]
|
|
227
291
|
|
|
292
|
+
def shutdown(self) -> None:
|
|
293
|
+
"""
|
|
294
|
+
Stop starting device tests and drop all pending results, without blocking.
|
|
295
|
+
|
|
296
|
+
The poll timer is stopped, queued (not yet started) tests are discarded and running tests
|
|
297
|
+
are cancelled; their result signals are disconnected so late results are dropped. A test
|
|
298
|
+
that is already running cannot be interrupted: if any is still running, the thread pool
|
|
299
|
+
is retired (handed over to the application and deleted once idle), so destroying the
|
|
300
|
+
parent does not block the GUI thread in the QThreadPool destructor until the tests return.
|
|
301
|
+
"""
|
|
302
|
+
if self._shut_down:
|
|
303
|
+
return
|
|
304
|
+
self._shut_down = True
|
|
305
|
+
self.stop_polling()
|
|
306
|
+
with self._queue.mutex:
|
|
307
|
+
queued = [runnable for _, runnable in self._queue.queue]
|
|
308
|
+
self._queue.queue.clear()
|
|
309
|
+
running = [ref() for ref in self._active_tests.values()]
|
|
310
|
+
self._active_tests.clear()
|
|
311
|
+
for runnable in queued + running:
|
|
312
|
+
if runnable is None:
|
|
313
|
+
continue
|
|
314
|
+
runnable.cancel()
|
|
315
|
+
for signal in (
|
|
316
|
+
runnable.signals.device_validated,
|
|
317
|
+
runnable.signals.device_validation_started,
|
|
318
|
+
):
|
|
319
|
+
try:
|
|
320
|
+
signal.disconnect()
|
|
321
|
+
except RuntimeError: # nothing left to disconnect
|
|
322
|
+
pass
|
|
323
|
+
self.pool.clear()
|
|
324
|
+
if self.pool.activeThreadCount() > 0:
|
|
325
|
+
_retire_pool(self.pool)
|
|
326
|
+
|
|
228
327
|
def _process_queue(self):
|
|
229
328
|
"""Start new jobs if there is capacity. Runs with specified poll interval."""
|
|
329
|
+
if self._shut_down:
|
|
330
|
+
return
|
|
230
331
|
while not self._queue.empty() and len(self._active_tests) < self.pool.maxThreadCount():
|
|
231
332
|
device_name, runnable = self._queue.get()
|
|
232
333
|
runnable.signals.device_validated.connect(self._on_task_finished)
|
|
@@ -371,6 +472,17 @@ class OphydValidation(BECWidget, QtWidgets.QWidget):
|
|
|
371
472
|
if self.thread_pool_manager:
|
|
372
473
|
self.thread_pool_manager.start_polling()
|
|
373
474
|
|
|
475
|
+
def cleanup(self):
|
|
476
|
+
"""
|
|
477
|
+
Stop all validations without blocking, then clean up the widget.
|
|
478
|
+
|
|
479
|
+
Queued device tests are dropped and results of running ones are discarded; a test that
|
|
480
|
+
is already running cannot be interrupted and finishes in the background.
|
|
481
|
+
"""
|
|
482
|
+
if self.thread_pool_manager is not None:
|
|
483
|
+
self.thread_pool_manager.shutdown()
|
|
484
|
+
super().cleanup()
|
|
485
|
+
|
|
374
486
|
def _create_list_widget_with_label(self, label_text: str) -> BECList:
|
|
375
487
|
"""Setup the running validations section."""
|
|
376
488
|
widget = QtWidgets.QWidget()
|
|
@@ -607,7 +719,9 @@ class OphydValidation(BECWidget, QtWidgets.QWidget):
|
|
|
607
719
|
# and therefore must not have the signal emitted immediately in the same event loop iteration.
|
|
608
720
|
# Otherwise, the dialog would block signal processing.
|
|
609
721
|
QtCore.QTimer.singleShot(
|
|
610
|
-
0,
|
|
722
|
+
0,
|
|
723
|
+
self,
|
|
724
|
+
lambda: self.multiple_validations_completed.emit(devices_already_in_session),
|
|
611
725
|
)
|
|
612
726
|
|
|
613
727
|
def cancel_validation(self, device_name: str) -> None:
|
|
@@ -725,8 +839,10 @@ class OphydValidation(BECWidget, QtWidgets.QWidget):
|
|
|
725
839
|
self, widget: ValidationListItem, connect: bool, force_connect: bool, timeout: float
|
|
726
840
|
) -> None:
|
|
727
841
|
"""Delayed submission of device test to ensure UI updates."""
|
|
842
|
+
# The list item is the context object: the submission is dropped if the item (or this
|
|
843
|
+
# widget, its ancestor) is deleted before the event loop runs it.
|
|
728
844
|
QtCore.QTimer.singleShot(
|
|
729
|
-
0, lambda: self._submit_test(widget, connect, force_connect, timeout)
|
|
845
|
+
0, widget, lambda: self._submit_test(widget, connect, force_connect, timeout)
|
|
730
846
|
)
|
|
731
847
|
|
|
732
848
|
def _submit_test(
|
{bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/widgets/services/bec_queue/bec_queue.py
RENAMED
|
@@ -12,6 +12,7 @@ from qtpy.QtWidgets import QHeaderView, QLabel, QTableWidget, QTableWidgetItem,
|
|
|
12
12
|
|
|
13
13
|
from bec_widgets.utils.bec_connector import ConnectionConfig
|
|
14
14
|
from bec_widgets.utils.bec_widget import BECWidget
|
|
15
|
+
from bec_widgets.utils.error_popups import SafeSlot
|
|
15
16
|
from bec_widgets.utils.toolbars.actions import WidgetAction
|
|
16
17
|
from bec_widgets.utils.toolbars.bundles import ToolbarBundle
|
|
17
18
|
from bec_widgets.utils.toolbars.toolbar import ModularToolBar
|
|
@@ -264,15 +265,21 @@ class BECQueue(BECWidget, QWidget):
|
|
|
264
265
|
scan_type (str): The scan type.
|
|
265
266
|
status (str): The status.
|
|
266
267
|
tooltip (str): Optional tooltip to display (pretty-printed user metadata).
|
|
267
|
-
abort_request_id (str):
|
|
268
|
+
abort_request_id (str): Request id to abort. Rows without one, such as the
|
|
269
|
+
empty-queue placeholder, get no abort button.
|
|
268
270
|
"""
|
|
269
|
-
abort_button = self._create_abort_button(abort_request_id)
|
|
270
|
-
abort_button.button.clicked.connect(self.delete_selected_row)
|
|
271
|
-
|
|
272
271
|
self.table.setItem(index, 0, self.format_item(scan_number, tooltip=tooltip))
|
|
273
272
|
self.table.setItem(index, 1, self.format_item(scan_name, tooltip=tooltip))
|
|
274
273
|
self.table.setItem(index, 2, self.format_item(scan_type, tooltip=tooltip))
|
|
275
274
|
self.table.setItem(index, 3, self.format_item(status, status=True, tooltip=tooltip))
|
|
275
|
+
|
|
276
|
+
if not abort_request_id:
|
|
277
|
+
# Nothing to target. Never fall back to request_id=None: AbortButton treats it as
|
|
278
|
+
# "abort the current request", which would hit a scan this row does not show.
|
|
279
|
+
self.table.removeCellWidget(index, 4)
|
|
280
|
+
return
|
|
281
|
+
abort_button = self._create_abort_button(abort_request_id)
|
|
282
|
+
abort_button.button.clicked.connect(self.delete_selected_row)
|
|
276
283
|
self.table.setCellWidget(index, 4, abort_button)
|
|
277
284
|
|
|
278
285
|
def _create_abort_button(self, request_id: str) -> AbortButton:
|
|
@@ -300,13 +307,39 @@ class BECQueue(BECWidget, QWidget):
|
|
|
300
307
|
|
|
301
308
|
return abort_button
|
|
302
309
|
|
|
310
|
+
@SafeSlot()
|
|
303
311
|
def delete_selected_row(self):
|
|
312
|
+
"""
|
|
313
|
+
Remove the table row whose abort button was clicked.
|
|
304
314
|
|
|
305
|
-
button
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
315
|
+
The signal is emitted by the inner button of an AbortButton cell widget, whose position is
|
|
316
|
+
relative to that cell widget and cannot be mapped to a table row. The row is therefore
|
|
317
|
+
resolved by looking up which row holds the clicked AbortButton. Removing the row also
|
|
318
|
+
deletes its cell widget.
|
|
319
|
+
"""
|
|
320
|
+
abort_button = self._find_abort_button(self.sender())
|
|
321
|
+
if abort_button is None:
|
|
322
|
+
return
|
|
323
|
+
for row in range(self.table.rowCount()):
|
|
324
|
+
if self.table.cellWidget(row, 4) is abort_button:
|
|
325
|
+
self.table.removeRow(row)
|
|
326
|
+
return
|
|
327
|
+
|
|
328
|
+
@staticmethod
|
|
329
|
+
def _find_abort_button(widget: QWidget | None) -> AbortButton | None:
|
|
330
|
+
"""
|
|
331
|
+
Return the AbortButton that contains the given widget.
|
|
332
|
+
|
|
333
|
+
Args:
|
|
334
|
+
widget(QWidget | None): The widget that emitted the signal, typically the inner button
|
|
335
|
+
of an AbortButton.
|
|
336
|
+
|
|
337
|
+
Returns:
|
|
338
|
+
AbortButton | None: The enclosing AbortButton, or None if there is none.
|
|
339
|
+
"""
|
|
340
|
+
while widget is not None and not isinstance(widget, AbortButton):
|
|
341
|
+
widget = widget.parent()
|
|
342
|
+
return widget
|
|
310
343
|
|
|
311
344
|
def reset_content(self):
|
|
312
345
|
"""
|
|
Binary file
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
from qtpy.QtCore import Qt
|
|
2
|
-
from qtpy.QtWidgets import QTableWidget
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
class BECTable(QTableWidget):
|
|
6
|
-
"""Table widget with custom keyPressEvent to delete rows with backspace or delete key"""
|
|
7
|
-
|
|
8
|
-
def keyPressEvent(self, event) -> None:
|
|
9
|
-
"""
|
|
10
|
-
Delete selected rows with backspace or delete key
|
|
11
|
-
|
|
12
|
-
Args:
|
|
13
|
-
event: keyPressEvent
|
|
14
|
-
"""
|
|
15
|
-
if event.key() in (Qt.Key_Backspace, Qt.Key_Delete):
|
|
16
|
-
selected_ranges = self.selectedRanges()
|
|
17
|
-
for selected_range in selected_ranges:
|
|
18
|
-
for row in range(selected_range.topRow(), selected_range.bottomRow() + 1):
|
|
19
|
-
self.removeRow(row)
|
|
20
|
-
else:
|
|
21
|
-
super().keyPressEvent(event)
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
# from qtpy.QtGui import QDoubleValidator
|
|
2
|
-
# from qtpy.QtWidgets import QStyledItemDelegate, QLineEdit
|
|
3
|
-
|
|
4
|
-
from qtpy.QtGui import QDoubleValidator
|
|
5
|
-
from qtpy.QtWidgets import QLineEdit, QStyledItemDelegate
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
class DoubleValidationDelegate(QStyledItemDelegate):
|
|
9
|
-
def createEditor(self, parent, option, index):
|
|
10
|
-
editor = QLineEdit(parent)
|
|
11
|
-
validator = QDoubleValidator()
|
|
12
|
-
editor.setValidator(validator)
|
|
13
|
-
return editor
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/applications/navigation_centre/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
{bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/applications/navigation_centre/side_bar.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/applications/views/admin_view/__init__.py
RENAMED
|
File without changes
|
{bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/applications/views/admin_view/admin_view.py
RENAMED
|
File without changes
|
{bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/applications/views/developer_view/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/applications/views/dock_area_view/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/assets/app_icons/widget_launch_tile.png
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/examples/plugin_example_pyside/__init__.py
RENAMED
|
File without changes
|
{bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/examples/plugin_example_pyside/main.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/examples/plugin_example_pyside/tictactoe.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/utils/bec_plugin_manager/create/__init__.py
RENAMED
|
File without changes
|
{bec_widgets-3.40.0 → bec_widgets-3.40.2}/bec_widgets/utils/bec_plugin_manager/create/widget.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|