bec-widgets 2.9.2__tar.gz → 2.10.1__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-2.9.2 → bec_widgets-2.10.1}/.github/workflows/end2end-conda.yml +9 -1
- {bec_widgets-2.9.2 → bec_widgets-2.10.1}/CHANGELOG.md +34 -0
- {bec_widgets-2.9.2 → bec_widgets-2.10.1}/PKG-INFO +1 -2
- {bec_widgets-2.9.2 → bec_widgets-2.10.1}/bec_widgets/cli/client.py +42 -0
- {bec_widgets-2.9.2 → bec_widgets-2.10.1}/bec_widgets/widgets/plots/waveform/waveform.py +192 -10
- {bec_widgets-2.9.2 → bec_widgets-2.10.1}/pyproject.toml +1 -2
- bec_widgets-2.9.2/bec_widgets/widgets/editors/console/console.py +0 -870
- bec_widgets-2.9.2/bec_widgets/widgets/editors/console/console.pyproject +0 -1
- bec_widgets-2.9.2/bec_widgets/widgets/editors/console/console_plugin.py +0 -58
- bec_widgets-2.9.2/bec_widgets/widgets/editors/console/register_console.py +0 -15
- bec_widgets-2.9.2/bec_widgets/widgets/utility/visual/dark_mode_button/__init__.py +0 -0
- {bec_widgets-2.9.2 → bec_widgets-2.10.1}/.git_hooks/pre-commit +0 -0
- {bec_widgets-2.9.2 → bec_widgets-2.10.1}/.github/ISSUE_TEMPLATE/bug_report.yml +0 -0
- {bec_widgets-2.9.2 → bec_widgets-2.10.1}/.github/ISSUE_TEMPLATE/documentation_update.md +0 -0
- {bec_widgets-2.9.2 → bec_widgets-2.10.1}/.github/ISSUE_TEMPLATE/feature_request.md +0 -0
- {bec_widgets-2.9.2 → bec_widgets-2.10.1}/.github/actions/bw_install/action.yml +0 -0
- {bec_widgets-2.9.2 → bec_widgets-2.10.1}/.github/pull_request_template.md +0 -0
- {bec_widgets-2.9.2 → bec_widgets-2.10.1}/.github/scripts/pr_issue_sync/pr_issue_sync.py +0 -0
- {bec_widgets-2.9.2 → bec_widgets-2.10.1}/.github/scripts/pr_issue_sync/requirements.txt +0 -0
- {bec_widgets-2.9.2 → bec_widgets-2.10.1}/.github/workflows/check_pr.yml +0 -0
- {bec_widgets-2.9.2 → bec_widgets-2.10.1}/.github/workflows/ci.yml +0 -0
- {bec_widgets-2.9.2 → bec_widgets-2.10.1}/.github/workflows/formatter.yml +0 -0
- {bec_widgets-2.9.2 → bec_widgets-2.10.1}/.github/workflows/generate-cli-check.yml +0 -0
- {bec_widgets-2.9.2 → bec_widgets-2.10.1}/.github/workflows/pytest-matrix.yml +0 -0
- {bec_widgets-2.9.2 → bec_widgets-2.10.1}/.github/workflows/pytest.yml +0 -0
- {bec_widgets-2.9.2 → bec_widgets-2.10.1}/.github/workflows/semantic_release.yml +0 -0
- {bec_widgets-2.9.2 → bec_widgets-2.10.1}/.github/workflows/sync-issues-pr.yml +0 -0
- {bec_widgets-2.9.2 → bec_widgets-2.10.1}/.gitignore +0 -0
- {bec_widgets-2.9.2 → bec_widgets-2.10.1}/.gitlab-ci.yml +0 -0
- {bec_widgets-2.9.2 → bec_widgets-2.10.1}/.pylintrc +0 -0
- {bec_widgets-2.9.2 → bec_widgets-2.10.1}/.readthedocs.yaml +0 -0
- {bec_widgets-2.9.2 → bec_widgets-2.10.1}/LICENSE +0 -0
- {bec_widgets-2.9.2 → bec_widgets-2.10.1}/README.md +0 -0
- {bec_widgets-2.9.2 → bec_widgets-2.10.1}/bec_widgets/__init__.py +0 -0
- {bec_widgets-2.9.2 → bec_widgets-2.10.1}/bec_widgets/applications/__init__.py +0 -0
- {bec_widgets-2.9.2 → bec_widgets-2.10.1}/bec_widgets/applications/bw_launch.py +0 -0
- {bec_widgets-2.9.2 → bec_widgets-2.10.1}/bec_widgets/applications/launch_window.py +0 -0
- {bec_widgets-2.9.2 → bec_widgets-2.10.1}/bec_widgets/assets/app_icons/BEC-General-App.png +0 -0
- {bec_widgets-2.9.2 → bec_widgets-2.10.1}/bec_widgets/assets/app_icons/alignment_1d.png +0 -0
- {bec_widgets-2.9.2 → bec_widgets-2.10.1}/bec_widgets/assets/app_icons/auto_update.png +0 -0
- {bec_widgets-2.9.2 → bec_widgets-2.10.1}/bec_widgets/assets/app_icons/bec_widgets_icon.png +0 -0
- {bec_widgets-2.9.2 → bec_widgets-2.10.1}/bec_widgets/assets/app_icons/ui_loader_tile.png +0 -0
- {bec_widgets-2.9.2 → bec_widgets-2.10.1}/bec_widgets/assets/app_icons/widget_launch_tile.png +0 -0
- {bec_widgets-2.9.2 → bec_widgets-2.10.1}/bec_widgets/cli/__init__.py +0 -0
- {bec_widgets-2.9.2 → bec_widgets-2.10.1}/bec_widgets/cli/client_utils.py +0 -0
- {bec_widgets-2.9.2 → bec_widgets-2.10.1}/bec_widgets/cli/generate_cli.py +0 -0
- {bec_widgets-2.9.2 → bec_widgets-2.10.1}/bec_widgets/cli/rpc/__init__.py +0 -0
- {bec_widgets-2.9.2 → bec_widgets-2.10.1}/bec_widgets/cli/rpc/rpc_base.py +0 -0
- {bec_widgets-2.9.2 → bec_widgets-2.10.1}/bec_widgets/cli/rpc/rpc_register.py +0 -0
- {bec_widgets-2.9.2 → bec_widgets-2.10.1}/bec_widgets/cli/rpc/rpc_widget_handler.py +0 -0
- {bec_widgets-2.9.2 → bec_widgets-2.10.1}/bec_widgets/cli/server.py +0 -0
- {bec_widgets-2.9.2 → bec_widgets-2.10.1}/bec_widgets/examples/__init__.py +0 -0
- {bec_widgets-2.9.2 → bec_widgets-2.10.1}/bec_widgets/examples/general_app/__init__.py +0 -0
- {bec_widgets-2.9.2 → bec_widgets-2.10.1}/bec_widgets/examples/general_app/general_app.py +0 -0
- {bec_widgets-2.9.2 → bec_widgets-2.10.1}/bec_widgets/examples/general_app/general_app.ui +0 -0
- {bec_widgets-2.9.2 → bec_widgets-2.10.1}/bec_widgets/examples/general_app/web_links.py +0 -0
- {bec_widgets-2.9.2 → bec_widgets-2.10.1}/bec_widgets/examples/jupyter_console/__init__.py +0 -0
- {bec_widgets-2.9.2 → bec_widgets-2.10.1}/bec_widgets/examples/jupyter_console/jupyter_console_window.py +0 -0
- {bec_widgets-2.9.2 → bec_widgets-2.10.1}/bec_widgets/examples/plugin_example_pyside/__init__.py +0 -0
- {bec_widgets-2.9.2 → bec_widgets-2.10.1}/bec_widgets/examples/plugin_example_pyside/main.py +0 -0
- {bec_widgets-2.9.2 → bec_widgets-2.10.1}/bec_widgets/examples/plugin_example_pyside/registertictactoe.py +0 -0
- {bec_widgets-2.9.2 → bec_widgets-2.10.1}/bec_widgets/examples/plugin_example_pyside/taskmenuextension.pyproject +0 -0
- {bec_widgets-2.9.2 → bec_widgets-2.10.1}/bec_widgets/examples/plugin_example_pyside/tictactoe.py +0 -0
- {bec_widgets-2.9.2 → bec_widgets-2.10.1}/bec_widgets/examples/plugin_example_pyside/tictactoeplugin.py +0 -0
- {bec_widgets-2.9.2 → bec_widgets-2.10.1}/bec_widgets/examples/plugin_example_pyside/tictactoetaskmenu.py +0 -0
- {bec_widgets-2.9.2 → bec_widgets-2.10.1}/bec_widgets/tests/__init__.py +0 -0
- {bec_widgets-2.9.2 → bec_widgets-2.10.1}/bec_widgets/tests/utils.py +0 -0
- {bec_widgets-2.9.2 → bec_widgets-2.10.1}/bec_widgets/utils/__init__.py +0 -0
- {bec_widgets-2.9.2 → bec_widgets-2.10.1}/bec_widgets/utils/bec_connector.py +0 -0
- {bec_widgets-2.9.2 → bec_widgets-2.10.1}/bec_widgets/utils/bec_designer.py +0 -0
- {bec_widgets-2.9.2 → bec_widgets-2.10.1}/bec_widgets/utils/bec_dispatcher.py +0 -0
- {bec_widgets-2.9.2 → bec_widgets-2.10.1}/bec_widgets/utils/bec_plugin_helper.py +0 -0
- {bec_widgets-2.9.2 → bec_widgets-2.10.1}/bec_widgets/utils/bec_signal_proxy.py +0 -0
- {bec_widgets-2.9.2 → bec_widgets-2.10.1}/bec_widgets/utils/bec_table.py +0 -0
- {bec_widgets-2.9.2 → bec_widgets-2.10.1}/bec_widgets/utils/bec_widget.py +0 -0
- {bec_widgets-2.9.2 → bec_widgets-2.10.1}/bec_widgets/utils/collapsible_panel_manager.py +0 -0
- {bec_widgets-2.9.2 → bec_widgets-2.10.1}/bec_widgets/utils/colors.py +0 -0
- {bec_widgets-2.9.2 → bec_widgets-2.10.1}/bec_widgets/utils/compact_popup.py +0 -0
- {bec_widgets-2.9.2 → bec_widgets-2.10.1}/bec_widgets/utils/container_utils.py +0 -0
- {bec_widgets-2.9.2 → bec_widgets-2.10.1}/bec_widgets/utils/crosshair.py +0 -0
- {bec_widgets-2.9.2 → bec_widgets-2.10.1}/bec_widgets/utils/entry_validator.py +0 -0
- {bec_widgets-2.9.2 → bec_widgets-2.10.1}/bec_widgets/utils/error_popups.py +0 -0
- {bec_widgets-2.9.2 → bec_widgets-2.10.1}/bec_widgets/utils/expandable_frame.py +0 -0
- {bec_widgets-2.9.2 → bec_widgets-2.10.1}/bec_widgets/utils/filter_io.py +0 -0
- {bec_widgets-2.9.2 → bec_widgets-2.10.1}/bec_widgets/utils/forms_from_types/__init__.py +0 -0
- {bec_widgets-2.9.2 → bec_widgets-2.10.1}/bec_widgets/utils/forms_from_types/forms.py +0 -0
- {bec_widgets-2.9.2 → bec_widgets-2.10.1}/bec_widgets/utils/forms_from_types/items.py +0 -0
- {bec_widgets-2.9.2 → bec_widgets-2.10.1}/bec_widgets/utils/fps_counter.py +0 -0
- {bec_widgets-2.9.2 → bec_widgets-2.10.1}/bec_widgets/utils/generate_designer_plugin.py +0 -0
- {bec_widgets-2.9.2 → bec_widgets-2.10.1}/bec_widgets/utils/layout_manager.py +0 -0
- {bec_widgets-2.9.2 → bec_widgets-2.10.1}/bec_widgets/utils/linear_region_selector.py +0 -0
- {bec_widgets-2.9.2 → bec_widgets-2.10.1}/bec_widgets/utils/name_utils.py +0 -0
- {bec_widgets-2.9.2 → bec_widgets-2.10.1}/bec_widgets/utils/ophyd_kind_util.py +0 -0
- {bec_widgets-2.9.2 → bec_widgets-2.10.1}/bec_widgets/utils/palette_viewer.py +0 -0
- {bec_widgets-2.9.2 → bec_widgets-2.10.1}/bec_widgets/utils/plot_indicator_items.py +0 -0
- {bec_widgets-2.9.2 → bec_widgets-2.10.1}/bec_widgets/utils/plugin_templates/plugin.template +0 -0
- {bec_widgets-2.9.2 → bec_widgets-2.10.1}/bec_widgets/utils/plugin_templates/register.template +0 -0
- {bec_widgets-2.9.2 → bec_widgets-2.10.1}/bec_widgets/utils/plugin_utils.py +0 -0
- {bec_widgets-2.9.2 → bec_widgets-2.10.1}/bec_widgets/utils/redis_message_waiter.py +0 -0
- {bec_widgets-2.9.2 → bec_widgets-2.10.1}/bec_widgets/utils/reference_utils.py +0 -0
- {bec_widgets-2.9.2 → bec_widgets-2.10.1}/bec_widgets/utils/round_frame.py +0 -0
- {bec_widgets-2.9.2 → bec_widgets-2.10.1}/bec_widgets/utils/rpc_decorator.py +0 -0
- {bec_widgets-2.9.2 → bec_widgets-2.10.1}/bec_widgets/utils/rpc_server.py +0 -0
- {bec_widgets-2.9.2 → bec_widgets-2.10.1}/bec_widgets/utils/serialization.py +0 -0
- {bec_widgets-2.9.2 → bec_widgets-2.10.1}/bec_widgets/utils/settings_dialog.py +0 -0
- {bec_widgets-2.9.2 → bec_widgets-2.10.1}/bec_widgets/utils/side_panel.py +0 -0
- {bec_widgets-2.9.2 → bec_widgets-2.10.1}/bec_widgets/utils/thread_checker.py +0 -0
- {bec_widgets-2.9.2 → bec_widgets-2.10.1}/bec_widgets/utils/toolbar.py +0 -0
- {bec_widgets-2.9.2 → bec_widgets-2.10.1}/bec_widgets/utils/ui_loader.py +0 -0
- {bec_widgets-2.9.2 → bec_widgets-2.10.1}/bec_widgets/utils/validator_delegate.py +0 -0
- {bec_widgets-2.9.2 → bec_widgets-2.10.1}/bec_widgets/utils/widget_io.py +0 -0
- {bec_widgets-2.9.2 → bec_widgets-2.10.1}/bec_widgets/utils/widget_state_manager.py +0 -0
- {bec_widgets-2.9.2 → bec_widgets-2.10.1}/bec_widgets/utils/yaml_dialog.py +0 -0
- {bec_widgets-2.9.2 → bec_widgets-2.10.1}/bec_widgets/widgets/__init__.py +0 -0
- {bec_widgets-2.9.2 → bec_widgets-2.10.1}/bec_widgets/widgets/containers/__init__.py +0 -0
- {bec_widgets-2.9.2 → bec_widgets-2.10.1}/bec_widgets/widgets/containers/auto_update/__init__.py +0 -0
- {bec_widgets-2.9.2 → bec_widgets-2.10.1}/bec_widgets/widgets/containers/auto_update/auto_updates.py +0 -0
- {bec_widgets-2.9.2 → bec_widgets-2.10.1}/bec_widgets/widgets/containers/dock/__init__.py +0 -0
- {bec_widgets-2.9.2 → bec_widgets-2.10.1}/bec_widgets/widgets/containers/dock/dock.py +0 -0
- {bec_widgets-2.9.2 → bec_widgets-2.10.1}/bec_widgets/widgets/containers/dock/dock_area.py +0 -0
- {bec_widgets-2.9.2 → bec_widgets-2.10.1}/bec_widgets/widgets/containers/dock/dock_area.pyproject +0 -0
- {bec_widgets-2.9.2 → bec_widgets-2.10.1}/bec_widgets/widgets/containers/dock/dock_area_plugin.py +0 -0
- {bec_widgets-2.9.2 → bec_widgets-2.10.1}/bec_widgets/widgets/containers/dock/register_dock_area.py +0 -0
- {bec_widgets-2.9.2 → bec_widgets-2.10.1}/bec_widgets/widgets/containers/layout_manager/__init__.py +0 -0
- {bec_widgets-2.9.2 → bec_widgets-2.10.1}/bec_widgets/widgets/containers/layout_manager/layout_manager.py +0 -0
- {bec_widgets-2.9.2 → bec_widgets-2.10.1}/bec_widgets/widgets/containers/main_window/__init__.py +0 -0
- {bec_widgets-2.9.2 → bec_widgets-2.10.1}/bec_widgets/widgets/containers/main_window/addons/__init__.py +0 -0
- {bec_widgets-2.9.2 → bec_widgets-2.10.1}/bec_widgets/widgets/containers/main_window/addons/web_links.py +0 -0
- {bec_widgets-2.9.2 → bec_widgets-2.10.1}/bec_widgets/widgets/containers/main_window/main_window.py +0 -0
- {bec_widgets-2.9.2 → bec_widgets-2.10.1}/bec_widgets/widgets/control/__init__.py +0 -0
- {bec_widgets-2.9.2 → bec_widgets-2.10.1}/bec_widgets/widgets/control/buttons/__init__.py +0 -0
- {bec_widgets-2.9.2 → bec_widgets-2.10.1}/bec_widgets/widgets/control/buttons/button_abort/__init__.py +0 -0
- {bec_widgets-2.9.2 → bec_widgets-2.10.1}/bec_widgets/widgets/control/buttons/button_abort/abort_button.pyproject +0 -0
- {bec_widgets-2.9.2 → bec_widgets-2.10.1}/bec_widgets/widgets/control/buttons/button_abort/abort_button_plugin.py +0 -0
- {bec_widgets-2.9.2 → bec_widgets-2.10.1}/bec_widgets/widgets/control/buttons/button_abort/button_abort.py +0 -0
- {bec_widgets-2.9.2 → bec_widgets-2.10.1}/bec_widgets/widgets/control/buttons/button_abort/register_abort_button.py +0 -0
- {bec_widgets-2.9.2 → bec_widgets-2.10.1}/bec_widgets/widgets/control/buttons/button_reset/__init__.py +0 -0
- {bec_widgets-2.9.2 → bec_widgets-2.10.1}/bec_widgets/widgets/control/buttons/button_reset/button_reset.py +0 -0
- {bec_widgets-2.9.2 → bec_widgets-2.10.1}/bec_widgets/widgets/control/buttons/button_reset/register_reset_button.py +0 -0
- {bec_widgets-2.9.2 → bec_widgets-2.10.1}/bec_widgets/widgets/control/buttons/button_reset/reset_button.pyproject +0 -0
- {bec_widgets-2.9.2 → bec_widgets-2.10.1}/bec_widgets/widgets/control/buttons/button_reset/reset_button_plugin.py +0 -0
- {bec_widgets-2.9.2 → bec_widgets-2.10.1}/bec_widgets/widgets/control/buttons/button_resume/__init__.py +0 -0
- {bec_widgets-2.9.2 → bec_widgets-2.10.1}/bec_widgets/widgets/control/buttons/button_resume/button_resume.py +0 -0
- {bec_widgets-2.9.2 → bec_widgets-2.10.1}/bec_widgets/widgets/control/buttons/button_resume/register_resume_button.py +0 -0
- {bec_widgets-2.9.2 → bec_widgets-2.10.1}/bec_widgets/widgets/control/buttons/button_resume/resume_button.pyproject +0 -0
- {bec_widgets-2.9.2 → bec_widgets-2.10.1}/bec_widgets/widgets/control/buttons/button_resume/resume_button_plugin.py +0 -0
- {bec_widgets-2.9.2 → bec_widgets-2.10.1}/bec_widgets/widgets/control/buttons/stop_button/__init__.py +0 -0
- {bec_widgets-2.9.2 → bec_widgets-2.10.1}/bec_widgets/widgets/control/buttons/stop_button/register_stop_button.py +0 -0
- {bec_widgets-2.9.2 → bec_widgets-2.10.1}/bec_widgets/widgets/control/buttons/stop_button/stop_button.py +0 -0
- {bec_widgets-2.9.2 → bec_widgets-2.10.1}/bec_widgets/widgets/control/buttons/stop_button/stop_button.pyproject +0 -0
- {bec_widgets-2.9.2 → bec_widgets-2.10.1}/bec_widgets/widgets/control/buttons/stop_button/stop_button_plugin.py +0 -0
- {bec_widgets-2.9.2 → bec_widgets-2.10.1}/bec_widgets/widgets/control/device_control/__init__.py +0 -0
- {bec_widgets-2.9.2 → bec_widgets-2.10.1}/bec_widgets/widgets/control/device_control/position_indicator/__init__.py +0 -0
- {bec_widgets-2.9.2 → bec_widgets-2.10.1}/bec_widgets/widgets/control/device_control/position_indicator/position_indicator.py +0 -0
- {bec_widgets-2.9.2 → bec_widgets-2.10.1}/bec_widgets/widgets/control/device_control/position_indicator/position_indicator.pyproject +0 -0
- {bec_widgets-2.9.2 → bec_widgets-2.10.1}/bec_widgets/widgets/control/device_control/position_indicator/position_indicator_plugin.py +0 -0
- {bec_widgets-2.9.2 → bec_widgets-2.10.1}/bec_widgets/widgets/control/device_control/position_indicator/register_position_indicator.py +0 -0
- {bec_widgets-2.9.2 → bec_widgets-2.10.1}/bec_widgets/widgets/control/device_control/positioner_box/__init__.py +0 -0
- {bec_widgets-2.9.2 → bec_widgets-2.10.1}/bec_widgets/widgets/control/device_control/positioner_box/_base/__init__.py +0 -0
- {bec_widgets-2.9.2 → bec_widgets-2.10.1}/bec_widgets/widgets/control/device_control/positioner_box/_base/positioner_box_base.py +0 -0
- {bec_widgets-2.9.2 → bec_widgets-2.10.1}/bec_widgets/widgets/control/device_control/positioner_box/positioner_box/__init__.py +0 -0
- {bec_widgets-2.9.2 → bec_widgets-2.10.1}/bec_widgets/widgets/control/device_control/positioner_box/positioner_box/positioner_box.py +0 -0
- {bec_widgets-2.9.2 → bec_widgets-2.10.1}/bec_widgets/widgets/control/device_control/positioner_box/positioner_box/positioner_box.pyproject +0 -0
- {bec_widgets-2.9.2 → bec_widgets-2.10.1}/bec_widgets/widgets/control/device_control/positioner_box/positioner_box/positioner_box.ui +0 -0
- {bec_widgets-2.9.2 → bec_widgets-2.10.1}/bec_widgets/widgets/control/device_control/positioner_box/positioner_box/positioner_box_plugin.py +0 -0
- {bec_widgets-2.9.2 → bec_widgets-2.10.1}/bec_widgets/widgets/control/device_control/positioner_box/positioner_box/register_positioner_box.py +0 -0
- {bec_widgets-2.9.2 → bec_widgets-2.10.1}/bec_widgets/widgets/control/device_control/positioner_box/positioner_box_2d/__init__.py +0 -0
- {bec_widgets-2.9.2 → bec_widgets-2.10.1}/bec_widgets/widgets/control/device_control/positioner_box/positioner_box_2d/positioner_box2_d.pyproject +0 -0
- {bec_widgets-2.9.2 → bec_widgets-2.10.1}/bec_widgets/widgets/control/device_control/positioner_box/positioner_box_2d/positioner_box2_d_plugin.py +0 -0
- {bec_widgets-2.9.2 → bec_widgets-2.10.1}/bec_widgets/widgets/control/device_control/positioner_box/positioner_box_2d/positioner_box_2d.py +0 -0
- {bec_widgets-2.9.2 → bec_widgets-2.10.1}/bec_widgets/widgets/control/device_control/positioner_box/positioner_box_2d/positioner_box_2d.ui +0 -0
- {bec_widgets-2.9.2 → bec_widgets-2.10.1}/bec_widgets/widgets/control/device_control/positioner_box/positioner_box_2d/register_positioner_box2_d.py +0 -0
- {bec_widgets-2.9.2 → bec_widgets-2.10.1}/bec_widgets/widgets/control/device_control/positioner_box/positioner_control_line/positioner_control_line.py +0 -0
- {bec_widgets-2.9.2 → bec_widgets-2.10.1}/bec_widgets/widgets/control/device_control/positioner_box/positioner_control_line/positioner_control_line.pyproject +0 -0
- {bec_widgets-2.9.2 → bec_widgets-2.10.1}/bec_widgets/widgets/control/device_control/positioner_box/positioner_control_line/positioner_control_line.ui +0 -0
- {bec_widgets-2.9.2 → bec_widgets-2.10.1}/bec_widgets/widgets/control/device_control/positioner_box/positioner_control_line/positioner_control_line_plugin.py +0 -0
- {bec_widgets-2.9.2 → bec_widgets-2.10.1}/bec_widgets/widgets/control/device_control/positioner_box/positioner_control_line/register_positioner_control_line.py +0 -0
- {bec_widgets-2.9.2 → bec_widgets-2.10.1}/bec_widgets/widgets/control/device_control/positioner_group/__init__.py +0 -0
- {bec_widgets-2.9.2 → bec_widgets-2.10.1}/bec_widgets/widgets/control/device_control/positioner_group/positioner_group.py +0 -0
- {bec_widgets-2.9.2 → bec_widgets-2.10.1}/bec_widgets/widgets/control/device_control/positioner_group/positioner_group.pyproject +0 -0
- {bec_widgets-2.9.2 → bec_widgets-2.10.1}/bec_widgets/widgets/control/device_control/positioner_group/positioner_group_plugin.py +0 -0
- {bec_widgets-2.9.2 → bec_widgets-2.10.1}/bec_widgets/widgets/control/device_control/positioner_group/register_positioner_group.py +0 -0
- {bec_widgets-2.9.2 → bec_widgets-2.10.1}/bec_widgets/widgets/control/device_input/__init__.py +0 -0
- {bec_widgets-2.9.2 → bec_widgets-2.10.1}/bec_widgets/widgets/control/device_input/base_classes/__init__.py +0 -0
- {bec_widgets-2.9.2 → bec_widgets-2.10.1}/bec_widgets/widgets/control/device_input/base_classes/device_input_base.py +0 -0
- {bec_widgets-2.9.2 → bec_widgets-2.10.1}/bec_widgets/widgets/control/device_input/base_classes/device_signal_input_base.py +0 -0
- {bec_widgets-2.9.2 → bec_widgets-2.10.1}/bec_widgets/widgets/control/device_input/device_combobox/__init__.py +0 -0
- {bec_widgets-2.9.2 → bec_widgets-2.10.1}/bec_widgets/widgets/control/device_input/device_combobox/device_combo_box.pyproject +0 -0
- {bec_widgets-2.9.2 → bec_widgets-2.10.1}/bec_widgets/widgets/control/device_input/device_combobox/device_combo_box_plugin.py +0 -0
- {bec_widgets-2.9.2 → bec_widgets-2.10.1}/bec_widgets/widgets/control/device_input/device_combobox/device_combobox.py +0 -0
- {bec_widgets-2.9.2 → bec_widgets-2.10.1}/bec_widgets/widgets/control/device_input/device_combobox/register_device_combo_box.py +0 -0
- {bec_widgets-2.9.2 → bec_widgets-2.10.1}/bec_widgets/widgets/control/device_input/device_line_edit/__init__.py +0 -0
- {bec_widgets-2.9.2 → bec_widgets-2.10.1}/bec_widgets/widgets/control/device_input/device_line_edit/device_line_edit.py +0 -0
- {bec_widgets-2.9.2 → bec_widgets-2.10.1}/bec_widgets/widgets/control/device_input/device_line_edit/device_line_edit.pyproject +0 -0
- {bec_widgets-2.9.2 → bec_widgets-2.10.1}/bec_widgets/widgets/control/device_input/device_line_edit/device_line_edit_plugin.py +0 -0
- {bec_widgets-2.9.2 → bec_widgets-2.10.1}/bec_widgets/widgets/control/device_input/device_line_edit/register_device_line_edit.py +0 -0
- {bec_widgets-2.9.2 → bec_widgets-2.10.1}/bec_widgets/widgets/control/device_input/signal_combobox/__init__.py +0 -0
- {bec_widgets-2.9.2 → bec_widgets-2.10.1}/bec_widgets/widgets/control/device_input/signal_combobox/register_signal_combo_box.py +0 -0
- {bec_widgets-2.9.2 → bec_widgets-2.10.1}/bec_widgets/widgets/control/device_input/signal_combobox/signal_combo_box.pyproject +0 -0
- {bec_widgets-2.9.2 → bec_widgets-2.10.1}/bec_widgets/widgets/control/device_input/signal_combobox/signal_combo_box_plugin.py +0 -0
- {bec_widgets-2.9.2 → bec_widgets-2.10.1}/bec_widgets/widgets/control/device_input/signal_combobox/signal_combobox.py +0 -0
- {bec_widgets-2.9.2 → bec_widgets-2.10.1}/bec_widgets/widgets/control/device_input/signal_line_edit/__init__.py +0 -0
- {bec_widgets-2.9.2 → bec_widgets-2.10.1}/bec_widgets/widgets/control/device_input/signal_line_edit/register_signal_line_edit.py +0 -0
- {bec_widgets-2.9.2 → bec_widgets-2.10.1}/bec_widgets/widgets/control/device_input/signal_line_edit/signal_line_edit.py +0 -0
- {bec_widgets-2.9.2 → bec_widgets-2.10.1}/bec_widgets/widgets/control/device_input/signal_line_edit/signal_line_edit.pyproject +0 -0
- {bec_widgets-2.9.2 → bec_widgets-2.10.1}/bec_widgets/widgets/control/device_input/signal_line_edit/signal_line_edit_plugin.py +0 -0
- {bec_widgets-2.9.2 → bec_widgets-2.10.1}/bec_widgets/widgets/control/scan_control/__init__.py +0 -0
- {bec_widgets-2.9.2 → bec_widgets-2.10.1}/bec_widgets/widgets/control/scan_control/register_scan_control.py +0 -0
- {bec_widgets-2.9.2 → bec_widgets-2.10.1}/bec_widgets/widgets/control/scan_control/scan_control.py +0 -0
- {bec_widgets-2.9.2 → bec_widgets-2.10.1}/bec_widgets/widgets/control/scan_control/scan_control.pyproject +0 -0
- {bec_widgets-2.9.2 → bec_widgets-2.10.1}/bec_widgets/widgets/control/scan_control/scan_control_plugin.py +0 -0
- {bec_widgets-2.9.2 → bec_widgets-2.10.1}/bec_widgets/widgets/control/scan_control/scan_group_box.py +0 -0
- {bec_widgets-2.9.2 → bec_widgets-2.10.1}/bec_widgets/widgets/dap/__init__.py +0 -0
- {bec_widgets-2.9.2 → bec_widgets-2.10.1}/bec_widgets/widgets/dap/dap_combo_box/__init__.py +0 -0
- {bec_widgets-2.9.2 → bec_widgets-2.10.1}/bec_widgets/widgets/dap/dap_combo_box/dap_combo_box.py +0 -0
- {bec_widgets-2.9.2 → bec_widgets-2.10.1}/bec_widgets/widgets/dap/dap_combo_box/dap_combo_box.pyproject +0 -0
- {bec_widgets-2.9.2 → bec_widgets-2.10.1}/bec_widgets/widgets/dap/dap_combo_box/dap_combo_box_plugin.py +0 -0
- {bec_widgets-2.9.2 → bec_widgets-2.10.1}/bec_widgets/widgets/dap/dap_combo_box/register_dap_combo_box.py +0 -0
- {bec_widgets-2.9.2 → bec_widgets-2.10.1}/bec_widgets/widgets/dap/lmfit_dialog/__init__.py +0 -0
- {bec_widgets-2.9.2 → bec_widgets-2.10.1}/bec_widgets/widgets/dap/lmfit_dialog/lm_fit_dialog.pyproject +0 -0
- {bec_widgets-2.9.2 → bec_widgets-2.10.1}/bec_widgets/widgets/dap/lmfit_dialog/lm_fit_dialog_plugin.py +0 -0
- {bec_widgets-2.9.2 → bec_widgets-2.10.1}/bec_widgets/widgets/dap/lmfit_dialog/lmfit_dialog.py +0 -0
- {bec_widgets-2.9.2 → bec_widgets-2.10.1}/bec_widgets/widgets/dap/lmfit_dialog/lmfit_dialog_compact.ui +0 -0
- {bec_widgets-2.9.2 → bec_widgets-2.10.1}/bec_widgets/widgets/dap/lmfit_dialog/lmfit_dialog_vertical.ui +0 -0
- {bec_widgets-2.9.2 → bec_widgets-2.10.1}/bec_widgets/widgets/dap/lmfit_dialog/register_lm_fit_dialog.py +0 -0
- {bec_widgets-2.9.2 → bec_widgets-2.10.1}/bec_widgets/widgets/editors/__init__.py +0 -0
- {bec_widgets-2.9.2 → bec_widgets-2.10.1}/bec_widgets/widgets/editors/dict_backed_table.py +0 -0
- {bec_widgets-2.9.2/bec_widgets/widgets/editors/console → bec_widgets-2.10.1/bec_widgets/widgets/editors/jupyter_console}/__init__.py +0 -0
- {bec_widgets-2.9.2 → bec_widgets-2.10.1}/bec_widgets/widgets/editors/jupyter_console/jupyter_console.py +0 -0
- {bec_widgets-2.9.2/bec_widgets/widgets/editors/jupyter_console → bec_widgets-2.10.1/bec_widgets/widgets/editors/scan_metadata}/__init__.py +0 -0
- {bec_widgets-2.9.2 → bec_widgets-2.10.1}/bec_widgets/widgets/editors/scan_metadata/_util.py +0 -0
- {bec_widgets-2.9.2 → bec_widgets-2.10.1}/bec_widgets/widgets/editors/scan_metadata/register_scan_metadata.py +0 -0
- {bec_widgets-2.9.2 → bec_widgets-2.10.1}/bec_widgets/widgets/editors/scan_metadata/scan_metadata.py +0 -0
- {bec_widgets-2.9.2 → bec_widgets-2.10.1}/bec_widgets/widgets/editors/scan_metadata/scan_metadata.pyproject +0 -0
- {bec_widgets-2.9.2 → bec_widgets-2.10.1}/bec_widgets/widgets/editors/scan_metadata/scan_metadata_plugin.py +0 -0
- {bec_widgets-2.9.2/bec_widgets/widgets/editors/scan_metadata → bec_widgets-2.10.1/bec_widgets/widgets/editors/text_box}/__init__.py +0 -0
- {bec_widgets-2.9.2 → bec_widgets-2.10.1}/bec_widgets/widgets/editors/text_box/register_text_box.py +0 -0
- {bec_widgets-2.9.2 → bec_widgets-2.10.1}/bec_widgets/widgets/editors/text_box/text_box.py +0 -0
- {bec_widgets-2.9.2 → bec_widgets-2.10.1}/bec_widgets/widgets/editors/text_box/text_box.pyproject +0 -0
- {bec_widgets-2.9.2 → bec_widgets-2.10.1}/bec_widgets/widgets/editors/text_box/text_box_plugin.py +0 -0
- {bec_widgets-2.9.2/bec_widgets/widgets/editors/text_box → bec_widgets-2.10.1/bec_widgets/widgets/editors/vscode}/__init__.py +0 -0
- {bec_widgets-2.9.2 → bec_widgets-2.10.1}/bec_widgets/widgets/editors/vscode/register_vs_code_editor.py +0 -0
- {bec_widgets-2.9.2 → bec_widgets-2.10.1}/bec_widgets/widgets/editors/vscode/vs_code_editor.pyproject +0 -0
- {bec_widgets-2.9.2 → bec_widgets-2.10.1}/bec_widgets/widgets/editors/vscode/vs_code_editor_plugin.py +0 -0
- {bec_widgets-2.9.2 → bec_widgets-2.10.1}/bec_widgets/widgets/editors/vscode/vscode.py +0 -0
- {bec_widgets-2.9.2 → bec_widgets-2.10.1}/bec_widgets/widgets/editors/web_console/register_web_console.py +0 -0
- {bec_widgets-2.9.2 → bec_widgets-2.10.1}/bec_widgets/widgets/editors/web_console/web_console.py +0 -0
- {bec_widgets-2.9.2 → bec_widgets-2.10.1}/bec_widgets/widgets/editors/web_console/web_console.pyproject +0 -0
- {bec_widgets-2.9.2 → bec_widgets-2.10.1}/bec_widgets/widgets/editors/web_console/web_console_plugin.py +0 -0
- {bec_widgets-2.9.2/bec_widgets/widgets/editors/vscode → bec_widgets-2.10.1/bec_widgets/widgets/editors/website}/__init__.py +0 -0
- {bec_widgets-2.9.2 → bec_widgets-2.10.1}/bec_widgets/widgets/editors/website/register_website_widget.py +0 -0
- {bec_widgets-2.9.2 → bec_widgets-2.10.1}/bec_widgets/widgets/editors/website/website.py +0 -0
- {bec_widgets-2.9.2 → bec_widgets-2.10.1}/bec_widgets/widgets/editors/website/website_widget.pyproject +0 -0
- {bec_widgets-2.9.2 → bec_widgets-2.10.1}/bec_widgets/widgets/editors/website/website_widget_plugin.py +0 -0
- {bec_widgets-2.9.2 → bec_widgets-2.10.1}/bec_widgets/widgets/games/__init__.py +0 -0
- {bec_widgets-2.9.2 → bec_widgets-2.10.1}/bec_widgets/widgets/games/minesweeper.py +0 -0
- {bec_widgets-2.9.2 → bec_widgets-2.10.1}/bec_widgets/widgets/games/minesweeper.pyproject +0 -0
- {bec_widgets-2.9.2 → bec_widgets-2.10.1}/bec_widgets/widgets/games/minesweeper_plugin.py +0 -0
- {bec_widgets-2.9.2 → bec_widgets-2.10.1}/bec_widgets/widgets/games/register_minesweeper.py +0 -0
- {bec_widgets-2.9.2/bec_widgets/widgets/editors/website → bec_widgets-2.10.1/bec_widgets/widgets/plots}/__init__.py +0 -0
- {bec_widgets-2.9.2/bec_widgets/widgets/plots → bec_widgets-2.10.1/bec_widgets/widgets/plots/image}/__init__.py +0 -0
- {bec_widgets-2.9.2 → bec_widgets-2.10.1}/bec_widgets/widgets/plots/image/image.py +0 -0
- {bec_widgets-2.9.2 → bec_widgets-2.10.1}/bec_widgets/widgets/plots/image/image.pyproject +0 -0
- {bec_widgets-2.9.2 → bec_widgets-2.10.1}/bec_widgets/widgets/plots/image/image_item.py +0 -0
- {bec_widgets-2.9.2 → bec_widgets-2.10.1}/bec_widgets/widgets/plots/image/image_plugin.py +0 -0
- {bec_widgets-2.9.2 → bec_widgets-2.10.1}/bec_widgets/widgets/plots/image/image_processor.py +0 -0
- {bec_widgets-2.9.2 → bec_widgets-2.10.1}/bec_widgets/widgets/plots/image/image_roi_plot.py +0 -0
- {bec_widgets-2.9.2 → bec_widgets-2.10.1}/bec_widgets/widgets/plots/image/register_image.py +0 -0
- {bec_widgets-2.9.2/bec_widgets/widgets/plots/image → bec_widgets-2.10.1/bec_widgets/widgets/plots/image/setting_widgets}/__init__.py +0 -0
- {bec_widgets-2.9.2 → bec_widgets-2.10.1}/bec_widgets/widgets/plots/image/setting_widgets/image_roi_tree.py +0 -0
- {bec_widgets-2.9.2/bec_widgets/widgets/plots/image/setting_widgets → bec_widgets-2.10.1/bec_widgets/widgets/plots/image/toolbar_bundles}/__init__.py +0 -0
- {bec_widgets-2.9.2 → bec_widgets-2.10.1}/bec_widgets/widgets/plots/image/toolbar_bundles/image_selection.py +0 -0
- {bec_widgets-2.9.2 → bec_widgets-2.10.1}/bec_widgets/widgets/plots/image/toolbar_bundles/processing.py +0 -0
- {bec_widgets-2.9.2/bec_widgets/widgets/plots/image/toolbar_bundles → bec_widgets-2.10.1/bec_widgets/widgets/plots/motor_map}/__init__.py +0 -0
- {bec_widgets-2.9.2 → bec_widgets-2.10.1}/bec_widgets/widgets/plots/motor_map/motor_map.py +0 -0
- {bec_widgets-2.9.2 → bec_widgets-2.10.1}/bec_widgets/widgets/plots/motor_map/motor_map.pyproject +0 -0
- {bec_widgets-2.9.2 → bec_widgets-2.10.1}/bec_widgets/widgets/plots/motor_map/motor_map_plugin.py +0 -0
- {bec_widgets-2.9.2 → bec_widgets-2.10.1}/bec_widgets/widgets/plots/motor_map/register_motor_map.py +0 -0
- {bec_widgets-2.9.2/bec_widgets/widgets/plots/motor_map → bec_widgets-2.10.1/bec_widgets/widgets/plots/motor_map/settings}/__init__.py +0 -0
- {bec_widgets-2.9.2 → bec_widgets-2.10.1}/bec_widgets/widgets/plots/motor_map/settings/motor_map_settings.py +0 -0
- {bec_widgets-2.9.2 → bec_widgets-2.10.1}/bec_widgets/widgets/plots/motor_map/settings/motor_map_settings.ui +0 -0
- {bec_widgets-2.9.2/bec_widgets/widgets/plots/motor_map/settings → bec_widgets-2.10.1/bec_widgets/widgets/plots/motor_map/toolbar_bundles}/__init__.py +0 -0
- {bec_widgets-2.9.2 → bec_widgets-2.10.1}/bec_widgets/widgets/plots/motor_map/toolbar_bundles/motor_selection.py +0 -0
- {bec_widgets-2.9.2/bec_widgets/widgets/plots/motor_map/toolbar_bundles → bec_widgets-2.10.1/bec_widgets/widgets/plots/multi_waveform}/__init__.py +0 -0
- {bec_widgets-2.9.2 → bec_widgets-2.10.1}/bec_widgets/widgets/plots/multi_waveform/multi_waveform.py +0 -0
- {bec_widgets-2.9.2 → bec_widgets-2.10.1}/bec_widgets/widgets/plots/multi_waveform/multi_waveform.pyproject +0 -0
- {bec_widgets-2.9.2 → bec_widgets-2.10.1}/bec_widgets/widgets/plots/multi_waveform/multi_waveform_plugin.py +0 -0
- {bec_widgets-2.9.2 → bec_widgets-2.10.1}/bec_widgets/widgets/plots/multi_waveform/register_multi_waveform.py +0 -0
- {bec_widgets-2.9.2/bec_widgets/widgets/plots/multi_waveform → bec_widgets-2.10.1/bec_widgets/widgets/plots/multi_waveform/settings}/__init__.py +0 -0
- {bec_widgets-2.9.2 → bec_widgets-2.10.1}/bec_widgets/widgets/plots/multi_waveform/settings/control_panel.py +0 -0
- {bec_widgets-2.9.2 → bec_widgets-2.10.1}/bec_widgets/widgets/plots/multi_waveform/settings/multi_waveform_controls.ui +0 -0
- {bec_widgets-2.9.2/bec_widgets/widgets/plots/multi_waveform/settings → bec_widgets-2.10.1/bec_widgets/widgets/plots/multi_waveform/toolbar_bundles}/__init__.py +0 -0
- {bec_widgets-2.9.2 → bec_widgets-2.10.1}/bec_widgets/widgets/plots/multi_waveform/toolbar_bundles/monitor_selection.py +0 -0
- {bec_widgets-2.9.2 → bec_widgets-2.10.1}/bec_widgets/widgets/plots/plot_base.py +0 -0
- {bec_widgets-2.9.2/bec_widgets/widgets/plots/multi_waveform/toolbar_bundles → bec_widgets-2.10.1/bec_widgets/widgets/plots/roi}/__init__.py +0 -0
- {bec_widgets-2.9.2 → bec_widgets-2.10.1}/bec_widgets/widgets/plots/roi/image_roi.py +0 -0
- {bec_widgets-2.9.2/bec_widgets/widgets/plots/roi → bec_widgets-2.10.1/bec_widgets/widgets/plots/scatter_waveform}/__init__.py +0 -0
- {bec_widgets-2.9.2 → bec_widgets-2.10.1}/bec_widgets/widgets/plots/scatter_waveform/register_scatter_waveform.py +0 -0
- {bec_widgets-2.9.2 → bec_widgets-2.10.1}/bec_widgets/widgets/plots/scatter_waveform/scatter_curve.py +0 -0
- {bec_widgets-2.9.2 → bec_widgets-2.10.1}/bec_widgets/widgets/plots/scatter_waveform/scatter_waveform.py +0 -0
- {bec_widgets-2.9.2 → bec_widgets-2.10.1}/bec_widgets/widgets/plots/scatter_waveform/scatter_waveform.pyproject +0 -0
- {bec_widgets-2.9.2 → bec_widgets-2.10.1}/bec_widgets/widgets/plots/scatter_waveform/scatter_waveform_plugin.py +0 -0
- {bec_widgets-2.9.2/bec_widgets/widgets/plots/scatter_waveform → bec_widgets-2.10.1/bec_widgets/widgets/plots/scatter_waveform/settings}/__init__.py +0 -0
- {bec_widgets-2.9.2 → bec_widgets-2.10.1}/bec_widgets/widgets/plots/scatter_waveform/settings/scatter_curve_setting.py +0 -0
- {bec_widgets-2.9.2 → bec_widgets-2.10.1}/bec_widgets/widgets/plots/scatter_waveform/settings/scatter_curve_settings_horizontal.ui +0 -0
- {bec_widgets-2.9.2 → bec_widgets-2.10.1}/bec_widgets/widgets/plots/scatter_waveform/settings/scatter_curve_settings_vertical.ui +0 -0
- {bec_widgets-2.9.2/bec_widgets/widgets/plots/scatter_waveform/settings → bec_widgets-2.10.1/bec_widgets/widgets/plots/setting_menus}/__init__.py +0 -0
- {bec_widgets-2.9.2 → bec_widgets-2.10.1}/bec_widgets/widgets/plots/setting_menus/axis_settings.py +0 -0
- {bec_widgets-2.9.2 → bec_widgets-2.10.1}/bec_widgets/widgets/plots/setting_menus/axis_settings_horizontal.ui +0 -0
- {bec_widgets-2.9.2 → bec_widgets-2.10.1}/bec_widgets/widgets/plots/setting_menus/axis_settings_vertical.ui +0 -0
- {bec_widgets-2.9.2/bec_widgets/widgets/plots/setting_menus → bec_widgets-2.10.1/bec_widgets/widgets/plots/toolbar_bundles}/__init__.py +0 -0
- {bec_widgets-2.9.2 → bec_widgets-2.10.1}/bec_widgets/widgets/plots/toolbar_bundles/mouse_interactions.py +0 -0
- {bec_widgets-2.9.2 → bec_widgets-2.10.1}/bec_widgets/widgets/plots/toolbar_bundles/plot_export.py +0 -0
- {bec_widgets-2.9.2 → bec_widgets-2.10.1}/bec_widgets/widgets/plots/toolbar_bundles/roi_bundle.py +0 -0
- {bec_widgets-2.9.2 → bec_widgets-2.10.1}/bec_widgets/widgets/plots/toolbar_bundles/save_state.py +0 -0
- {bec_widgets-2.9.2/bec_widgets/widgets/plots/toolbar_bundles → bec_widgets-2.10.1/bec_widgets/widgets/plots/waveform}/__init__.py +0 -0
- {bec_widgets-2.9.2 → bec_widgets-2.10.1}/bec_widgets/widgets/plots/waveform/curve.py +0 -0
- {bec_widgets-2.9.2 → bec_widgets-2.10.1}/bec_widgets/widgets/plots/waveform/register_waveform.py +0 -0
- {bec_widgets-2.9.2/bec_widgets/widgets/plots/waveform → bec_widgets-2.10.1/bec_widgets/widgets/plots/waveform/settings}/__init__.py +0 -0
- {bec_widgets-2.9.2/bec_widgets/widgets/plots/waveform/settings → bec_widgets-2.10.1/bec_widgets/widgets/plots/waveform/settings/curve_settings}/__init__.py +0 -0
- {bec_widgets-2.9.2 → bec_widgets-2.10.1}/bec_widgets/widgets/plots/waveform/settings/curve_settings/curve_setting.py +0 -0
- {bec_widgets-2.9.2 → bec_widgets-2.10.1}/bec_widgets/widgets/plots/waveform/settings/curve_settings/curve_tree.py +0 -0
- {bec_widgets-2.9.2/bec_widgets/widgets/plots/waveform/settings/curve_settings → bec_widgets-2.10.1/bec_widgets/widgets/plots/waveform/utils}/__init__.py +0 -0
- {bec_widgets-2.9.2 → bec_widgets-2.10.1}/bec_widgets/widgets/plots/waveform/utils/roi_manager.py +0 -0
- {bec_widgets-2.9.2 → bec_widgets-2.10.1}/bec_widgets/widgets/plots/waveform/waveform.pyproject +0 -0
- {bec_widgets-2.9.2 → bec_widgets-2.10.1}/bec_widgets/widgets/plots/waveform/waveform_plugin.py +0 -0
- {bec_widgets-2.9.2/bec_widgets/widgets/plots/waveform/utils → bec_widgets-2.10.1/bec_widgets/widgets/progress}/__init__.py +0 -0
- {bec_widgets-2.9.2/bec_widgets/widgets/progress → bec_widgets-2.10.1/bec_widgets/widgets/progress/bec_progressbar}/__init__.py +0 -0
- {bec_widgets-2.9.2 → bec_widgets-2.10.1}/bec_widgets/widgets/progress/bec_progressbar/bec_progress_bar.pyproject +0 -0
- {bec_widgets-2.9.2 → bec_widgets-2.10.1}/bec_widgets/widgets/progress/bec_progressbar/bec_progress_bar_plugin.py +0 -0
- {bec_widgets-2.9.2 → bec_widgets-2.10.1}/bec_widgets/widgets/progress/bec_progressbar/bec_progressbar.py +0 -0
- {bec_widgets-2.9.2 → bec_widgets-2.10.1}/bec_widgets/widgets/progress/bec_progressbar/register_bec_progress_bar.py +0 -0
- {bec_widgets-2.9.2 → bec_widgets-2.10.1}/bec_widgets/widgets/progress/ring_progress_bar/__init__.py +0 -0
- {bec_widgets-2.9.2 → bec_widgets-2.10.1}/bec_widgets/widgets/progress/ring_progress_bar/register_ring_progress_bar.py +0 -0
- {bec_widgets-2.9.2 → bec_widgets-2.10.1}/bec_widgets/widgets/progress/ring_progress_bar/ring.py +0 -0
- {bec_widgets-2.9.2 → bec_widgets-2.10.1}/bec_widgets/widgets/progress/ring_progress_bar/ring_progress_bar.py +0 -0
- {bec_widgets-2.9.2 → bec_widgets-2.10.1}/bec_widgets/widgets/progress/ring_progress_bar/ring_progress_bar.pyproject +0 -0
- {bec_widgets-2.9.2 → bec_widgets-2.10.1}/bec_widgets/widgets/progress/ring_progress_bar/ring_progress_bar_plugin.py +0 -0
- {bec_widgets-2.9.2/bec_widgets/widgets/progress/bec_progressbar → bec_widgets-2.10.1/bec_widgets/widgets/services}/__init__.py +0 -0
- {bec_widgets-2.9.2/bec_widgets/widgets/services → bec_widgets-2.10.1/bec_widgets/widgets/services/bec_queue}/__init__.py +0 -0
- {bec_widgets-2.9.2 → bec_widgets-2.10.1}/bec_widgets/widgets/services/bec_queue/bec_queue.py +0 -0
- {bec_widgets-2.9.2 → bec_widgets-2.10.1}/bec_widgets/widgets/services/bec_queue/bec_queue.pyproject +0 -0
- {bec_widgets-2.9.2 → bec_widgets-2.10.1}/bec_widgets/widgets/services/bec_queue/bec_queue_plugin.py +0 -0
- {bec_widgets-2.9.2 → bec_widgets-2.10.1}/bec_widgets/widgets/services/bec_queue/register_bec_queue.py +0 -0
- {bec_widgets-2.9.2/bec_widgets/widgets/services/bec_queue → bec_widgets-2.10.1/bec_widgets/widgets/services/bec_status_box}/__init__.py +0 -0
- {bec_widgets-2.9.2 → bec_widgets-2.10.1}/bec_widgets/widgets/services/bec_status_box/bec_status_box.py +0 -0
- {bec_widgets-2.9.2 → bec_widgets-2.10.1}/bec_widgets/widgets/services/bec_status_box/bec_status_box.pyproject +0 -0
- {bec_widgets-2.9.2 → bec_widgets-2.10.1}/bec_widgets/widgets/services/bec_status_box/bec_status_box_plugin.py +0 -0
- {bec_widgets-2.9.2 → bec_widgets-2.10.1}/bec_widgets/widgets/services/bec_status_box/register_bec_status_box.py +0 -0
- {bec_widgets-2.9.2 → bec_widgets-2.10.1}/bec_widgets/widgets/services/bec_status_box/status_item.py +0 -0
- {bec_widgets-2.9.2/bec_widgets/widgets/services/bec_status_box → bec_widgets-2.10.1/bec_widgets/widgets/services/device_browser}/__init__.py +0 -0
- {bec_widgets-2.9.2 → bec_widgets-2.10.1}/bec_widgets/widgets/services/device_browser/device_browser.py +0 -0
- {bec_widgets-2.9.2 → bec_widgets-2.10.1}/bec_widgets/widgets/services/device_browser/device_browser.pyproject +0 -0
- {bec_widgets-2.9.2 → bec_widgets-2.10.1}/bec_widgets/widgets/services/device_browser/device_browser.ui +0 -0
- {bec_widgets-2.9.2 → bec_widgets-2.10.1}/bec_widgets/widgets/services/device_browser/device_browser_plugin.py +0 -0
- {bec_widgets-2.9.2 → bec_widgets-2.10.1}/bec_widgets/widgets/services/device_browser/device_item/__init__.py +0 -0
- {bec_widgets-2.9.2 → bec_widgets-2.10.1}/bec_widgets/widgets/services/device_browser/device_item/device_item.py +0 -0
- {bec_widgets-2.9.2 → bec_widgets-2.10.1}/bec_widgets/widgets/services/device_browser/register_device_browser.py +0 -0
- {bec_widgets-2.9.2/bec_widgets/widgets/services/device_browser → bec_widgets-2.10.1/bec_widgets/widgets/utility}/__init__.py +0 -0
- {bec_widgets-2.9.2 → bec_widgets-2.10.1}/bec_widgets/widgets/utility/logpanel/__init__.py +0 -0
- {bec_widgets-2.9.2 → bec_widgets-2.10.1}/bec_widgets/widgets/utility/logpanel/_util.py +0 -0
- {bec_widgets-2.9.2 → bec_widgets-2.10.1}/bec_widgets/widgets/utility/logpanel/log_panel.pyproject +0 -0
- {bec_widgets-2.9.2 → bec_widgets-2.10.1}/bec_widgets/widgets/utility/logpanel/log_panel_plugin.py +0 -0
- {bec_widgets-2.9.2 → bec_widgets-2.10.1}/bec_widgets/widgets/utility/logpanel/logpanel.py +0 -0
- {bec_widgets-2.9.2 → bec_widgets-2.10.1}/bec_widgets/widgets/utility/logpanel/register_log_panel.py +0 -0
- {bec_widgets-2.9.2 → bec_widgets-2.10.1}/bec_widgets/widgets/utility/signal_label/register_signal_label.py +0 -0
- {bec_widgets-2.9.2 → bec_widgets-2.10.1}/bec_widgets/widgets/utility/signal_label/signal_label.py +0 -0
- {bec_widgets-2.9.2 → bec_widgets-2.10.1}/bec_widgets/widgets/utility/signal_label/signal_label.pyproject +0 -0
- {bec_widgets-2.9.2 → bec_widgets-2.10.1}/bec_widgets/widgets/utility/signal_label/signal_label_plugin.py +0 -0
- {bec_widgets-2.9.2/bec_widgets/widgets/utility → bec_widgets-2.10.1/bec_widgets/widgets/utility/spinbox}/__init__.py +0 -0
- {bec_widgets-2.9.2 → bec_widgets-2.10.1}/bec_widgets/widgets/utility/spinbox/bec_spin_box.pyproject +0 -0
- {bec_widgets-2.9.2 → bec_widgets-2.10.1}/bec_widgets/widgets/utility/spinbox/bec_spin_box_plugin.py +0 -0
- {bec_widgets-2.9.2 → bec_widgets-2.10.1}/bec_widgets/widgets/utility/spinbox/decimal_spinbox.py +0 -0
- {bec_widgets-2.9.2 → bec_widgets-2.10.1}/bec_widgets/widgets/utility/spinbox/register_bec_spin_box.py +0 -0
- {bec_widgets-2.9.2/bec_widgets/widgets/utility/spinbox → bec_widgets-2.10.1/bec_widgets/widgets/utility/spinner}/__init__.py +0 -0
- {bec_widgets-2.9.2 → bec_widgets-2.10.1}/bec_widgets/widgets/utility/spinner/register_spinner_widget.py +0 -0
- {bec_widgets-2.9.2 → bec_widgets-2.10.1}/bec_widgets/widgets/utility/spinner/spinner.py +0 -0
- {bec_widgets-2.9.2 → bec_widgets-2.10.1}/bec_widgets/widgets/utility/spinner/spinner_widget.pyproject +0 -0
- {bec_widgets-2.9.2 → bec_widgets-2.10.1}/bec_widgets/widgets/utility/spinner/spinner_widget_plugin.py +0 -0
- {bec_widgets-2.9.2/bec_widgets/widgets/utility/spinner → bec_widgets-2.10.1/bec_widgets/widgets/utility/toggle}/__init__.py +0 -0
- {bec_widgets-2.9.2 → bec_widgets-2.10.1}/bec_widgets/widgets/utility/toggle/register_toggle_switch.py +0 -0
- {bec_widgets-2.9.2 → bec_widgets-2.10.1}/bec_widgets/widgets/utility/toggle/toggle.py +0 -0
- {bec_widgets-2.9.2 → bec_widgets-2.10.1}/bec_widgets/widgets/utility/toggle/toggle_switch.pyproject +0 -0
- {bec_widgets-2.9.2 → bec_widgets-2.10.1}/bec_widgets/widgets/utility/toggle/toggle_switch_plugin.py +0 -0
- {bec_widgets-2.9.2/bec_widgets/widgets/utility/toggle → bec_widgets-2.10.1/bec_widgets/widgets/utility/visual}/__init__.py +0 -0
- {bec_widgets-2.9.2/bec_widgets/widgets/utility/visual → bec_widgets-2.10.1/bec_widgets/widgets/utility/visual/color_button}/__init__.py +0 -0
- {bec_widgets-2.9.2 → bec_widgets-2.10.1}/bec_widgets/widgets/utility/visual/color_button/color_button.py +0 -0
- {bec_widgets-2.9.2 → bec_widgets-2.10.1}/bec_widgets/widgets/utility/visual/color_button/color_button.pyproject +0 -0
- {bec_widgets-2.9.2 → bec_widgets-2.10.1}/bec_widgets/widgets/utility/visual/color_button/color_button_plugin.py +0 -0
- {bec_widgets-2.9.2 → bec_widgets-2.10.1}/bec_widgets/widgets/utility/visual/color_button/register_color_button.py +0 -0
- {bec_widgets-2.9.2/bec_widgets/widgets/utility/visual/color_button → bec_widgets-2.10.1/bec_widgets/widgets/utility/visual/color_button_native}/__init__.py +0 -0
- {bec_widgets-2.9.2 → bec_widgets-2.10.1}/bec_widgets/widgets/utility/visual/color_button_native/color_button_native.py +0 -0
- {bec_widgets-2.9.2 → bec_widgets-2.10.1}/bec_widgets/widgets/utility/visual/color_button_native/color_button_native.pyproject +0 -0
- {bec_widgets-2.9.2 → bec_widgets-2.10.1}/bec_widgets/widgets/utility/visual/color_button_native/color_button_native_plugin.py +0 -0
- {bec_widgets-2.9.2 → bec_widgets-2.10.1}/bec_widgets/widgets/utility/visual/color_button_native/register_color_button_native.py +0 -0
- {bec_widgets-2.9.2/bec_widgets/widgets/utility/visual/color_button_native → bec_widgets-2.10.1/bec_widgets/widgets/utility/visual/colormap_selector}/__init__.py +0 -0
- {bec_widgets-2.9.2 → bec_widgets-2.10.1}/bec_widgets/widgets/utility/visual/colormap_selector/colormap_selector.py +0 -0
- {bec_widgets-2.9.2 → bec_widgets-2.10.1}/bec_widgets/widgets/utility/visual/colormap_selector/colormap_selector.pyproject +0 -0
- {bec_widgets-2.9.2 → bec_widgets-2.10.1}/bec_widgets/widgets/utility/visual/colormap_selector/colormap_selector_plugin.py +0 -0
- {bec_widgets-2.9.2 → bec_widgets-2.10.1}/bec_widgets/widgets/utility/visual/colormap_selector/register_colormap_selector.py +0 -0
- {bec_widgets-2.9.2/bec_widgets/widgets/utility/visual/colormap_selector → bec_widgets-2.10.1/bec_widgets/widgets/utility/visual/colormap_widget}/__init__.py +0 -0
- {bec_widgets-2.9.2 → bec_widgets-2.10.1}/bec_widgets/widgets/utility/visual/colormap_widget/bec_color_map_widget.pyproject +0 -0
- {bec_widgets-2.9.2 → bec_widgets-2.10.1}/bec_widgets/widgets/utility/visual/colormap_widget/bec_color_map_widget_plugin.py +0 -0
- {bec_widgets-2.9.2 → bec_widgets-2.10.1}/bec_widgets/widgets/utility/visual/colormap_widget/colormap_widget.py +0 -0
- {bec_widgets-2.9.2 → bec_widgets-2.10.1}/bec_widgets/widgets/utility/visual/colormap_widget/register_bec_color_map_widget.py +0 -0
- {bec_widgets-2.9.2/bec_widgets/widgets/utility/visual/colormap_widget → bec_widgets-2.10.1/bec_widgets/widgets/utility/visual/dark_mode_button}/__init__.py +0 -0
- {bec_widgets-2.9.2 → bec_widgets-2.10.1}/bec_widgets/widgets/utility/visual/dark_mode_button/dark_mode_button.py +0 -0
- {bec_widgets-2.9.2 → bec_widgets-2.10.1}/bec_widgets/widgets/utility/visual/dark_mode_button/dark_mode_button.pyproject +0 -0
- {bec_widgets-2.9.2 → bec_widgets-2.10.1}/bec_widgets/widgets/utility/visual/dark_mode_button/dark_mode_button_plugin.py +0 -0
- {bec_widgets-2.9.2 → bec_widgets-2.10.1}/bec_widgets/widgets/utility/visual/dark_mode_button/register_dark_mode_button.py +0 -0
@@ -47,4 +47,12 @@ jobs:
|
|
47
47
|
source ./bin/install_bec_dev.sh -t
|
48
48
|
cd ../
|
49
49
|
pip install -e ./ophyd_devices -e .[dev,pyside6] -e ./bec_testing_plugin
|
50
|
-
pytest -v --files-path ./ --start-servers --random-order ./tests/end-2-end
|
50
|
+
pytest -v --files-path ./ --start-servers --random-order ./tests/end-2-end
|
51
|
+
|
52
|
+
- name: Upload logs if job fails
|
53
|
+
if: failure()
|
54
|
+
uses: actions/upload-artifact@v4
|
55
|
+
with:
|
56
|
+
name: pytest-logs
|
57
|
+
path: ./logs/*.log
|
58
|
+
retention-days: 7
|
@@ -1,6 +1,40 @@
|
|
1
1
|
# CHANGELOG
|
2
2
|
|
3
3
|
|
4
|
+
## v2.10.1 (2025-06-02)
|
5
|
+
|
6
|
+
### Bug Fixes
|
7
|
+
|
8
|
+
- **console**: Qt console widget deleted
|
9
|
+
([`cd4e90a`](https://github.com/bec-project/bec_widgets/commit/cd4e90a79fcdbc96f4ec23db22375d05a48731db))
|
10
|
+
|
11
|
+
### Build System
|
12
|
+
|
13
|
+
- Pyte removed from dependencies
|
14
|
+
([`a64cf0d`](https://github.com/bec-project/bec_widgets/commit/a64cf0dd871c1419e02d3803c74cc45966baac19))
|
15
|
+
|
16
|
+
|
17
|
+
## v2.10.0 (2025-06-02)
|
18
|
+
|
19
|
+
### Bug Fixes
|
20
|
+
|
21
|
+
- **waveform**: Waveform only update async data when scan is currently running
|
22
|
+
([`f90150d`](https://github.com/bec-project/bec_widgets/commit/f90150d1c708331d4ee78f82ebf5ef23cd81fd17))
|
23
|
+
|
24
|
+
### Continuous Integration
|
25
|
+
|
26
|
+
- Add job logs to e2e test
|
27
|
+
([`d12bd9f`](https://github.com/bec-project/bec_widgets/commit/d12bd9fe1a010babc94dc86405d1b75a2b07534c))
|
28
|
+
|
29
|
+
- Fix artifact version
|
30
|
+
([`2b4454a`](https://github.com/bec-project/bec_widgets/commit/2b4454a291bc69399ddd08780c44e1339825fb36))
|
31
|
+
|
32
|
+
### Features
|
33
|
+
|
34
|
+
- **waveform**: Large async dataset warning popup
|
35
|
+
([`d0c1ac0`](https://github.com/bec-project/bec_widgets/commit/d0c1ac0cf5d421d14c9e050ccf5832cd30ca0764))
|
36
|
+
|
37
|
+
|
4
38
|
## v2.9.2 (2025-05-30)
|
5
39
|
|
6
40
|
### Bug Fixes
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.4
|
2
2
|
Name: bec_widgets
|
3
|
-
Version: 2.
|
3
|
+
Version: 2.10.1
|
4
4
|
Summary: BEC Widgets
|
5
5
|
Project-URL: Bug Tracker, https://gitlab.psi.ch/bec/bec_widgets/issues
|
6
6
|
Project-URL: Homepage, https://gitlab.psi.ch/bec/bec_widgets
|
@@ -17,7 +17,6 @@ Requires-Dist: isort>=5.13.2,~=5.13
|
|
17
17
|
Requires-Dist: pydantic~=2.0
|
18
18
|
Requires-Dist: pyqtgraph~=0.13
|
19
19
|
Requires-Dist: pyside6~=6.8.2
|
20
|
-
Requires-Dist: pyte
|
21
20
|
Requires-Dist: qtconsole>=5.5.1,~=5.5
|
22
21
|
Requires-Dist: qtpy~=2.4
|
23
22
|
Provides-Extra: dev
|
@@ -3970,6 +3970,48 @@ class Waveform(RPCBase):
|
|
3970
3970
|
The color palette of the figure widget.
|
3971
3971
|
"""
|
3972
3972
|
|
3973
|
+
@property
|
3974
|
+
@rpc_call
|
3975
|
+
def skip_large_dataset_warning(self) -> "bool":
|
3976
|
+
"""
|
3977
|
+
Whether to skip the large dataset warning when fetching async data.
|
3978
|
+
"""
|
3979
|
+
|
3980
|
+
@skip_large_dataset_warning.setter
|
3981
|
+
@rpc_call
|
3982
|
+
def skip_large_dataset_warning(self) -> "bool":
|
3983
|
+
"""
|
3984
|
+
Whether to skip the large dataset warning when fetching async data.
|
3985
|
+
"""
|
3986
|
+
|
3987
|
+
@property
|
3988
|
+
@rpc_call
|
3989
|
+
def skip_large_dataset_check(self) -> "bool":
|
3990
|
+
"""
|
3991
|
+
Whether to skip the large dataset warning when fetching async data.
|
3992
|
+
"""
|
3993
|
+
|
3994
|
+
@skip_large_dataset_check.setter
|
3995
|
+
@rpc_call
|
3996
|
+
def skip_large_dataset_check(self) -> "bool":
|
3997
|
+
"""
|
3998
|
+
Whether to skip the large dataset warning when fetching async data.
|
3999
|
+
"""
|
4000
|
+
|
4001
|
+
@property
|
4002
|
+
@rpc_call
|
4003
|
+
def max_dataset_size_mb(self) -> "float":
|
4004
|
+
"""
|
4005
|
+
The maximum dataset size (in MB) permitted when fetching async data from history before prompting the user.
|
4006
|
+
"""
|
4007
|
+
|
4008
|
+
@max_dataset_size_mb.setter
|
4009
|
+
@rpc_call
|
4010
|
+
def max_dataset_size_mb(self) -> "float":
|
4011
|
+
"""
|
4012
|
+
The maximum dataset size (in MB) permitted when fetching async data from history before prompting the user.
|
4013
|
+
"""
|
4014
|
+
|
3973
4015
|
@rpc_call
|
3974
4016
|
def plot(
|
3975
4017
|
self,
|
@@ -9,8 +9,19 @@ import pyqtgraph as pg
|
|
9
9
|
from bec_lib import bec_logger, messages
|
10
10
|
from bec_lib.endpoints import MessageEndpoints
|
11
11
|
from pydantic import Field, ValidationError, field_validator
|
12
|
-
from qtpy.QtCore import QTimer, Signal
|
13
|
-
from qtpy.QtWidgets import
|
12
|
+
from qtpy.QtCore import Qt, QTimer, Signal
|
13
|
+
from qtpy.QtWidgets import (
|
14
|
+
QApplication,
|
15
|
+
QCheckBox,
|
16
|
+
QDialog,
|
17
|
+
QDialogButtonBox,
|
18
|
+
QDoubleSpinBox,
|
19
|
+
QHBoxLayout,
|
20
|
+
QLabel,
|
21
|
+
QMainWindow,
|
22
|
+
QVBoxLayout,
|
23
|
+
QWidget,
|
24
|
+
)
|
14
25
|
|
15
26
|
from bec_widgets.utils import ConnectionConfig
|
16
27
|
from bec_widgets.utils.bec_signal_proxy import BECSignalProxy
|
@@ -33,6 +44,11 @@ class WaveformConfig(ConnectionConfig):
|
|
33
44
|
color_palette: str | None = Field(
|
34
45
|
"plasma", description="The color palette of the figure widget.", validate_default=True
|
35
46
|
)
|
47
|
+
max_dataset_size_mb: float = Field(
|
48
|
+
10,
|
49
|
+
description="Maximum dataset size (in MB) permitted when fetching async data from history before prompting the user.",
|
50
|
+
validate_default=True,
|
51
|
+
)
|
36
52
|
|
37
53
|
model_config: dict = {"validate_assignment": True}
|
38
54
|
_validate_color_palette = field_validator("color_palette")(Colors.validate_color_map)
|
@@ -96,6 +112,12 @@ class Waveform(PlotBase):
|
|
96
112
|
"x_entry.setter",
|
97
113
|
"color_palette",
|
98
114
|
"color_palette.setter",
|
115
|
+
"skip_large_dataset_warning",
|
116
|
+
"skip_large_dataset_warning.setter",
|
117
|
+
"skip_large_dataset_check",
|
118
|
+
"skip_large_dataset_check.setter",
|
119
|
+
"max_dataset_size_mb",
|
120
|
+
"max_dataset_size_mb.setter",
|
99
121
|
"plot",
|
100
122
|
"add_dap_curve",
|
101
123
|
"remove_curve",
|
@@ -144,6 +166,7 @@ class Waveform(PlotBase):
|
|
144
166
|
self._mode: Literal["none", "sync", "async", "mixed"] = "none"
|
145
167
|
|
146
168
|
# Scan data
|
169
|
+
self._scan_done = True # means scan is not running
|
147
170
|
self.old_scan_id = None
|
148
171
|
self.scan_id = None
|
149
172
|
self.scan_item = None
|
@@ -163,6 +186,10 @@ class Waveform(PlotBase):
|
|
163
186
|
self._init_curve_dialog()
|
164
187
|
self.curve_settings_dialog = None
|
165
188
|
|
189
|
+
# Large‑dataset guard
|
190
|
+
self._skip_large_dataset_warning = False # session flag
|
191
|
+
self._skip_large_dataset_check = False # per-plot flag, to skip the warning for this plot
|
192
|
+
|
166
193
|
# Scan status update loop
|
167
194
|
self.bec_dispatcher.connect_slot(self.on_scan_status, MessageEndpoints.scan_status())
|
168
195
|
self.bec_dispatcher.connect_slot(self.on_scan_progress, MessageEndpoints.scan_progress())
|
@@ -561,6 +588,59 @@ class Waveform(PlotBase):
|
|
561
588
|
"""
|
562
589
|
return [item for item in self.plot_item.curves if isinstance(item, Curve)]
|
563
590
|
|
591
|
+
@SafeProperty(bool)
|
592
|
+
def skip_large_dataset_check(self) -> bool:
|
593
|
+
"""
|
594
|
+
Whether to skip the large dataset warning when fetching async data.
|
595
|
+
"""
|
596
|
+
return self._skip_large_dataset_check
|
597
|
+
|
598
|
+
@skip_large_dataset_check.setter
|
599
|
+
def skip_large_dataset_check(self, value: bool):
|
600
|
+
"""
|
601
|
+
Set whether to skip the large dataset warning when fetching async data.
|
602
|
+
|
603
|
+
Args:
|
604
|
+
value(bool): Whether to skip the large dataset warning.
|
605
|
+
"""
|
606
|
+
self._skip_large_dataset_check = value
|
607
|
+
|
608
|
+
@SafeProperty(bool)
|
609
|
+
def skip_large_dataset_warning(self) -> bool:
|
610
|
+
"""
|
611
|
+
Whether to skip the large dataset warning when fetching async data.
|
612
|
+
"""
|
613
|
+
return self._skip_large_dataset_warning
|
614
|
+
|
615
|
+
@skip_large_dataset_warning.setter
|
616
|
+
def skip_large_dataset_warning(self, value: bool):
|
617
|
+
"""
|
618
|
+
Set whether to skip the large dataset warning when fetching async data.
|
619
|
+
|
620
|
+
Args:
|
621
|
+
value(bool): Whether to skip the large dataset warning.
|
622
|
+
"""
|
623
|
+
self._skip_large_dataset_warning = value
|
624
|
+
|
625
|
+
@SafeProperty(float)
|
626
|
+
def max_dataset_size_mb(self) -> float:
|
627
|
+
"""
|
628
|
+
The maximum dataset size (in MB) permitted when fetching async data from history before prompting the user.
|
629
|
+
"""
|
630
|
+
return self.config.max_dataset_size_mb
|
631
|
+
|
632
|
+
@max_dataset_size_mb.setter
|
633
|
+
def max_dataset_size_mb(self, value: float):
|
634
|
+
"""
|
635
|
+
Set the maximum dataset size (in MB) permitted when fetching async data from history before prompting the user.
|
636
|
+
|
637
|
+
Args:
|
638
|
+
value(float): The maximum dataset size in MB.
|
639
|
+
"""
|
640
|
+
if value <= 0:
|
641
|
+
raise ValueError("Maximum dataset size must be greater than 0.")
|
642
|
+
self.config.max_dataset_size_mb = value
|
643
|
+
|
564
644
|
################################################################################
|
565
645
|
# High Level methods for API
|
566
646
|
################################################################################
|
@@ -807,8 +887,6 @@ class Waveform(PlotBase):
|
|
807
887
|
if config.source == "device":
|
808
888
|
if self.scan_item is None:
|
809
889
|
self.update_with_scan_history(-1)
|
810
|
-
if curve in self._async_curves:
|
811
|
-
self._setup_async_curve(curve)
|
812
890
|
self.async_signal_update.emit()
|
813
891
|
self.sync_signal_update.emit()
|
814
892
|
if config.source == "dap":
|
@@ -1056,8 +1134,8 @@ class Waveform(PlotBase):
|
|
1056
1134
|
meta(dict): The message metadata.
|
1057
1135
|
"""
|
1058
1136
|
self.sync_signal_update.emit()
|
1059
|
-
|
1060
|
-
if
|
1137
|
+
self._scan_done = msg.get("done")
|
1138
|
+
if self._scan_done:
|
1061
1139
|
QTimer.singleShot(100, self.update_sync_curves)
|
1062
1140
|
QTimer.singleShot(300, self.update_sync_curves)
|
1063
1141
|
|
@@ -1135,9 +1213,11 @@ class Waveform(PlotBase):
|
|
1135
1213
|
if access_key == "val": # live access
|
1136
1214
|
device_data = data.get(device_name, {}).get(device_entry, {}).get(access_key, None)
|
1137
1215
|
else: # history access
|
1138
|
-
|
1139
|
-
|
1140
|
-
|
1216
|
+
dataset_obj = data.get(device_name, {})
|
1217
|
+
if self._skip_large_dataset_check is False:
|
1218
|
+
if not self._check_dataset_size_and_confirm(dataset_obj, device_entry):
|
1219
|
+
continue # user declined to load; skip this curve
|
1220
|
+
device_data = dataset_obj.get(device_entry, {}).read().get("value", None)
|
1141
1221
|
|
1142
1222
|
# if shape is 2D cast it into 1D and take the last waveform
|
1143
1223
|
if len(np.shape(device_data)) > 1:
|
@@ -1581,6 +1661,8 @@ class Waveform(PlotBase):
|
|
1581
1661
|
dev_name = curve.config.signal.name
|
1582
1662
|
if dev_name in readout_priority_async:
|
1583
1663
|
self._async_curves.append(curve)
|
1664
|
+
if hasattr(self.scan_item, "live_data"):
|
1665
|
+
self._setup_async_curve(curve)
|
1584
1666
|
found_async = True
|
1585
1667
|
elif dev_name in readout_priority_sync:
|
1586
1668
|
self._sync_curves.append(curve)
|
@@ -1657,6 +1739,106 @@ class Waveform(PlotBase):
|
|
1657
1739
|
################################################################################
|
1658
1740
|
# Utility Methods
|
1659
1741
|
################################################################################
|
1742
|
+
|
1743
|
+
# Large dataset handling helpers
|
1744
|
+
def _check_dataset_size_and_confirm(self, dataset_obj, device_entry: str) -> bool:
|
1745
|
+
"""
|
1746
|
+
Check the size of the dataset and confirm with the user if it exceeds the limit.
|
1747
|
+
|
1748
|
+
Args:
|
1749
|
+
dataset_obj: The dataset object containing the information.
|
1750
|
+
device_entry( str): The specific device entry to check.
|
1751
|
+
|
1752
|
+
Returns:
|
1753
|
+
bool: True if the dataset is within the size limit or user confirmed to load it,
|
1754
|
+
False if the dataset exceeds the size limit and user declined to load it.
|
1755
|
+
"""
|
1756
|
+
try:
|
1757
|
+
info = dataset_obj._info
|
1758
|
+
mem_bytes = info.get(device_entry, {}).get("value", {}).get("mem_size", 0)
|
1759
|
+
# Fallback – grab first entry if lookup failed
|
1760
|
+
if mem_bytes == 0 and info:
|
1761
|
+
first_key = next(iter(info))
|
1762
|
+
mem_bytes = info[first_key]["value"]["mem_size"]
|
1763
|
+
size_mb = mem_bytes / (1024 * 1024)
|
1764
|
+
print(f"Dataset size: {size_mb:.1f} MB")
|
1765
|
+
except Exception as exc: # noqa: BLE001
|
1766
|
+
logger.error(f"Unable to evaluate dataset size: {exc}")
|
1767
|
+
return True
|
1768
|
+
|
1769
|
+
if size_mb <= self.config.max_dataset_size_mb:
|
1770
|
+
return True
|
1771
|
+
logger.warning(
|
1772
|
+
f"Attempt to load large dataset: {size_mb:.1f} MB "
|
1773
|
+
f"(limit {self.config.max_dataset_size_mb} MB)"
|
1774
|
+
)
|
1775
|
+
if self._skip_large_dataset_warning:
|
1776
|
+
logger.info("Skipping large dataset warning dialog.")
|
1777
|
+
return False
|
1778
|
+
return self._confirm_large_dataset(size_mb)
|
1779
|
+
|
1780
|
+
def _confirm_large_dataset(self, size_mb: float) -> bool:
|
1781
|
+
"""
|
1782
|
+
Confirm with the user whether to load a large dataset with dialog popup.
|
1783
|
+
Also allows the user to adjust the maximum dataset size limit and if user
|
1784
|
+
wants to see this popup again during session.
|
1785
|
+
|
1786
|
+
Args:
|
1787
|
+
size_mb(float): Size of the dataset in MB.
|
1788
|
+
|
1789
|
+
Returns:
|
1790
|
+
bool: True if the user confirmed to load the dataset, False otherwise.
|
1791
|
+
"""
|
1792
|
+
if self._skip_large_dataset_warning:
|
1793
|
+
return True
|
1794
|
+
|
1795
|
+
dialog = QDialog(self)
|
1796
|
+
dialog.setWindowTitle("Large dataset detected")
|
1797
|
+
main_dialog_layout = QVBoxLayout(dialog)
|
1798
|
+
|
1799
|
+
# Limit adjustment widgets
|
1800
|
+
limit_adjustment_layout = QHBoxLayout()
|
1801
|
+
limit_adjustment_layout.addWidget(QLabel("New limit (MB):"))
|
1802
|
+
spin = QDoubleSpinBox()
|
1803
|
+
spin.setRange(0.001, 4096)
|
1804
|
+
spin.setDecimals(3)
|
1805
|
+
spin.setSingleStep(0.01)
|
1806
|
+
spin.setValue(self.config.max_dataset_size_mb)
|
1807
|
+
spin.valueChanged.connect(lambda value: setattr(self.config, "max_dataset_size_mb", value))
|
1808
|
+
limit_adjustment_layout.addWidget(spin)
|
1809
|
+
|
1810
|
+
# Don't show again checkbox
|
1811
|
+
checkbox = QCheckBox("Don't show this again for this session")
|
1812
|
+
|
1813
|
+
buttons = QDialogButtonBox(
|
1814
|
+
QDialogButtonBox.Yes | QDialogButtonBox.No, Qt.Horizontal, dialog
|
1815
|
+
)
|
1816
|
+
buttons.accepted.connect(dialog.accept) # Yes
|
1817
|
+
buttons.rejected.connect(dialog.reject) # No
|
1818
|
+
|
1819
|
+
# widget layout
|
1820
|
+
main_dialog_layout.addWidget(
|
1821
|
+
QLabel(
|
1822
|
+
f"The selected dataset is {size_mb:.1f} MB which exceeds the "
|
1823
|
+
f"current limit of {self.config.max_dataset_size_mb} MB.\n"
|
1824
|
+
)
|
1825
|
+
)
|
1826
|
+
main_dialog_layout.addLayout(limit_adjustment_layout)
|
1827
|
+
main_dialog_layout.addWidget(checkbox)
|
1828
|
+
main_dialog_layout.addWidget(QLabel("Would you like to display dataset anyway?"))
|
1829
|
+
main_dialog_layout.addWidget(buttons)
|
1830
|
+
|
1831
|
+
result = dialog.exec() # modal; waits for user choice
|
1832
|
+
|
1833
|
+
# Respect the “don't show again” checkbox for *either* choice
|
1834
|
+
if checkbox.isChecked():
|
1835
|
+
self._skip_large_dataset_warning = True
|
1836
|
+
|
1837
|
+
if result == QDialog.Accepted:
|
1838
|
+
self.config.max_dataset_size_mb = spin.value()
|
1839
|
+
return True
|
1840
|
+
return False
|
1841
|
+
|
1660
1842
|
def _ensure_str_list(self, entries: list | tuple | np.ndarray):
|
1661
1843
|
"""
|
1662
1844
|
Convert a variety of possible inputs (string, bytes, list/tuple/ndarray of either)
|
@@ -1787,7 +1969,7 @@ class DemoApp(QMainWindow): # pragma: no cover
|
|
1787
1969
|
self.setCentralWidget(self.main_widget)
|
1788
1970
|
|
1789
1971
|
self.waveform_popup = Waveform(popups=True)
|
1790
|
-
self.waveform_popup.plot(y_name="
|
1972
|
+
self.waveform_popup.plot(y_name="waveform")
|
1791
1973
|
|
1792
1974
|
self.waveform_side = Waveform(popups=False)
|
1793
1975
|
self.waveform_side.plot(y_name="bpm4i", y_entry="bpm4i", dap="GaussianModel")
|
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
|
|
4
4
|
|
5
5
|
[project]
|
6
6
|
name = "bec_widgets"
|
7
|
-
version = "2.
|
7
|
+
version = "2.10.1"
|
8
8
|
description = "BEC Widgets"
|
9
9
|
requires-python = ">=3.10"
|
10
10
|
classifiers = [
|
@@ -21,7 +21,6 @@ dependencies = [
|
|
21
21
|
"pydantic~=2.0",
|
22
22
|
"pyqtgraph~=0.13",
|
23
23
|
"PySide6~=6.8.2",
|
24
|
-
"pyte", # needed for vt100 console
|
25
24
|
"qtconsole~=5.5, >=5.5.1", # needed for jupyter console
|
26
25
|
"qtpy~=2.4",
|
27
26
|
]
|