bec-widgets 2.5.4__tar.gz → 2.6.0__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.6.0/.github/ISSUE_TEMPLATE/bug_report.yml +41 -0
- bec_widgets-2.5.4/.gitlab/issue_templates/documentation_update_template.md → bec_widgets-2.6.0/.github/ISSUE_TEMPLATE/documentation_update.md +10 -0
- {bec_widgets-2.5.4 → bec_widgets-2.6.0}/.github/ISSUE_TEMPLATE/feature_request.md +3 -2
- bec_widgets-2.5.4/.gitlab/merge_request_templates/default.md → bec_widgets-2.6.0/.github/pull_request_template.md +8 -3
- bec_widgets-2.6.0/.github/scripts/pr_issue_sync/pr_issue_sync.py +342 -0
- bec_widgets-2.6.0/.github/scripts/pr_issue_sync/requirements.txt +2 -0
- bec_widgets-2.6.0/.github/workflows/sync-issues-pr.yml +40 -0
- {bec_widgets-2.5.4 → bec_widgets-2.6.0}/CHANGELOG.md +31 -0
- {bec_widgets-2.5.4 → bec_widgets-2.6.0}/PKG-INFO +1 -1
- {bec_widgets-2.5.4 → bec_widgets-2.6.0}/bec_widgets/cli/client.py +31 -1
- {bec_widgets-2.5.4 → bec_widgets-2.6.0}/bec_widgets/examples/jupyter_console/jupyter_console_window.py +1 -1
- {bec_widgets-2.5.4 → bec_widgets-2.6.0}/bec_widgets/widgets/plots/image/image.py +72 -8
- bec_widgets-2.6.0/bec_widgets/widgets/plots/image/setting_widgets/image_roi_tree.py +375 -0
- {bec_widgets-2.5.4 → bec_widgets-2.6.0}/bec_widgets/widgets/plots/roi/image_roi.py +36 -14
- {bec_widgets-2.5.4 → bec_widgets-2.6.0}/bec_widgets/widgets/plots/waveform/waveform.py +2 -0
- bec_widgets-2.6.0/bec_widgets/widgets/utility/visual/dark_mode_button/__init__.py +0 -0
- {bec_widgets-2.5.4 → bec_widgets-2.6.0}/pyproject.toml +1 -1
- bec_widgets-2.5.4/.github/ISSUE_TEMPLATE/bug_report.md +0 -26
- bec_widgets-2.5.4/.gitlab/issue_templates/bug_report_template.md +0 -17
- bec_widgets-2.5.4/.gitlab/issue_templates/feature_request_template.md +0 -40
- {bec_widgets-2.5.4 → bec_widgets-2.6.0}/.git_hooks/pre-commit +0 -0
- {bec_widgets-2.5.4 → bec_widgets-2.6.0}/.github/actions/bw_install/action.yml +0 -0
- {bec_widgets-2.5.4 → bec_widgets-2.6.0}/.github/workflows/check_pr.yml +0 -0
- {bec_widgets-2.5.4 → bec_widgets-2.6.0}/.github/workflows/ci.yml +0 -0
- {bec_widgets-2.5.4 → bec_widgets-2.6.0}/.github/workflows/end2end-conda.yml +0 -0
- {bec_widgets-2.5.4 → bec_widgets-2.6.0}/.github/workflows/formatter.yml +0 -0
- {bec_widgets-2.5.4 → bec_widgets-2.6.0}/.github/workflows/generate-cli-check.yml +0 -0
- {bec_widgets-2.5.4 → bec_widgets-2.6.0}/.github/workflows/pytest-matrix.yml +0 -0
- {bec_widgets-2.5.4 → bec_widgets-2.6.0}/.github/workflows/pytest.yml +0 -0
- {bec_widgets-2.5.4 → bec_widgets-2.6.0}/.github/workflows/semantic_release.yml +0 -0
- {bec_widgets-2.5.4 → bec_widgets-2.6.0}/.gitignore +0 -0
- {bec_widgets-2.5.4 → bec_widgets-2.6.0}/.gitlab-ci.yml +0 -0
- {bec_widgets-2.5.4 → bec_widgets-2.6.0}/.pylintrc +0 -0
- {bec_widgets-2.5.4 → bec_widgets-2.6.0}/.readthedocs.yaml +0 -0
- {bec_widgets-2.5.4 → bec_widgets-2.6.0}/LICENSE +0 -0
- {bec_widgets-2.5.4 → bec_widgets-2.6.0}/README.md +0 -0
- {bec_widgets-2.5.4 → bec_widgets-2.6.0}/bec_widgets/__init__.py +0 -0
- {bec_widgets-2.5.4 → bec_widgets-2.6.0}/bec_widgets/applications/__init__.py +0 -0
- {bec_widgets-2.5.4 → bec_widgets-2.6.0}/bec_widgets/applications/bw_launch.py +0 -0
- {bec_widgets-2.5.4 → bec_widgets-2.6.0}/bec_widgets/applications/launch_window.py +0 -0
- {bec_widgets-2.5.4 → bec_widgets-2.6.0}/bec_widgets/assets/app_icons/BEC-General-App.png +0 -0
- {bec_widgets-2.5.4 → bec_widgets-2.6.0}/bec_widgets/assets/app_icons/alignment_1d.png +0 -0
- {bec_widgets-2.5.4 → bec_widgets-2.6.0}/bec_widgets/assets/app_icons/auto_update.png +0 -0
- {bec_widgets-2.5.4 → bec_widgets-2.6.0}/bec_widgets/assets/app_icons/bec_widgets_icon.png +0 -0
- {bec_widgets-2.5.4 → bec_widgets-2.6.0}/bec_widgets/assets/app_icons/ui_loader_tile.png +0 -0
- {bec_widgets-2.5.4 → bec_widgets-2.6.0}/bec_widgets/assets/app_icons/widget_launch_tile.png +0 -0
- {bec_widgets-2.5.4 → bec_widgets-2.6.0}/bec_widgets/cli/__init__.py +0 -0
- {bec_widgets-2.5.4 → bec_widgets-2.6.0}/bec_widgets/cli/client_utils.py +0 -0
- {bec_widgets-2.5.4 → bec_widgets-2.6.0}/bec_widgets/cli/generate_cli.py +0 -0
- {bec_widgets-2.5.4 → bec_widgets-2.6.0}/bec_widgets/cli/rpc/__init__.py +0 -0
- {bec_widgets-2.5.4 → bec_widgets-2.6.0}/bec_widgets/cli/rpc/rpc_base.py +0 -0
- {bec_widgets-2.5.4 → bec_widgets-2.6.0}/bec_widgets/cli/rpc/rpc_register.py +0 -0
- {bec_widgets-2.5.4 → bec_widgets-2.6.0}/bec_widgets/cli/rpc/rpc_widget_handler.py +0 -0
- {bec_widgets-2.5.4 → bec_widgets-2.6.0}/bec_widgets/cli/server.py +0 -0
- {bec_widgets-2.5.4 → bec_widgets-2.6.0}/bec_widgets/examples/__init__.py +0 -0
- {bec_widgets-2.5.4 → bec_widgets-2.6.0}/bec_widgets/examples/general_app/__init__.py +0 -0
- {bec_widgets-2.5.4 → bec_widgets-2.6.0}/bec_widgets/examples/general_app/general_app.py +0 -0
- {bec_widgets-2.5.4 → bec_widgets-2.6.0}/bec_widgets/examples/general_app/general_app.ui +0 -0
- {bec_widgets-2.5.4 → bec_widgets-2.6.0}/bec_widgets/examples/general_app/web_links.py +0 -0
- {bec_widgets-2.5.4 → bec_widgets-2.6.0}/bec_widgets/examples/jupyter_console/__init__.py +0 -0
- {bec_widgets-2.5.4 → bec_widgets-2.6.0}/bec_widgets/examples/plugin_example_pyside/__init__.py +0 -0
- {bec_widgets-2.5.4 → bec_widgets-2.6.0}/bec_widgets/examples/plugin_example_pyside/main.py +0 -0
- {bec_widgets-2.5.4 → bec_widgets-2.6.0}/bec_widgets/examples/plugin_example_pyside/registertictactoe.py +0 -0
- {bec_widgets-2.5.4 → bec_widgets-2.6.0}/bec_widgets/examples/plugin_example_pyside/taskmenuextension.pyproject +0 -0
- {bec_widgets-2.5.4 → bec_widgets-2.6.0}/bec_widgets/examples/plugin_example_pyside/tictactoe.py +0 -0
- {bec_widgets-2.5.4 → bec_widgets-2.6.0}/bec_widgets/examples/plugin_example_pyside/tictactoeplugin.py +0 -0
- {bec_widgets-2.5.4 → bec_widgets-2.6.0}/bec_widgets/examples/plugin_example_pyside/tictactoetaskmenu.py +0 -0
- {bec_widgets-2.5.4 → bec_widgets-2.6.0}/bec_widgets/tests/__init__.py +0 -0
- {bec_widgets-2.5.4 → bec_widgets-2.6.0}/bec_widgets/tests/utils.py +0 -0
- {bec_widgets-2.5.4 → bec_widgets-2.6.0}/bec_widgets/utils/__init__.py +0 -0
- {bec_widgets-2.5.4 → bec_widgets-2.6.0}/bec_widgets/utils/bec_connector.py +0 -0
- {bec_widgets-2.5.4 → bec_widgets-2.6.0}/bec_widgets/utils/bec_designer.py +0 -0
- {bec_widgets-2.5.4 → bec_widgets-2.6.0}/bec_widgets/utils/bec_dispatcher.py +0 -0
- {bec_widgets-2.5.4 → bec_widgets-2.6.0}/bec_widgets/utils/bec_plugin_helper.py +0 -0
- {bec_widgets-2.5.4 → bec_widgets-2.6.0}/bec_widgets/utils/bec_signal_proxy.py +0 -0
- {bec_widgets-2.5.4 → bec_widgets-2.6.0}/bec_widgets/utils/bec_table.py +0 -0
- {bec_widgets-2.5.4 → bec_widgets-2.6.0}/bec_widgets/utils/bec_widget.py +0 -0
- {bec_widgets-2.5.4 → bec_widgets-2.6.0}/bec_widgets/utils/collapsible_panel_manager.py +0 -0
- {bec_widgets-2.5.4 → bec_widgets-2.6.0}/bec_widgets/utils/colors.py +0 -0
- {bec_widgets-2.5.4 → bec_widgets-2.6.0}/bec_widgets/utils/compact_popup.py +0 -0
- {bec_widgets-2.5.4 → bec_widgets-2.6.0}/bec_widgets/utils/container_utils.py +0 -0
- {bec_widgets-2.5.4 → bec_widgets-2.6.0}/bec_widgets/utils/crosshair.py +0 -0
- {bec_widgets-2.5.4 → bec_widgets-2.6.0}/bec_widgets/utils/entry_validator.py +0 -0
- {bec_widgets-2.5.4 → bec_widgets-2.6.0}/bec_widgets/utils/error_popups.py +0 -0
- {bec_widgets-2.5.4 → bec_widgets-2.6.0}/bec_widgets/utils/expandable_frame.py +0 -0
- {bec_widgets-2.5.4 → bec_widgets-2.6.0}/bec_widgets/utils/filter_io.py +0 -0
- {bec_widgets-2.5.4 → bec_widgets-2.6.0}/bec_widgets/utils/forms_from_types/__init__.py +0 -0
- {bec_widgets-2.5.4 → bec_widgets-2.6.0}/bec_widgets/utils/forms_from_types/forms.py +0 -0
- {bec_widgets-2.5.4 → bec_widgets-2.6.0}/bec_widgets/utils/forms_from_types/items.py +0 -0
- {bec_widgets-2.5.4 → bec_widgets-2.6.0}/bec_widgets/utils/fps_counter.py +0 -0
- {bec_widgets-2.5.4 → bec_widgets-2.6.0}/bec_widgets/utils/generate_designer_plugin.py +0 -0
- {bec_widgets-2.5.4 → bec_widgets-2.6.0}/bec_widgets/utils/layout_manager.py +0 -0
- {bec_widgets-2.5.4 → bec_widgets-2.6.0}/bec_widgets/utils/linear_region_selector.py +0 -0
- {bec_widgets-2.5.4 → bec_widgets-2.6.0}/bec_widgets/utils/name_utils.py +0 -0
- {bec_widgets-2.5.4 → bec_widgets-2.6.0}/bec_widgets/utils/ophyd_kind_util.py +0 -0
- {bec_widgets-2.5.4 → bec_widgets-2.6.0}/bec_widgets/utils/palette_viewer.py +0 -0
- {bec_widgets-2.5.4 → bec_widgets-2.6.0}/bec_widgets/utils/plot_indicator_items.py +0 -0
- {bec_widgets-2.5.4 → bec_widgets-2.6.0}/bec_widgets/utils/plugin_templates/plugin.template +0 -0
- {bec_widgets-2.5.4 → bec_widgets-2.6.0}/bec_widgets/utils/plugin_templates/register.template +0 -0
- {bec_widgets-2.5.4 → bec_widgets-2.6.0}/bec_widgets/utils/plugin_utils.py +0 -0
- {bec_widgets-2.5.4 → bec_widgets-2.6.0}/bec_widgets/utils/redis_message_waiter.py +0 -0
- {bec_widgets-2.5.4 → bec_widgets-2.6.0}/bec_widgets/utils/reference_utils.py +0 -0
- {bec_widgets-2.5.4 → bec_widgets-2.6.0}/bec_widgets/utils/round_frame.py +0 -0
- {bec_widgets-2.5.4 → bec_widgets-2.6.0}/bec_widgets/utils/rpc_decorator.py +0 -0
- {bec_widgets-2.5.4 → bec_widgets-2.6.0}/bec_widgets/utils/rpc_server.py +0 -0
- {bec_widgets-2.5.4 → bec_widgets-2.6.0}/bec_widgets/utils/serialization.py +0 -0
- {bec_widgets-2.5.4 → bec_widgets-2.6.0}/bec_widgets/utils/settings_dialog.py +0 -0
- {bec_widgets-2.5.4 → bec_widgets-2.6.0}/bec_widgets/utils/side_panel.py +0 -0
- {bec_widgets-2.5.4 → bec_widgets-2.6.0}/bec_widgets/utils/thread_checker.py +0 -0
- {bec_widgets-2.5.4 → bec_widgets-2.6.0}/bec_widgets/utils/toolbar.py +0 -0
- {bec_widgets-2.5.4 → bec_widgets-2.6.0}/bec_widgets/utils/ui_loader.py +0 -0
- {bec_widgets-2.5.4 → bec_widgets-2.6.0}/bec_widgets/utils/validator_delegate.py +0 -0
- {bec_widgets-2.5.4 → bec_widgets-2.6.0}/bec_widgets/utils/widget_io.py +0 -0
- {bec_widgets-2.5.4 → bec_widgets-2.6.0}/bec_widgets/utils/widget_state_manager.py +0 -0
- {bec_widgets-2.5.4 → bec_widgets-2.6.0}/bec_widgets/utils/yaml_dialog.py +0 -0
- {bec_widgets-2.5.4 → bec_widgets-2.6.0}/bec_widgets/widgets/__init__.py +0 -0
- {bec_widgets-2.5.4 → bec_widgets-2.6.0}/bec_widgets/widgets/containers/__init__.py +0 -0
- {bec_widgets-2.5.4 → bec_widgets-2.6.0}/bec_widgets/widgets/containers/auto_update/__init__.py +0 -0
- {bec_widgets-2.5.4 → bec_widgets-2.6.0}/bec_widgets/widgets/containers/auto_update/auto_updates.py +0 -0
- {bec_widgets-2.5.4 → bec_widgets-2.6.0}/bec_widgets/widgets/containers/dock/__init__.py +0 -0
- {bec_widgets-2.5.4 → bec_widgets-2.6.0}/bec_widgets/widgets/containers/dock/dock.py +0 -0
- {bec_widgets-2.5.4 → bec_widgets-2.6.0}/bec_widgets/widgets/containers/dock/dock_area.py +0 -0
- {bec_widgets-2.5.4 → bec_widgets-2.6.0}/bec_widgets/widgets/containers/dock/dock_area.pyproject +0 -0
- {bec_widgets-2.5.4 → bec_widgets-2.6.0}/bec_widgets/widgets/containers/dock/dock_area_plugin.py +0 -0
- {bec_widgets-2.5.4 → bec_widgets-2.6.0}/bec_widgets/widgets/containers/dock/register_dock_area.py +0 -0
- {bec_widgets-2.5.4 → bec_widgets-2.6.0}/bec_widgets/widgets/containers/layout_manager/__init__.py +0 -0
- {bec_widgets-2.5.4 → bec_widgets-2.6.0}/bec_widgets/widgets/containers/layout_manager/layout_manager.py +0 -0
- {bec_widgets-2.5.4 → bec_widgets-2.6.0}/bec_widgets/widgets/containers/main_window/__init__.py +0 -0
- {bec_widgets-2.5.4 → bec_widgets-2.6.0}/bec_widgets/widgets/containers/main_window/addons/__init__.py +0 -0
- {bec_widgets-2.5.4 → bec_widgets-2.6.0}/bec_widgets/widgets/containers/main_window/addons/web_links.py +0 -0
- {bec_widgets-2.5.4 → bec_widgets-2.6.0}/bec_widgets/widgets/containers/main_window/main_window.py +0 -0
- {bec_widgets-2.5.4 → bec_widgets-2.6.0}/bec_widgets/widgets/control/__init__.py +0 -0
- {bec_widgets-2.5.4 → bec_widgets-2.6.0}/bec_widgets/widgets/control/buttons/__init__.py +0 -0
- {bec_widgets-2.5.4 → bec_widgets-2.6.0}/bec_widgets/widgets/control/buttons/button_abort/__init__.py +0 -0
- {bec_widgets-2.5.4 → bec_widgets-2.6.0}/bec_widgets/widgets/control/buttons/button_abort/abort_button.pyproject +0 -0
- {bec_widgets-2.5.4 → bec_widgets-2.6.0}/bec_widgets/widgets/control/buttons/button_abort/abort_button_plugin.py +0 -0
- {bec_widgets-2.5.4 → bec_widgets-2.6.0}/bec_widgets/widgets/control/buttons/button_abort/button_abort.py +0 -0
- {bec_widgets-2.5.4 → bec_widgets-2.6.0}/bec_widgets/widgets/control/buttons/button_abort/register_abort_button.py +0 -0
- {bec_widgets-2.5.4 → bec_widgets-2.6.0}/bec_widgets/widgets/control/buttons/button_reset/__init__.py +0 -0
- {bec_widgets-2.5.4 → bec_widgets-2.6.0}/bec_widgets/widgets/control/buttons/button_reset/button_reset.py +0 -0
- {bec_widgets-2.5.4 → bec_widgets-2.6.0}/bec_widgets/widgets/control/buttons/button_reset/register_reset_button.py +0 -0
- {bec_widgets-2.5.4 → bec_widgets-2.6.0}/bec_widgets/widgets/control/buttons/button_reset/reset_button.pyproject +0 -0
- {bec_widgets-2.5.4 → bec_widgets-2.6.0}/bec_widgets/widgets/control/buttons/button_reset/reset_button_plugin.py +0 -0
- {bec_widgets-2.5.4 → bec_widgets-2.6.0}/bec_widgets/widgets/control/buttons/button_resume/__init__.py +0 -0
- {bec_widgets-2.5.4 → bec_widgets-2.6.0}/bec_widgets/widgets/control/buttons/button_resume/button_resume.py +0 -0
- {bec_widgets-2.5.4 → bec_widgets-2.6.0}/bec_widgets/widgets/control/buttons/button_resume/register_resume_button.py +0 -0
- {bec_widgets-2.5.4 → bec_widgets-2.6.0}/bec_widgets/widgets/control/buttons/button_resume/resume_button.pyproject +0 -0
- {bec_widgets-2.5.4 → bec_widgets-2.6.0}/bec_widgets/widgets/control/buttons/button_resume/resume_button_plugin.py +0 -0
- {bec_widgets-2.5.4 → bec_widgets-2.6.0}/bec_widgets/widgets/control/buttons/stop_button/__init__.py +0 -0
- {bec_widgets-2.5.4 → bec_widgets-2.6.0}/bec_widgets/widgets/control/buttons/stop_button/register_stop_button.py +0 -0
- {bec_widgets-2.5.4 → bec_widgets-2.6.0}/bec_widgets/widgets/control/buttons/stop_button/stop_button.py +0 -0
- {bec_widgets-2.5.4 → bec_widgets-2.6.0}/bec_widgets/widgets/control/buttons/stop_button/stop_button.pyproject +0 -0
- {bec_widgets-2.5.4 → bec_widgets-2.6.0}/bec_widgets/widgets/control/buttons/stop_button/stop_button_plugin.py +0 -0
- {bec_widgets-2.5.4 → bec_widgets-2.6.0}/bec_widgets/widgets/control/device_control/__init__.py +0 -0
- {bec_widgets-2.5.4 → bec_widgets-2.6.0}/bec_widgets/widgets/control/device_control/position_indicator/__init__.py +0 -0
- {bec_widgets-2.5.4 → bec_widgets-2.6.0}/bec_widgets/widgets/control/device_control/position_indicator/position_indicator.py +0 -0
- {bec_widgets-2.5.4 → bec_widgets-2.6.0}/bec_widgets/widgets/control/device_control/position_indicator/position_indicator.pyproject +0 -0
- {bec_widgets-2.5.4 → bec_widgets-2.6.0}/bec_widgets/widgets/control/device_control/position_indicator/position_indicator_plugin.py +0 -0
- {bec_widgets-2.5.4 → bec_widgets-2.6.0}/bec_widgets/widgets/control/device_control/position_indicator/register_position_indicator.py +0 -0
- {bec_widgets-2.5.4 → bec_widgets-2.6.0}/bec_widgets/widgets/control/device_control/positioner_box/__init__.py +0 -0
- {bec_widgets-2.5.4 → bec_widgets-2.6.0}/bec_widgets/widgets/control/device_control/positioner_box/_base/__init__.py +0 -0
- {bec_widgets-2.5.4 → bec_widgets-2.6.0}/bec_widgets/widgets/control/device_control/positioner_box/_base/positioner_box_base.py +0 -0
- {bec_widgets-2.5.4 → bec_widgets-2.6.0}/bec_widgets/widgets/control/device_control/positioner_box/positioner_box/__init__.py +0 -0
- {bec_widgets-2.5.4 → bec_widgets-2.6.0}/bec_widgets/widgets/control/device_control/positioner_box/positioner_box/positioner_box.py +0 -0
- {bec_widgets-2.5.4 → bec_widgets-2.6.0}/bec_widgets/widgets/control/device_control/positioner_box/positioner_box/positioner_box.pyproject +0 -0
- {bec_widgets-2.5.4 → bec_widgets-2.6.0}/bec_widgets/widgets/control/device_control/positioner_box/positioner_box/positioner_box.ui +0 -0
- {bec_widgets-2.5.4 → bec_widgets-2.6.0}/bec_widgets/widgets/control/device_control/positioner_box/positioner_box/positioner_box_plugin.py +0 -0
- {bec_widgets-2.5.4 → bec_widgets-2.6.0}/bec_widgets/widgets/control/device_control/positioner_box/positioner_box/register_positioner_box.py +0 -0
- {bec_widgets-2.5.4 → bec_widgets-2.6.0}/bec_widgets/widgets/control/device_control/positioner_box/positioner_box_2d/__init__.py +0 -0
- {bec_widgets-2.5.4 → bec_widgets-2.6.0}/bec_widgets/widgets/control/device_control/positioner_box/positioner_box_2d/positioner_box2_d.pyproject +0 -0
- {bec_widgets-2.5.4 → bec_widgets-2.6.0}/bec_widgets/widgets/control/device_control/positioner_box/positioner_box_2d/positioner_box2_d_plugin.py +0 -0
- {bec_widgets-2.5.4 → bec_widgets-2.6.0}/bec_widgets/widgets/control/device_control/positioner_box/positioner_box_2d/positioner_box_2d.py +0 -0
- {bec_widgets-2.5.4 → bec_widgets-2.6.0}/bec_widgets/widgets/control/device_control/positioner_box/positioner_box_2d/positioner_box_2d.ui +0 -0
- {bec_widgets-2.5.4 → bec_widgets-2.6.0}/bec_widgets/widgets/control/device_control/positioner_box/positioner_box_2d/register_positioner_box2_d.py +0 -0
- {bec_widgets-2.5.4 → bec_widgets-2.6.0}/bec_widgets/widgets/control/device_control/positioner_box/positioner_control_line/positioner_control_line.py +0 -0
- {bec_widgets-2.5.4 → bec_widgets-2.6.0}/bec_widgets/widgets/control/device_control/positioner_box/positioner_control_line/positioner_control_line.pyproject +0 -0
- {bec_widgets-2.5.4 → bec_widgets-2.6.0}/bec_widgets/widgets/control/device_control/positioner_box/positioner_control_line/positioner_control_line.ui +0 -0
- {bec_widgets-2.5.4 → bec_widgets-2.6.0}/bec_widgets/widgets/control/device_control/positioner_box/positioner_control_line/positioner_control_line_plugin.py +0 -0
- {bec_widgets-2.5.4 → bec_widgets-2.6.0}/bec_widgets/widgets/control/device_control/positioner_box/positioner_control_line/register_positioner_control_line.py +0 -0
- {bec_widgets-2.5.4 → bec_widgets-2.6.0}/bec_widgets/widgets/control/device_control/positioner_group/__init__.py +0 -0
- {bec_widgets-2.5.4 → bec_widgets-2.6.0}/bec_widgets/widgets/control/device_control/positioner_group/positioner_group.py +0 -0
- {bec_widgets-2.5.4 → bec_widgets-2.6.0}/bec_widgets/widgets/control/device_control/positioner_group/positioner_group.pyproject +0 -0
- {bec_widgets-2.5.4 → bec_widgets-2.6.0}/bec_widgets/widgets/control/device_control/positioner_group/positioner_group_plugin.py +0 -0
- {bec_widgets-2.5.4 → bec_widgets-2.6.0}/bec_widgets/widgets/control/device_control/positioner_group/register_positioner_group.py +0 -0
- {bec_widgets-2.5.4 → bec_widgets-2.6.0}/bec_widgets/widgets/control/device_input/__init__.py +0 -0
- {bec_widgets-2.5.4 → bec_widgets-2.6.0}/bec_widgets/widgets/control/device_input/base_classes/__init__.py +0 -0
- {bec_widgets-2.5.4 → bec_widgets-2.6.0}/bec_widgets/widgets/control/device_input/base_classes/device_input_base.py +0 -0
- {bec_widgets-2.5.4 → bec_widgets-2.6.0}/bec_widgets/widgets/control/device_input/base_classes/device_signal_input_base.py +0 -0
- {bec_widgets-2.5.4 → bec_widgets-2.6.0}/bec_widgets/widgets/control/device_input/device_combobox/__init__.py +0 -0
- {bec_widgets-2.5.4 → bec_widgets-2.6.0}/bec_widgets/widgets/control/device_input/device_combobox/device_combo_box.pyproject +0 -0
- {bec_widgets-2.5.4 → bec_widgets-2.6.0}/bec_widgets/widgets/control/device_input/device_combobox/device_combo_box_plugin.py +0 -0
- {bec_widgets-2.5.4 → bec_widgets-2.6.0}/bec_widgets/widgets/control/device_input/device_combobox/device_combobox.py +0 -0
- {bec_widgets-2.5.4 → bec_widgets-2.6.0}/bec_widgets/widgets/control/device_input/device_combobox/register_device_combo_box.py +0 -0
- {bec_widgets-2.5.4 → bec_widgets-2.6.0}/bec_widgets/widgets/control/device_input/device_line_edit/__init__.py +0 -0
- {bec_widgets-2.5.4 → bec_widgets-2.6.0}/bec_widgets/widgets/control/device_input/device_line_edit/device_line_edit.py +0 -0
- {bec_widgets-2.5.4 → bec_widgets-2.6.0}/bec_widgets/widgets/control/device_input/device_line_edit/device_line_edit.pyproject +0 -0
- {bec_widgets-2.5.4 → bec_widgets-2.6.0}/bec_widgets/widgets/control/device_input/device_line_edit/device_line_edit_plugin.py +0 -0
- {bec_widgets-2.5.4 → bec_widgets-2.6.0}/bec_widgets/widgets/control/device_input/device_line_edit/register_device_line_edit.py +0 -0
- {bec_widgets-2.5.4 → bec_widgets-2.6.0}/bec_widgets/widgets/control/device_input/signal_combobox/__init__.py +0 -0
- {bec_widgets-2.5.4 → bec_widgets-2.6.0}/bec_widgets/widgets/control/device_input/signal_combobox/register_signal_combo_box.py +0 -0
- {bec_widgets-2.5.4 → bec_widgets-2.6.0}/bec_widgets/widgets/control/device_input/signal_combobox/signal_combo_box.pyproject +0 -0
- {bec_widgets-2.5.4 → bec_widgets-2.6.0}/bec_widgets/widgets/control/device_input/signal_combobox/signal_combo_box_plugin.py +0 -0
- {bec_widgets-2.5.4 → bec_widgets-2.6.0}/bec_widgets/widgets/control/device_input/signal_combobox/signal_combobox.py +0 -0
- {bec_widgets-2.5.4 → bec_widgets-2.6.0}/bec_widgets/widgets/control/device_input/signal_line_edit/__init__.py +0 -0
- {bec_widgets-2.5.4 → bec_widgets-2.6.0}/bec_widgets/widgets/control/device_input/signal_line_edit/register_signal_line_edit.py +0 -0
- {bec_widgets-2.5.4 → bec_widgets-2.6.0}/bec_widgets/widgets/control/device_input/signal_line_edit/signal_line_edit.py +0 -0
- {bec_widgets-2.5.4 → bec_widgets-2.6.0}/bec_widgets/widgets/control/device_input/signal_line_edit/signal_line_edit.pyproject +0 -0
- {bec_widgets-2.5.4 → bec_widgets-2.6.0}/bec_widgets/widgets/control/device_input/signal_line_edit/signal_line_edit_plugin.py +0 -0
- {bec_widgets-2.5.4 → bec_widgets-2.6.0}/bec_widgets/widgets/control/scan_control/__init__.py +0 -0
- {bec_widgets-2.5.4 → bec_widgets-2.6.0}/bec_widgets/widgets/control/scan_control/register_scan_control.py +0 -0
- {bec_widgets-2.5.4 → bec_widgets-2.6.0}/bec_widgets/widgets/control/scan_control/scan_control.py +0 -0
- {bec_widgets-2.5.4 → bec_widgets-2.6.0}/bec_widgets/widgets/control/scan_control/scan_control.pyproject +0 -0
- {bec_widgets-2.5.4 → bec_widgets-2.6.0}/bec_widgets/widgets/control/scan_control/scan_control_plugin.py +0 -0
- {bec_widgets-2.5.4 → bec_widgets-2.6.0}/bec_widgets/widgets/control/scan_control/scan_group_box.py +0 -0
- {bec_widgets-2.5.4 → bec_widgets-2.6.0}/bec_widgets/widgets/dap/__init__.py +0 -0
- {bec_widgets-2.5.4 → bec_widgets-2.6.0}/bec_widgets/widgets/dap/dap_combo_box/__init__.py +0 -0
- {bec_widgets-2.5.4 → bec_widgets-2.6.0}/bec_widgets/widgets/dap/dap_combo_box/dap_combo_box.py +0 -0
- {bec_widgets-2.5.4 → bec_widgets-2.6.0}/bec_widgets/widgets/dap/dap_combo_box/dap_combo_box.pyproject +0 -0
- {bec_widgets-2.5.4 → bec_widgets-2.6.0}/bec_widgets/widgets/dap/dap_combo_box/dap_combo_box_plugin.py +0 -0
- {bec_widgets-2.5.4 → bec_widgets-2.6.0}/bec_widgets/widgets/dap/dap_combo_box/register_dap_combo_box.py +0 -0
- {bec_widgets-2.5.4 → bec_widgets-2.6.0}/bec_widgets/widgets/dap/lmfit_dialog/__init__.py +0 -0
- {bec_widgets-2.5.4 → bec_widgets-2.6.0}/bec_widgets/widgets/dap/lmfit_dialog/lm_fit_dialog.pyproject +0 -0
- {bec_widgets-2.5.4 → bec_widgets-2.6.0}/bec_widgets/widgets/dap/lmfit_dialog/lm_fit_dialog_plugin.py +0 -0
- {bec_widgets-2.5.4 → bec_widgets-2.6.0}/bec_widgets/widgets/dap/lmfit_dialog/lmfit_dialog.py +0 -0
- {bec_widgets-2.5.4 → bec_widgets-2.6.0}/bec_widgets/widgets/dap/lmfit_dialog/lmfit_dialog_compact.ui +0 -0
- {bec_widgets-2.5.4 → bec_widgets-2.6.0}/bec_widgets/widgets/dap/lmfit_dialog/lmfit_dialog_vertical.ui +0 -0
- {bec_widgets-2.5.4 → bec_widgets-2.6.0}/bec_widgets/widgets/dap/lmfit_dialog/register_lm_fit_dialog.py +0 -0
- {bec_widgets-2.5.4 → bec_widgets-2.6.0}/bec_widgets/widgets/editors/__init__.py +0 -0
- {bec_widgets-2.5.4 → bec_widgets-2.6.0}/bec_widgets/widgets/editors/console/__init__.py +0 -0
- {bec_widgets-2.5.4 → bec_widgets-2.6.0}/bec_widgets/widgets/editors/console/console.py +0 -0
- {bec_widgets-2.5.4 → bec_widgets-2.6.0}/bec_widgets/widgets/editors/console/console.pyproject +0 -0
- {bec_widgets-2.5.4 → bec_widgets-2.6.0}/bec_widgets/widgets/editors/console/console_plugin.py +0 -0
- {bec_widgets-2.5.4 → bec_widgets-2.6.0}/bec_widgets/widgets/editors/console/register_console.py +0 -0
- {bec_widgets-2.5.4 → bec_widgets-2.6.0}/bec_widgets/widgets/editors/dict_backed_table.py +0 -0
- {bec_widgets-2.5.4 → bec_widgets-2.6.0}/bec_widgets/widgets/editors/jupyter_console/__init__.py +0 -0
- {bec_widgets-2.5.4 → bec_widgets-2.6.0}/bec_widgets/widgets/editors/jupyter_console/jupyter_console.py +0 -0
- {bec_widgets-2.5.4 → bec_widgets-2.6.0}/bec_widgets/widgets/editors/scan_metadata/__init__.py +0 -0
- {bec_widgets-2.5.4 → bec_widgets-2.6.0}/bec_widgets/widgets/editors/scan_metadata/_util.py +0 -0
- {bec_widgets-2.5.4 → bec_widgets-2.6.0}/bec_widgets/widgets/editors/scan_metadata/register_scan_metadata.py +0 -0
- {bec_widgets-2.5.4 → bec_widgets-2.6.0}/bec_widgets/widgets/editors/scan_metadata/scan_metadata.py +0 -0
- {bec_widgets-2.5.4 → bec_widgets-2.6.0}/bec_widgets/widgets/editors/scan_metadata/scan_metadata.pyproject +0 -0
- {bec_widgets-2.5.4 → bec_widgets-2.6.0}/bec_widgets/widgets/editors/scan_metadata/scan_metadata_plugin.py +0 -0
- {bec_widgets-2.5.4 → bec_widgets-2.6.0}/bec_widgets/widgets/editors/text_box/__init__.py +0 -0
- {bec_widgets-2.5.4 → bec_widgets-2.6.0}/bec_widgets/widgets/editors/text_box/register_text_box.py +0 -0
- {bec_widgets-2.5.4 → bec_widgets-2.6.0}/bec_widgets/widgets/editors/text_box/text_box.py +0 -0
- {bec_widgets-2.5.4 → bec_widgets-2.6.0}/bec_widgets/widgets/editors/text_box/text_box.pyproject +0 -0
- {bec_widgets-2.5.4 → bec_widgets-2.6.0}/bec_widgets/widgets/editors/text_box/text_box_plugin.py +0 -0
- {bec_widgets-2.5.4 → bec_widgets-2.6.0}/bec_widgets/widgets/editors/vscode/__init__.py +0 -0
- {bec_widgets-2.5.4 → bec_widgets-2.6.0}/bec_widgets/widgets/editors/vscode/register_vs_code_editor.py +0 -0
- {bec_widgets-2.5.4 → bec_widgets-2.6.0}/bec_widgets/widgets/editors/vscode/vs_code_editor.pyproject +0 -0
- {bec_widgets-2.5.4 → bec_widgets-2.6.0}/bec_widgets/widgets/editors/vscode/vs_code_editor_plugin.py +0 -0
- {bec_widgets-2.5.4 → bec_widgets-2.6.0}/bec_widgets/widgets/editors/vscode/vscode.py +0 -0
- {bec_widgets-2.5.4 → bec_widgets-2.6.0}/bec_widgets/widgets/editors/web_console/register_web_console.py +0 -0
- {bec_widgets-2.5.4 → bec_widgets-2.6.0}/bec_widgets/widgets/editors/web_console/web_console.py +0 -0
- {bec_widgets-2.5.4 → bec_widgets-2.6.0}/bec_widgets/widgets/editors/web_console/web_console.pyproject +0 -0
- {bec_widgets-2.5.4 → bec_widgets-2.6.0}/bec_widgets/widgets/editors/web_console/web_console_plugin.py +0 -0
- {bec_widgets-2.5.4 → bec_widgets-2.6.0}/bec_widgets/widgets/editors/website/__init__.py +0 -0
- {bec_widgets-2.5.4 → bec_widgets-2.6.0}/bec_widgets/widgets/editors/website/register_website_widget.py +0 -0
- {bec_widgets-2.5.4 → bec_widgets-2.6.0}/bec_widgets/widgets/editors/website/website.py +0 -0
- {bec_widgets-2.5.4 → bec_widgets-2.6.0}/bec_widgets/widgets/editors/website/website_widget.pyproject +0 -0
- {bec_widgets-2.5.4 → bec_widgets-2.6.0}/bec_widgets/widgets/editors/website/website_widget_plugin.py +0 -0
- {bec_widgets-2.5.4 → bec_widgets-2.6.0}/bec_widgets/widgets/games/__init__.py +0 -0
- {bec_widgets-2.5.4 → bec_widgets-2.6.0}/bec_widgets/widgets/games/minesweeper.py +0 -0
- {bec_widgets-2.5.4 → bec_widgets-2.6.0}/bec_widgets/widgets/games/minesweeper.pyproject +0 -0
- {bec_widgets-2.5.4 → bec_widgets-2.6.0}/bec_widgets/widgets/games/minesweeper_plugin.py +0 -0
- {bec_widgets-2.5.4 → bec_widgets-2.6.0}/bec_widgets/widgets/games/register_minesweeper.py +0 -0
- {bec_widgets-2.5.4 → bec_widgets-2.6.0}/bec_widgets/widgets/plots/__init__.py +0 -0
- {bec_widgets-2.5.4 → bec_widgets-2.6.0}/bec_widgets/widgets/plots/image/__init__.py +0 -0
- {bec_widgets-2.5.4 → bec_widgets-2.6.0}/bec_widgets/widgets/plots/image/image.pyproject +0 -0
- {bec_widgets-2.5.4 → bec_widgets-2.6.0}/bec_widgets/widgets/plots/image/image_item.py +0 -0
- {bec_widgets-2.5.4 → bec_widgets-2.6.0}/bec_widgets/widgets/plots/image/image_plugin.py +0 -0
- {bec_widgets-2.5.4 → bec_widgets-2.6.0}/bec_widgets/widgets/plots/image/image_processor.py +0 -0
- {bec_widgets-2.5.4 → bec_widgets-2.6.0}/bec_widgets/widgets/plots/image/register_image.py +0 -0
- {bec_widgets-2.5.4/bec_widgets/widgets/plots/image/toolbar_bundles → bec_widgets-2.6.0/bec_widgets/widgets/plots/image/setting_widgets}/__init__.py +0 -0
- {bec_widgets-2.5.4/bec_widgets/widgets/plots/motor_map → bec_widgets-2.6.0/bec_widgets/widgets/plots/image/toolbar_bundles}/__init__.py +0 -0
- {bec_widgets-2.5.4 → bec_widgets-2.6.0}/bec_widgets/widgets/plots/image/toolbar_bundles/image_selection.py +0 -0
- {bec_widgets-2.5.4 → bec_widgets-2.6.0}/bec_widgets/widgets/plots/image/toolbar_bundles/processing.py +0 -0
- {bec_widgets-2.5.4/bec_widgets/widgets/plots/motor_map/settings → bec_widgets-2.6.0/bec_widgets/widgets/plots/motor_map}/__init__.py +0 -0
- {bec_widgets-2.5.4 → bec_widgets-2.6.0}/bec_widgets/widgets/plots/motor_map/motor_map.py +0 -0
- {bec_widgets-2.5.4 → bec_widgets-2.6.0}/bec_widgets/widgets/plots/motor_map/motor_map.pyproject +0 -0
- {bec_widgets-2.5.4 → bec_widgets-2.6.0}/bec_widgets/widgets/plots/motor_map/motor_map_plugin.py +0 -0
- {bec_widgets-2.5.4 → bec_widgets-2.6.0}/bec_widgets/widgets/plots/motor_map/register_motor_map.py +0 -0
- {bec_widgets-2.5.4/bec_widgets/widgets/plots/motor_map/toolbar_bundles → bec_widgets-2.6.0/bec_widgets/widgets/plots/motor_map/settings}/__init__.py +0 -0
- {bec_widgets-2.5.4 → bec_widgets-2.6.0}/bec_widgets/widgets/plots/motor_map/settings/motor_map_settings.py +0 -0
- {bec_widgets-2.5.4 → bec_widgets-2.6.0}/bec_widgets/widgets/plots/motor_map/settings/motor_map_settings.ui +0 -0
- {bec_widgets-2.5.4/bec_widgets/widgets/plots/multi_waveform → bec_widgets-2.6.0/bec_widgets/widgets/plots/motor_map/toolbar_bundles}/__init__.py +0 -0
- {bec_widgets-2.5.4 → bec_widgets-2.6.0}/bec_widgets/widgets/plots/motor_map/toolbar_bundles/motor_selection.py +0 -0
- {bec_widgets-2.5.4/bec_widgets/widgets/plots/multi_waveform/settings → bec_widgets-2.6.0/bec_widgets/widgets/plots/multi_waveform}/__init__.py +0 -0
- {bec_widgets-2.5.4 → bec_widgets-2.6.0}/bec_widgets/widgets/plots/multi_waveform/multi_waveform.py +0 -0
- {bec_widgets-2.5.4 → bec_widgets-2.6.0}/bec_widgets/widgets/plots/multi_waveform/multi_waveform.pyproject +0 -0
- {bec_widgets-2.5.4 → bec_widgets-2.6.0}/bec_widgets/widgets/plots/multi_waveform/multi_waveform_plugin.py +0 -0
- {bec_widgets-2.5.4 → bec_widgets-2.6.0}/bec_widgets/widgets/plots/multi_waveform/register_multi_waveform.py +0 -0
- {bec_widgets-2.5.4/bec_widgets/widgets/plots/multi_waveform/toolbar_bundles → bec_widgets-2.6.0/bec_widgets/widgets/plots/multi_waveform/settings}/__init__.py +0 -0
- {bec_widgets-2.5.4 → bec_widgets-2.6.0}/bec_widgets/widgets/plots/multi_waveform/settings/control_panel.py +0 -0
- {bec_widgets-2.5.4 → bec_widgets-2.6.0}/bec_widgets/widgets/plots/multi_waveform/settings/multi_waveform_controls.ui +0 -0
- {bec_widgets-2.5.4/bec_widgets/widgets/plots/roi → bec_widgets-2.6.0/bec_widgets/widgets/plots/multi_waveform/toolbar_bundles}/__init__.py +0 -0
- {bec_widgets-2.5.4 → bec_widgets-2.6.0}/bec_widgets/widgets/plots/multi_waveform/toolbar_bundles/monitor_selection.py +0 -0
- {bec_widgets-2.5.4 → bec_widgets-2.6.0}/bec_widgets/widgets/plots/plot_base.py +0 -0
- {bec_widgets-2.5.4/bec_widgets/widgets/plots/scatter_waveform → bec_widgets-2.6.0/bec_widgets/widgets/plots/roi}/__init__.py +0 -0
- {bec_widgets-2.5.4/bec_widgets/widgets/plots/scatter_waveform/settings → bec_widgets-2.6.0/bec_widgets/widgets/plots/scatter_waveform}/__init__.py +0 -0
- {bec_widgets-2.5.4 → bec_widgets-2.6.0}/bec_widgets/widgets/plots/scatter_waveform/register_scatter_waveform.py +0 -0
- {bec_widgets-2.5.4 → bec_widgets-2.6.0}/bec_widgets/widgets/plots/scatter_waveform/scatter_curve.py +0 -0
- {bec_widgets-2.5.4 → bec_widgets-2.6.0}/bec_widgets/widgets/plots/scatter_waveform/scatter_waveform.py +0 -0
- {bec_widgets-2.5.4 → bec_widgets-2.6.0}/bec_widgets/widgets/plots/scatter_waveform/scatter_waveform.pyproject +0 -0
- {bec_widgets-2.5.4 → bec_widgets-2.6.0}/bec_widgets/widgets/plots/scatter_waveform/scatter_waveform_plugin.py +0 -0
- {bec_widgets-2.5.4/bec_widgets/widgets/plots/setting_menus → bec_widgets-2.6.0/bec_widgets/widgets/plots/scatter_waveform/settings}/__init__.py +0 -0
- {bec_widgets-2.5.4 → bec_widgets-2.6.0}/bec_widgets/widgets/plots/scatter_waveform/settings/scatter_curve_setting.py +0 -0
- {bec_widgets-2.5.4 → bec_widgets-2.6.0}/bec_widgets/widgets/plots/scatter_waveform/settings/scatter_curve_settings_horizontal.ui +0 -0
- {bec_widgets-2.5.4 → bec_widgets-2.6.0}/bec_widgets/widgets/plots/scatter_waveform/settings/scatter_curve_settings_vertical.ui +0 -0
- {bec_widgets-2.5.4/bec_widgets/widgets/plots/toolbar_bundles → bec_widgets-2.6.0/bec_widgets/widgets/plots/setting_menus}/__init__.py +0 -0
- {bec_widgets-2.5.4 → bec_widgets-2.6.0}/bec_widgets/widgets/plots/setting_menus/axis_settings.py +0 -0
- {bec_widgets-2.5.4 → bec_widgets-2.6.0}/bec_widgets/widgets/plots/setting_menus/axis_settings_horizontal.ui +0 -0
- {bec_widgets-2.5.4 → bec_widgets-2.6.0}/bec_widgets/widgets/plots/setting_menus/axis_settings_vertical.ui +0 -0
- {bec_widgets-2.5.4/bec_widgets/widgets/plots/waveform → bec_widgets-2.6.0/bec_widgets/widgets/plots/toolbar_bundles}/__init__.py +0 -0
- {bec_widgets-2.5.4 → bec_widgets-2.6.0}/bec_widgets/widgets/plots/toolbar_bundles/mouse_interactions.py +0 -0
- {bec_widgets-2.5.4 → bec_widgets-2.6.0}/bec_widgets/widgets/plots/toolbar_bundles/plot_export.py +0 -0
- {bec_widgets-2.5.4 → bec_widgets-2.6.0}/bec_widgets/widgets/plots/toolbar_bundles/roi_bundle.py +0 -0
- {bec_widgets-2.5.4 → bec_widgets-2.6.0}/bec_widgets/widgets/plots/toolbar_bundles/save_state.py +0 -0
- {bec_widgets-2.5.4/bec_widgets/widgets/plots/waveform/settings → bec_widgets-2.6.0/bec_widgets/widgets/plots/waveform}/__init__.py +0 -0
- {bec_widgets-2.5.4 → bec_widgets-2.6.0}/bec_widgets/widgets/plots/waveform/curve.py +0 -0
- {bec_widgets-2.5.4 → bec_widgets-2.6.0}/bec_widgets/widgets/plots/waveform/register_waveform.py +0 -0
- {bec_widgets-2.5.4/bec_widgets/widgets/plots/waveform/settings/curve_settings → bec_widgets-2.6.0/bec_widgets/widgets/plots/waveform/settings}/__init__.py +0 -0
- {bec_widgets-2.5.4/bec_widgets/widgets/plots/waveform/utils → bec_widgets-2.6.0/bec_widgets/widgets/plots/waveform/settings/curve_settings}/__init__.py +0 -0
- {bec_widgets-2.5.4 → bec_widgets-2.6.0}/bec_widgets/widgets/plots/waveform/settings/curve_settings/curve_setting.py +0 -0
- {bec_widgets-2.5.4 → bec_widgets-2.6.0}/bec_widgets/widgets/plots/waveform/settings/curve_settings/curve_tree.py +0 -0
- {bec_widgets-2.5.4/bec_widgets/widgets/progress → bec_widgets-2.6.0/bec_widgets/widgets/plots/waveform/utils}/__init__.py +0 -0
- {bec_widgets-2.5.4 → bec_widgets-2.6.0}/bec_widgets/widgets/plots/waveform/utils/roi_manager.py +0 -0
- {bec_widgets-2.5.4 → bec_widgets-2.6.0}/bec_widgets/widgets/plots/waveform/waveform.pyproject +0 -0
- {bec_widgets-2.5.4 → bec_widgets-2.6.0}/bec_widgets/widgets/plots/waveform/waveform_plugin.py +0 -0
- {bec_widgets-2.5.4/bec_widgets/widgets/progress/bec_progressbar → bec_widgets-2.6.0/bec_widgets/widgets/progress}/__init__.py +0 -0
- {bec_widgets-2.5.4/bec_widgets/widgets/services → bec_widgets-2.6.0/bec_widgets/widgets/progress/bec_progressbar}/__init__.py +0 -0
- {bec_widgets-2.5.4 → bec_widgets-2.6.0}/bec_widgets/widgets/progress/bec_progressbar/bec_progress_bar.pyproject +0 -0
- {bec_widgets-2.5.4 → bec_widgets-2.6.0}/bec_widgets/widgets/progress/bec_progressbar/bec_progress_bar_plugin.py +0 -0
- {bec_widgets-2.5.4 → bec_widgets-2.6.0}/bec_widgets/widgets/progress/bec_progressbar/bec_progressbar.py +0 -0
- {bec_widgets-2.5.4 → bec_widgets-2.6.0}/bec_widgets/widgets/progress/bec_progressbar/register_bec_progress_bar.py +0 -0
- {bec_widgets-2.5.4 → bec_widgets-2.6.0}/bec_widgets/widgets/progress/ring_progress_bar/__init__.py +0 -0
- {bec_widgets-2.5.4 → bec_widgets-2.6.0}/bec_widgets/widgets/progress/ring_progress_bar/register_ring_progress_bar.py +0 -0
- {bec_widgets-2.5.4 → bec_widgets-2.6.0}/bec_widgets/widgets/progress/ring_progress_bar/ring.py +0 -0
- {bec_widgets-2.5.4 → bec_widgets-2.6.0}/bec_widgets/widgets/progress/ring_progress_bar/ring_progress_bar.py +0 -0
- {bec_widgets-2.5.4 → bec_widgets-2.6.0}/bec_widgets/widgets/progress/ring_progress_bar/ring_progress_bar.pyproject +0 -0
- {bec_widgets-2.5.4 → bec_widgets-2.6.0}/bec_widgets/widgets/progress/ring_progress_bar/ring_progress_bar_plugin.py +0 -0
- {bec_widgets-2.5.4/bec_widgets/widgets/services/bec_queue → bec_widgets-2.6.0/bec_widgets/widgets/services}/__init__.py +0 -0
- {bec_widgets-2.5.4/bec_widgets/widgets/services/bec_status_box → bec_widgets-2.6.0/bec_widgets/widgets/services/bec_queue}/__init__.py +0 -0
- {bec_widgets-2.5.4 → bec_widgets-2.6.0}/bec_widgets/widgets/services/bec_queue/bec_queue.py +0 -0
- {bec_widgets-2.5.4 → bec_widgets-2.6.0}/bec_widgets/widgets/services/bec_queue/bec_queue.pyproject +0 -0
- {bec_widgets-2.5.4 → bec_widgets-2.6.0}/bec_widgets/widgets/services/bec_queue/bec_queue_plugin.py +0 -0
- {bec_widgets-2.5.4 → bec_widgets-2.6.0}/bec_widgets/widgets/services/bec_queue/register_bec_queue.py +0 -0
- {bec_widgets-2.5.4/bec_widgets/widgets/services/device_browser → bec_widgets-2.6.0/bec_widgets/widgets/services/bec_status_box}/__init__.py +0 -0
- {bec_widgets-2.5.4 → bec_widgets-2.6.0}/bec_widgets/widgets/services/bec_status_box/bec_status_box.py +0 -0
- {bec_widgets-2.5.4 → bec_widgets-2.6.0}/bec_widgets/widgets/services/bec_status_box/bec_status_box.pyproject +0 -0
- {bec_widgets-2.5.4 → bec_widgets-2.6.0}/bec_widgets/widgets/services/bec_status_box/bec_status_box_plugin.py +0 -0
- {bec_widgets-2.5.4 → bec_widgets-2.6.0}/bec_widgets/widgets/services/bec_status_box/register_bec_status_box.py +0 -0
- {bec_widgets-2.5.4 → bec_widgets-2.6.0}/bec_widgets/widgets/services/bec_status_box/status_item.py +0 -0
- {bec_widgets-2.5.4/bec_widgets/widgets/utility → bec_widgets-2.6.0/bec_widgets/widgets/services/device_browser}/__init__.py +0 -0
- {bec_widgets-2.5.4 → bec_widgets-2.6.0}/bec_widgets/widgets/services/device_browser/device_browser.py +0 -0
- {bec_widgets-2.5.4 → bec_widgets-2.6.0}/bec_widgets/widgets/services/device_browser/device_browser.pyproject +0 -0
- {bec_widgets-2.5.4 → bec_widgets-2.6.0}/bec_widgets/widgets/services/device_browser/device_browser.ui +0 -0
- {bec_widgets-2.5.4 → bec_widgets-2.6.0}/bec_widgets/widgets/services/device_browser/device_browser_plugin.py +0 -0
- {bec_widgets-2.5.4 → bec_widgets-2.6.0}/bec_widgets/widgets/services/device_browser/device_item/__init__.py +0 -0
- {bec_widgets-2.5.4 → bec_widgets-2.6.0}/bec_widgets/widgets/services/device_browser/device_item/device_item.py +0 -0
- {bec_widgets-2.5.4 → bec_widgets-2.6.0}/bec_widgets/widgets/services/device_browser/register_device_browser.py +0 -0
- {bec_widgets-2.5.4/bec_widgets/widgets/utility/spinbox → bec_widgets-2.6.0/bec_widgets/widgets/utility}/__init__.py +0 -0
- {bec_widgets-2.5.4 → bec_widgets-2.6.0}/bec_widgets/widgets/utility/logpanel/__init__.py +0 -0
- {bec_widgets-2.5.4 → bec_widgets-2.6.0}/bec_widgets/widgets/utility/logpanel/_util.py +0 -0
- {bec_widgets-2.5.4 → bec_widgets-2.6.0}/bec_widgets/widgets/utility/logpanel/log_panel.pyproject +0 -0
- {bec_widgets-2.5.4 → bec_widgets-2.6.0}/bec_widgets/widgets/utility/logpanel/log_panel_plugin.py +0 -0
- {bec_widgets-2.5.4 → bec_widgets-2.6.0}/bec_widgets/widgets/utility/logpanel/logpanel.py +0 -0
- {bec_widgets-2.5.4 → bec_widgets-2.6.0}/bec_widgets/widgets/utility/logpanel/register_log_panel.py +0 -0
- {bec_widgets-2.5.4/bec_widgets/widgets/utility/spinner → bec_widgets-2.6.0/bec_widgets/widgets/utility/spinbox}/__init__.py +0 -0
- {bec_widgets-2.5.4 → bec_widgets-2.6.0}/bec_widgets/widgets/utility/spinbox/bec_spin_box.pyproject +0 -0
- {bec_widgets-2.5.4 → bec_widgets-2.6.0}/bec_widgets/widgets/utility/spinbox/bec_spin_box_plugin.py +0 -0
- {bec_widgets-2.5.4 → bec_widgets-2.6.0}/bec_widgets/widgets/utility/spinbox/decimal_spinbox.py +0 -0
- {bec_widgets-2.5.4 → bec_widgets-2.6.0}/bec_widgets/widgets/utility/spinbox/register_bec_spin_box.py +0 -0
- {bec_widgets-2.5.4/bec_widgets/widgets/utility/toggle → bec_widgets-2.6.0/bec_widgets/widgets/utility/spinner}/__init__.py +0 -0
- {bec_widgets-2.5.4 → bec_widgets-2.6.0}/bec_widgets/widgets/utility/spinner/register_spinner_widget.py +0 -0
- {bec_widgets-2.5.4 → bec_widgets-2.6.0}/bec_widgets/widgets/utility/spinner/spinner.py +0 -0
- {bec_widgets-2.5.4 → bec_widgets-2.6.0}/bec_widgets/widgets/utility/spinner/spinner_widget.pyproject +0 -0
- {bec_widgets-2.5.4 → bec_widgets-2.6.0}/bec_widgets/widgets/utility/spinner/spinner_widget_plugin.py +0 -0
- {bec_widgets-2.5.4/bec_widgets/widgets/utility/visual → bec_widgets-2.6.0/bec_widgets/widgets/utility/toggle}/__init__.py +0 -0
- {bec_widgets-2.5.4 → bec_widgets-2.6.0}/bec_widgets/widgets/utility/toggle/register_toggle_switch.py +0 -0
- {bec_widgets-2.5.4 → bec_widgets-2.6.0}/bec_widgets/widgets/utility/toggle/toggle.py +0 -0
- {bec_widgets-2.5.4 → bec_widgets-2.6.0}/bec_widgets/widgets/utility/toggle/toggle_switch.pyproject +0 -0
- {bec_widgets-2.5.4 → bec_widgets-2.6.0}/bec_widgets/widgets/utility/toggle/toggle_switch_plugin.py +0 -0
- {bec_widgets-2.5.4/bec_widgets/widgets/utility/visual/color_button → bec_widgets-2.6.0/bec_widgets/widgets/utility/visual}/__init__.py +0 -0
- {bec_widgets-2.5.4/bec_widgets/widgets/utility/visual/color_button_native → bec_widgets-2.6.0/bec_widgets/widgets/utility/visual/color_button}/__init__.py +0 -0
- {bec_widgets-2.5.4 → bec_widgets-2.6.0}/bec_widgets/widgets/utility/visual/color_button/color_button.py +0 -0
- {bec_widgets-2.5.4 → bec_widgets-2.6.0}/bec_widgets/widgets/utility/visual/color_button/color_button.pyproject +0 -0
- {bec_widgets-2.5.4 → bec_widgets-2.6.0}/bec_widgets/widgets/utility/visual/color_button/color_button_plugin.py +0 -0
- {bec_widgets-2.5.4 → bec_widgets-2.6.0}/bec_widgets/widgets/utility/visual/color_button/register_color_button.py +0 -0
- {bec_widgets-2.5.4/bec_widgets/widgets/utility/visual/colormap_selector → bec_widgets-2.6.0/bec_widgets/widgets/utility/visual/color_button_native}/__init__.py +0 -0
- {bec_widgets-2.5.4 → bec_widgets-2.6.0}/bec_widgets/widgets/utility/visual/color_button_native/color_button_native.py +0 -0
- {bec_widgets-2.5.4 → bec_widgets-2.6.0}/bec_widgets/widgets/utility/visual/color_button_native/color_button_native.pyproject +0 -0
- {bec_widgets-2.5.4 → bec_widgets-2.6.0}/bec_widgets/widgets/utility/visual/color_button_native/color_button_native_plugin.py +0 -0
- {bec_widgets-2.5.4 → bec_widgets-2.6.0}/bec_widgets/widgets/utility/visual/color_button_native/register_color_button_native.py +0 -0
- {bec_widgets-2.5.4/bec_widgets/widgets/utility/visual/colormap_widget → bec_widgets-2.6.0/bec_widgets/widgets/utility/visual/colormap_selector}/__init__.py +0 -0
- {bec_widgets-2.5.4 → bec_widgets-2.6.0}/bec_widgets/widgets/utility/visual/colormap_selector/colormap_selector.py +0 -0
- {bec_widgets-2.5.4 → bec_widgets-2.6.0}/bec_widgets/widgets/utility/visual/colormap_selector/colormap_selector.pyproject +0 -0
- {bec_widgets-2.5.4 → bec_widgets-2.6.0}/bec_widgets/widgets/utility/visual/colormap_selector/colormap_selector_plugin.py +0 -0
- {bec_widgets-2.5.4 → bec_widgets-2.6.0}/bec_widgets/widgets/utility/visual/colormap_selector/register_colormap_selector.py +0 -0
- {bec_widgets-2.5.4/bec_widgets/widgets/utility/visual/dark_mode_button → bec_widgets-2.6.0/bec_widgets/widgets/utility/visual/colormap_widget}/__init__.py +0 -0
- {bec_widgets-2.5.4 → bec_widgets-2.6.0}/bec_widgets/widgets/utility/visual/colormap_widget/bec_color_map_widget.pyproject +0 -0
- {bec_widgets-2.5.4 → bec_widgets-2.6.0}/bec_widgets/widgets/utility/visual/colormap_widget/bec_color_map_widget_plugin.py +0 -0
- {bec_widgets-2.5.4 → bec_widgets-2.6.0}/bec_widgets/widgets/utility/visual/colormap_widget/colormap_widget.py +0 -0
- {bec_widgets-2.5.4 → bec_widgets-2.6.0}/bec_widgets/widgets/utility/visual/colormap_widget/register_bec_color_map_widget.py +0 -0
- {bec_widgets-2.5.4 → bec_widgets-2.6.0}/bec_widgets/widgets/utility/visual/dark_mode_button/dark_mode_button.py +0 -0
- {bec_widgets-2.5.4 → bec_widgets-2.6.0}/bec_widgets/widgets/utility/visual/dark_mode_button/dark_mode_button.pyproject +0 -0
- {bec_widgets-2.5.4 → bec_widgets-2.6.0}/bec_widgets/widgets/utility/visual/dark_mode_button/dark_mode_button_plugin.py +0 -0
- {bec_widgets-2.5.4 → bec_widgets-2.6.0}/bec_widgets/widgets/utility/visual/dark_mode_button/register_dark_mode_button.py +0 -0
@@ -0,0 +1,41 @@
|
|
1
|
+
name: Bug report
|
2
|
+
description: File a bug report.
|
3
|
+
title: "[BUG]: "
|
4
|
+
labels: ["bug"]
|
5
|
+
|
6
|
+
body:
|
7
|
+
- type: markdown
|
8
|
+
attributes:
|
9
|
+
value: |
|
10
|
+
Bug report:
|
11
|
+
- type: textarea
|
12
|
+
id: description
|
13
|
+
attributes:
|
14
|
+
label: Provide a brief description of the bug.
|
15
|
+
- type: textarea
|
16
|
+
id: expected
|
17
|
+
attributes:
|
18
|
+
label: Describe what you expected to happen and what actually happened.
|
19
|
+
- type: textarea
|
20
|
+
id: reproduction
|
21
|
+
attributes:
|
22
|
+
label: Outline the steps that lead to the bug's occurrence. Be specific and provide a clear sequence of actions.
|
23
|
+
- type: input
|
24
|
+
id: version
|
25
|
+
attributes:
|
26
|
+
label: bec_widgets version
|
27
|
+
description: which version of BEC widgets was running?
|
28
|
+
- type: input
|
29
|
+
id: bec-version
|
30
|
+
attributes:
|
31
|
+
label: bec core version
|
32
|
+
description: which version of BEC core was running?
|
33
|
+
- type: textarea
|
34
|
+
id: extra
|
35
|
+
attributes:
|
36
|
+
label: Any extra info / data? e.g. log output...
|
37
|
+
- type: input
|
38
|
+
id: issues
|
39
|
+
attributes:
|
40
|
+
label: Related issues
|
41
|
+
description: please tag any related issues
|
@@ -1,3 +1,13 @@
|
|
1
|
+
---
|
2
|
+
name: Documentation update request
|
3
|
+
about: Suggest an update to the docs
|
4
|
+
title: '[DOCS]: '
|
5
|
+
type: documentation
|
6
|
+
label: documentation
|
7
|
+
assignees: ''
|
8
|
+
|
9
|
+
---
|
10
|
+
|
1
11
|
## Documentation Section
|
2
12
|
|
3
13
|
[Specify the section or page of the documentation that needs updating]
|
@@ -1,19 +1,24 @@
|
|
1
1
|
## Description
|
2
2
|
|
3
|
-
[Provide a brief description of the changes introduced by this
|
3
|
+
[Provide a brief description of the changes introduced by this pull request.]
|
4
4
|
|
5
5
|
## Related Issues
|
6
6
|
|
7
|
-
[Cite any related issues or feature requests that are addressed or resolved by this
|
7
|
+
[Cite any related issues or feature requests that are addressed or resolved by this pull request. Link the associated issue, for example, with `fixes #123` or `closes #123`.]
|
8
8
|
|
9
9
|
## Type of Change
|
10
10
|
|
11
11
|
- Change 1
|
12
12
|
- Change 2
|
13
13
|
|
14
|
+
## How to test
|
15
|
+
|
16
|
+
- Run unit tests
|
17
|
+
- Open [widget] in designer and play around with the properties
|
18
|
+
|
14
19
|
## Potential side effects
|
15
20
|
|
16
|
-
[Describe any potential side effects or risks of merging this
|
21
|
+
[Describe any potential side effects or risks of merging this PR.]
|
17
22
|
|
18
23
|
## Screenshots / GIFs (if applicable)
|
19
24
|
|
@@ -0,0 +1,342 @@
|
|
1
|
+
import functools
|
2
|
+
import os
|
3
|
+
from typing import Literal
|
4
|
+
|
5
|
+
import requests
|
6
|
+
from github import Github
|
7
|
+
from pydantic import BaseModel
|
8
|
+
|
9
|
+
|
10
|
+
class GHConfig(BaseModel):
|
11
|
+
token: str
|
12
|
+
organization: str
|
13
|
+
repository: str
|
14
|
+
project_number: int
|
15
|
+
graphql_url: str
|
16
|
+
rest_url: str
|
17
|
+
headers: dict
|
18
|
+
|
19
|
+
|
20
|
+
class ProjectItemHandler:
|
21
|
+
"""
|
22
|
+
A class to handle GitHub project items.
|
23
|
+
"""
|
24
|
+
|
25
|
+
def __init__(self, gh_config: GHConfig):
|
26
|
+
self.gh_config = gh_config
|
27
|
+
self.gh = Github(gh_config.token)
|
28
|
+
self.repo = self.gh.get_repo(f"{gh_config.organization}/{gh_config.repository}")
|
29
|
+
self.project_node_id = self.get_project_node_id()
|
30
|
+
|
31
|
+
def set_issue_status(
|
32
|
+
self,
|
33
|
+
status: Literal[
|
34
|
+
"Selected for Development",
|
35
|
+
"Weekly Backlog",
|
36
|
+
"In Development",
|
37
|
+
"Ready For Review",
|
38
|
+
"On Hold",
|
39
|
+
"Done",
|
40
|
+
],
|
41
|
+
issue_number: int | None = None,
|
42
|
+
issue_node_id: str | None = None,
|
43
|
+
):
|
44
|
+
"""
|
45
|
+
Set the status field of a GitHub issue in the project.
|
46
|
+
|
47
|
+
Args:
|
48
|
+
status (str): The status to set. Must be one of the predefined statuses.
|
49
|
+
issue_number (int, optional): The issue number. If not provided, issue_node_id must be provided.
|
50
|
+
issue_node_id (str, optional): The issue node ID. If not provided, issue_number must be provided.
|
51
|
+
"""
|
52
|
+
if not issue_number and not issue_node_id:
|
53
|
+
raise ValueError("Either issue_number or issue_node_id must be provided.")
|
54
|
+
if issue_number and issue_node_id:
|
55
|
+
raise ValueError("Only one of issue_number or issue_node_id must be provided.")
|
56
|
+
if issue_number is not None:
|
57
|
+
issue = self.repo.get_issue(issue_number)
|
58
|
+
issue_id = self.get_issue_info(issue.node_id)[0]["id"]
|
59
|
+
else:
|
60
|
+
issue_id = issue_node_id
|
61
|
+
field_id, option_id = self.get_status_field_id(field_name=status)
|
62
|
+
self.set_field_option(issue_id, field_id, option_id)
|
63
|
+
|
64
|
+
def run_graphql(self, query: str, variables: dict) -> dict:
|
65
|
+
"""
|
66
|
+
Execute a GraphQL query against the GitHub API.
|
67
|
+
|
68
|
+
Args:
|
69
|
+
query (str): The GraphQL query to execute.
|
70
|
+
variables (dict): The variables to pass to the query.
|
71
|
+
|
72
|
+
Returns:
|
73
|
+
dict: The response from the GitHub API.
|
74
|
+
"""
|
75
|
+
response = requests.post(
|
76
|
+
self.gh_config.graphql_url,
|
77
|
+
json={"query": query, "variables": variables},
|
78
|
+
headers=self.gh_config.headers,
|
79
|
+
timeout=10,
|
80
|
+
)
|
81
|
+
if response.status_code != 200:
|
82
|
+
raise Exception(
|
83
|
+
f"Query failed with status code {response.status_code}: {response.text}"
|
84
|
+
)
|
85
|
+
return response.json()
|
86
|
+
|
87
|
+
def get_project_node_id(self):
|
88
|
+
"""
|
89
|
+
Retrieve the project node ID from the GitHub API.
|
90
|
+
"""
|
91
|
+
query = """
|
92
|
+
query($owner: String!, $number: Int!) {
|
93
|
+
organization(login: $owner) {
|
94
|
+
projectV2(number: $number) {
|
95
|
+
id
|
96
|
+
}
|
97
|
+
}
|
98
|
+
}
|
99
|
+
"""
|
100
|
+
variables = {"owner": self.gh_config.organization, "number": self.gh_config.project_number}
|
101
|
+
resp = self.run_graphql(query, variables)
|
102
|
+
return resp["data"]["organization"]["projectV2"]["id"]
|
103
|
+
|
104
|
+
def get_issue_info(self, issue_node_id: str):
|
105
|
+
"""
|
106
|
+
Get the project-related information for a given issue node ID.
|
107
|
+
|
108
|
+
Args:
|
109
|
+
issue_node_id (str): The node ID of the issue. Please note that this is not the issue number and typically starts with "I".
|
110
|
+
|
111
|
+
Returns:
|
112
|
+
list[dict]: A list of project items associated with the issue.
|
113
|
+
"""
|
114
|
+
query = """
|
115
|
+
query($issueId: ID!) {
|
116
|
+
node(id: $issueId) {
|
117
|
+
... on Issue {
|
118
|
+
projectItems(first: 10) {
|
119
|
+
nodes {
|
120
|
+
project {
|
121
|
+
id
|
122
|
+
title
|
123
|
+
}
|
124
|
+
id
|
125
|
+
fieldValues(first: 20) {
|
126
|
+
nodes {
|
127
|
+
... on ProjectV2ItemFieldSingleSelectValue {
|
128
|
+
name
|
129
|
+
field {
|
130
|
+
... on ProjectV2SingleSelectField {
|
131
|
+
name
|
132
|
+
}
|
133
|
+
}
|
134
|
+
}
|
135
|
+
}
|
136
|
+
}
|
137
|
+
}
|
138
|
+
}
|
139
|
+
}
|
140
|
+
}
|
141
|
+
}
|
142
|
+
"""
|
143
|
+
variables = {"issueId": issue_node_id}
|
144
|
+
resp = self.run_graphql(query, variables)
|
145
|
+
return resp["data"]["node"]["projectItems"]["nodes"]
|
146
|
+
|
147
|
+
def get_status_field_id(
|
148
|
+
self,
|
149
|
+
field_name: Literal[
|
150
|
+
"Selected for Development",
|
151
|
+
"Weekly Backlog",
|
152
|
+
"In Development",
|
153
|
+
"Ready For Review",
|
154
|
+
"On Hold",
|
155
|
+
"Done",
|
156
|
+
],
|
157
|
+
) -> tuple[str, str]:
|
158
|
+
"""
|
159
|
+
Get the status field ID and option ID for the given field name in the project.
|
160
|
+
|
161
|
+
Args:
|
162
|
+
field_name (str): The name of the field to retrieve.
|
163
|
+
Must be one of the predefined statuses.
|
164
|
+
|
165
|
+
Returns:
|
166
|
+
tuple[str, str]: A tuple containing the field ID and option ID.
|
167
|
+
"""
|
168
|
+
field_id = None
|
169
|
+
option_id = None
|
170
|
+
project_fields = self.get_project_fields()
|
171
|
+
for field in project_fields:
|
172
|
+
if field["name"] != "Status":
|
173
|
+
continue
|
174
|
+
field_id = field["id"]
|
175
|
+
for option in field["options"]:
|
176
|
+
if option["name"] == field_name:
|
177
|
+
option_id = option["id"]
|
178
|
+
break
|
179
|
+
if not field_id or not option_id:
|
180
|
+
raise ValueError(f"Field '{field_name}' not found in project fields.")
|
181
|
+
|
182
|
+
return field_id, option_id
|
183
|
+
|
184
|
+
def set_field_option(self, item_id, field_id, option_id):
|
185
|
+
"""
|
186
|
+
Set the option of a project item for a single-select field.
|
187
|
+
|
188
|
+
Args:
|
189
|
+
item_id (str): The ID of the project item to update.
|
190
|
+
field_id (str): The ID of the field to update.
|
191
|
+
option_id (str): The ID of the option to set.
|
192
|
+
"""
|
193
|
+
|
194
|
+
mutation = """
|
195
|
+
mutation($projectId: ID!, $itemId: ID!, $fieldId: ID!, $optionId: String!) {
|
196
|
+
updateProjectV2ItemFieldValue(
|
197
|
+
input: {
|
198
|
+
projectId: $projectId
|
199
|
+
itemId: $itemId
|
200
|
+
fieldId: $fieldId
|
201
|
+
value: { singleSelectOptionId: $optionId }
|
202
|
+
}
|
203
|
+
) {
|
204
|
+
projectV2Item {
|
205
|
+
id
|
206
|
+
}
|
207
|
+
}
|
208
|
+
}
|
209
|
+
"""
|
210
|
+
variables = {
|
211
|
+
"projectId": self.project_node_id,
|
212
|
+
"itemId": item_id,
|
213
|
+
"fieldId": field_id,
|
214
|
+
"optionId": option_id,
|
215
|
+
}
|
216
|
+
return self.run_graphql(mutation, variables)
|
217
|
+
|
218
|
+
@functools.lru_cache(maxsize=1)
|
219
|
+
def get_project_fields(self) -> list[dict]:
|
220
|
+
"""
|
221
|
+
Get the available fields in the project.
|
222
|
+
This method caches the result to avoid multiple API calls.
|
223
|
+
|
224
|
+
Returns:
|
225
|
+
list[dict]: A list of fields in the project.
|
226
|
+
"""
|
227
|
+
|
228
|
+
query = """
|
229
|
+
query($projectId: ID!) {
|
230
|
+
node(id: $projectId) {
|
231
|
+
... on ProjectV2 {
|
232
|
+
fields(first: 50) {
|
233
|
+
nodes {
|
234
|
+
... on ProjectV2SingleSelectField {
|
235
|
+
id
|
236
|
+
name
|
237
|
+
options {
|
238
|
+
id
|
239
|
+
name
|
240
|
+
}
|
241
|
+
}
|
242
|
+
}
|
243
|
+
}
|
244
|
+
}
|
245
|
+
}
|
246
|
+
}
|
247
|
+
"""
|
248
|
+
variables = {"projectId": self.project_node_id}
|
249
|
+
resp = self.run_graphql(query, variables)
|
250
|
+
return list(filter(bool, resp["data"]["node"]["fields"]["nodes"]))
|
251
|
+
|
252
|
+
def get_pull_request_linked_issues(self, pr_number: int) -> list[dict]:
|
253
|
+
"""
|
254
|
+
Get the linked issues of a pull request.
|
255
|
+
|
256
|
+
Args:
|
257
|
+
pr_number (int): The pull request number.
|
258
|
+
|
259
|
+
Returns:
|
260
|
+
list[dict]: A list of linked issues.
|
261
|
+
"""
|
262
|
+
query = """
|
263
|
+
query($number: Int!, $owner: String!, $repo: String!) {
|
264
|
+
repository(owner: $owner, name: $repo) {
|
265
|
+
pullRequest(number: $number) {
|
266
|
+
id
|
267
|
+
closingIssuesReferences(first: 50) {
|
268
|
+
edges {
|
269
|
+
node {
|
270
|
+
id
|
271
|
+
body
|
272
|
+
number
|
273
|
+
title
|
274
|
+
}
|
275
|
+
}
|
276
|
+
}
|
277
|
+
}
|
278
|
+
}
|
279
|
+
}
|
280
|
+
"""
|
281
|
+
variables = {
|
282
|
+
"number": pr_number,
|
283
|
+
"owner": self.gh_config.organization,
|
284
|
+
"repo": self.gh_config.repository,
|
285
|
+
}
|
286
|
+
resp = self.run_graphql(query, variables)
|
287
|
+
edges = resp["data"]["repository"]["pullRequest"]["closingIssuesReferences"]["edges"]
|
288
|
+
return [edge["node"] for edge in edges if edge.get("node")]
|
289
|
+
|
290
|
+
|
291
|
+
def main():
|
292
|
+
# GitHub settings
|
293
|
+
token = os.getenv("TOKEN")
|
294
|
+
org = os.getenv("ORG")
|
295
|
+
repo = os.getenv("REPO")
|
296
|
+
project_number = os.getenv("PROJECT_NUMBER")
|
297
|
+
pr_number = os.getenv("PR_NUMBER")
|
298
|
+
|
299
|
+
if not token:
|
300
|
+
raise ValueError("GitHub token is not set. Please set the TOKEN environment variable.")
|
301
|
+
if not org:
|
302
|
+
raise ValueError("GitHub organization is not set. Please set the ORG environment variable.")
|
303
|
+
if not repo:
|
304
|
+
raise ValueError("GitHub repository is not set. Please set the REPO environment variable.")
|
305
|
+
if not project_number:
|
306
|
+
raise ValueError(
|
307
|
+
"GitHub project number is not set. Please set the PROJECT_NUMBER environment variable."
|
308
|
+
)
|
309
|
+
if not pr_number:
|
310
|
+
raise ValueError(
|
311
|
+
"Pull request number is not set. Please set the PR_NUMBER environment variable."
|
312
|
+
)
|
313
|
+
|
314
|
+
project_number = int(project_number)
|
315
|
+
pr_number = int(pr_number)
|
316
|
+
|
317
|
+
gh_config = GHConfig(
|
318
|
+
token=token,
|
319
|
+
organization=org,
|
320
|
+
repository=repo,
|
321
|
+
project_number=project_number,
|
322
|
+
graphql_url="https://api.github.com/graphql",
|
323
|
+
rest_url=f"https://api.github.com/repos/{org}/{repo}/issues",
|
324
|
+
headers={"Authorization": f"Bearer {token}", "Accept": "application/vnd.github+json"},
|
325
|
+
)
|
326
|
+
project_item_handler = ProjectItemHandler(gh_config=gh_config)
|
327
|
+
|
328
|
+
# Get PR info
|
329
|
+
pr = project_item_handler.repo.get_pull(pr_number)
|
330
|
+
|
331
|
+
# Get the linked issues of the pull request
|
332
|
+
linked_issues = project_item_handler.get_pull_request_linked_issues(pr_number=pr_number)
|
333
|
+
print(f"Linked issues: {linked_issues}")
|
334
|
+
|
335
|
+
target_status = "In Development" if pr.draft else "Ready For Review"
|
336
|
+
print(f"Target status: {target_status}")
|
337
|
+
for issue in linked_issues:
|
338
|
+
project_item_handler.set_issue_status(issue_number=issue["number"], status=target_status)
|
339
|
+
|
340
|
+
|
341
|
+
if __name__ == "__main__":
|
342
|
+
main()
|
@@ -0,0 +1,40 @@
|
|
1
|
+
name: Sync PR to Project
|
2
|
+
|
3
|
+
on:
|
4
|
+
pull_request:
|
5
|
+
types: [opened, edited, ready_for_review, converted_to_draft, reopened, synchronize]
|
6
|
+
|
7
|
+
jobs:
|
8
|
+
sync-project:
|
9
|
+
runs-on: ubuntu-latest
|
10
|
+
|
11
|
+
permissions:
|
12
|
+
issues: write
|
13
|
+
pull-requests: read
|
14
|
+
contents: read
|
15
|
+
|
16
|
+
env:
|
17
|
+
PROJECT_NUMBER: 3 # BEC Project
|
18
|
+
ORG: 'bec-project'
|
19
|
+
REPO: 'bec_widgets'
|
20
|
+
TOKEN: ${{ secrets.ADD_ISSUE_TO_PROJECT }}
|
21
|
+
PR_NUMBER: ${{ github.event.pull_request.number }}
|
22
|
+
|
23
|
+
steps:
|
24
|
+
- name: Set up python environment
|
25
|
+
uses: actions/setup-python@v4
|
26
|
+
with:
|
27
|
+
python-version: 3.11
|
28
|
+
|
29
|
+
- name: Checkout repo
|
30
|
+
uses: actions/checkout@v4
|
31
|
+
with:
|
32
|
+
repository: ${{ github.repository }}
|
33
|
+
ref: ${{ github.event.pull_request.head.ref }}
|
34
|
+
|
35
|
+
- name: Install dependencies
|
36
|
+
run: |
|
37
|
+
pip install -r ./.github/scripts/pr_issue_sync/requirements.txt
|
38
|
+
- name: Sync PR to Project
|
39
|
+
run: |
|
40
|
+
python ./.github/scripts/pr_issue_sync/pr_issue_sync.py
|
@@ -1,6 +1,37 @@
|
|
1
1
|
# CHANGELOG
|
2
2
|
|
3
3
|
|
4
|
+
## v2.6.0 (2025-05-26)
|
5
|
+
|
6
|
+
### Bug Fixes
|
7
|
+
|
8
|
+
- **image_roi**: Position can be set from rpc
|
9
|
+
([`41b7ca8`](https://github.com/bec-project/bec_widgets/commit/41b7ca8e649d39dd21d09febfa8aabfc8f6f98fc))
|
10
|
+
|
11
|
+
### Chores
|
12
|
+
|
13
|
+
- Migrate issue template to github form syntax
|
14
|
+
([`05489a1`](https://github.com/bec-project/bec_widgets/commit/05489a1c563e20a49fe34d4df97ca0c3c23d8634))
|
15
|
+
|
16
|
+
### Continuous Integration
|
17
|
+
|
18
|
+
- Add pr issue sync
|
19
|
+
([`53377d2`](https://github.com/bec-project/bec_widgets/commit/53377d26e2767b3df7c788330c4d592fc12051ed))
|
20
|
+
|
21
|
+
### Features
|
22
|
+
|
23
|
+
- **image_roi_tree**: Gui roi manager for image widget
|
24
|
+
([`a939c3b`](https://github.com/bec-project/bec_widgets/commit/a939c3b1c4a7bcf1322f2d1d330fdb721ea04d56))
|
25
|
+
|
26
|
+
- **waveform**: Lmfitdialog cleanup after close
|
27
|
+
([`a020f2d`](https://github.com/bec-project/bec_widgets/commit/a020f2dc7e537493ce4aff5d88ea003956624869))
|
28
|
+
|
29
|
+
### Refactoring
|
30
|
+
|
31
|
+
- **image_roi**: Glowing handles for Rectangle roi
|
32
|
+
([`7a531c1`](https://github.com/bec-project/bec_widgets/commit/7a531c17d6a4411550600ddc8bb9d56ee777259d))
|
33
|
+
|
34
|
+
|
4
35
|
## v2.5.4 (2025-05-22)
|
5
36
|
|
6
37
|
### Bug Fixes
|
@@ -602,6 +602,16 @@ class BaseROI(RPCBase):
|
|
602
602
|
ndarray: Pixel data inside the ROI, or (data, coords) if *returnMappedCoords* is True.
|
603
603
|
"""
|
604
604
|
|
605
|
+
@rpc_call
|
606
|
+
def set_position(self, x: "float", y: "float"):
|
607
|
+
"""
|
608
|
+
Sets the position of the ROI.
|
609
|
+
|
610
|
+
Args:
|
611
|
+
x (float): The x-coordinate of the new position.
|
612
|
+
y (float): The y-coordinate of the new position.
|
613
|
+
"""
|
614
|
+
|
605
615
|
|
606
616
|
class CircularROI(RPCBase):
|
607
617
|
"""Circular Region of Interest with center/diameter tracking and auto-labeling."""
|
@@ -701,6 +711,16 @@ class CircularROI(RPCBase):
|
|
701
711
|
ndarray: Pixel data inside the ROI, or (data, coords) if *returnMappedCoords* is True.
|
702
712
|
"""
|
703
713
|
|
714
|
+
@rpc_call
|
715
|
+
def set_position(self, x: "float", y: "float"):
|
716
|
+
"""
|
717
|
+
Sets the position of the ROI.
|
718
|
+
|
719
|
+
Args:
|
720
|
+
x (float): The x-coordinate of the new position.
|
721
|
+
y (float): The y-coordinate of the new position.
|
722
|
+
"""
|
723
|
+
|
704
724
|
|
705
725
|
class Curve(RPCBase):
|
706
726
|
@rpc_call
|
@@ -1418,7 +1438,7 @@ class Image(RPCBase):
|
|
1418
1438
|
self,
|
1419
1439
|
kind: "Literal['rect', 'circle']" = "rect",
|
1420
1440
|
name: "str | None" = None,
|
1421
|
-
line_width: "int | None" =
|
1441
|
+
line_width: "int | None" = 5,
|
1422
1442
|
pos: "tuple[float, float] | None" = (10, 10),
|
1423
1443
|
size: "tuple[float, float] | None" = (50, 50),
|
1424
1444
|
**pg_kwargs,
|
@@ -2652,6 +2672,16 @@ class RectangularROI(RPCBase):
|
|
2652
2672
|
ndarray: Pixel data inside the ROI, or (data, coords) if *returnMappedCoords* is True.
|
2653
2673
|
"""
|
2654
2674
|
|
2675
|
+
@rpc_call
|
2676
|
+
def set_position(self, x: "float", y: "float"):
|
2677
|
+
"""
|
2678
|
+
Sets the position of the ROI.
|
2679
|
+
|
2680
|
+
Args:
|
2681
|
+
x (float): The x-coordinate of the new position.
|
2682
|
+
y (float): The y-coordinate of the new position.
|
2683
|
+
"""
|
2684
|
+
|
2655
2685
|
|
2656
2686
|
class ResetButton(RPCBase):
|
2657
2687
|
"""A button that resets the scan queue."""
|
@@ -114,7 +114,7 @@ class JupyterConsoleWindow(QWidget): # pragma: no cover:
|
|
114
114
|
#
|
115
115
|
sixth_tab = QWidget()
|
116
116
|
sixth_tab_layout = QVBoxLayout(sixth_tab)
|
117
|
-
self.im = Image(popups=
|
117
|
+
self.im = Image(popups=True)
|
118
118
|
self.mi = self.im.main_image
|
119
119
|
sixth_tab_layout.addWidget(self.im)
|
120
120
|
tab_widget.addTab(sixth_tab, "Image Next Gen")
|