bec-widgets 1.4.1__py3-none-any.whl → 1.5.1__py3-none-any.whl
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.
- CHANGELOG.md +32 -25
- PKG-INFO +1 -1
- bec_widgets/applications/alignment/alignment_1d/alignment_1d.py +7 -20
- bec_widgets/cli/client.py +430 -32
- bec_widgets/cli/generate_cli.py +2 -2
- bec_widgets/cli/rpc_register.py +2 -0
- bec_widgets/cli/rpc_wigdet_handler.py +5 -3
- bec_widgets/cli/server.py +2 -3
- bec_widgets/examples/jupyter_console/jupyter_console_window.py +10 -8
- bec_widgets/qt_utils/palette_viewer.py +1 -1
- bec_widgets/utils/crosshair.py +88 -35
- bec_widgets/utils/generate_designer_plugin.py +1 -1
- bec_widgets/utils/plugin_utils.py +14 -5
- bec_widgets/utils/ui_loader.py +2 -2
- bec_widgets/widgets/{dock → containers/dock}/dock_area.py +21 -11
- bec_widgets/widgets/{dock → containers/dock}/dock_area_plugin.py +1 -1
- bec_widgets/widgets/{dock → containers/dock}/register_dock_area.py +1 -1
- bec_widgets/widgets/{figure → containers/figure}/figure.py +41 -7
- bec_widgets/widgets/{figure → containers/figure}/plots/image/image.py +7 -4
- bec_widgets/widgets/{figure → containers/figure}/plots/image/image_item.py +5 -2
- bec_widgets/widgets/{figure → containers/figure}/plots/motor_map/motor_map.py +2 -2
- bec_widgets/widgets/containers/figure/plots/multi_waveform/multi_waveform.py +353 -0
- bec_widgets/widgets/{figure → containers/figure}/plots/waveform/waveform.py +2 -2
- bec_widgets/widgets/{figure → containers/figure}/plots/waveform/waveform_curve.py +2 -2
- bec_widgets/widgets/{button_abort → control/buttons/button_abort}/abort_button_plugin.py +1 -1
- bec_widgets/widgets/{button_abort → control/buttons/button_abort}/button_abort.py +1 -0
- bec_widgets/widgets/{button_abort → control/buttons/button_abort}/register_abort_button.py +3 -1
- bec_widgets/widgets/{button_reset → control/buttons/button_reset}/button_reset.py +1 -0
- bec_widgets/widgets/{button_reset → control/buttons/button_reset}/register_reset_button.py +3 -1
- bec_widgets/widgets/{button_reset → control/buttons/button_reset}/reset_button_plugin.py +1 -1
- bec_widgets/widgets/{button_resume → control/buttons/button_resume}/button_resume.py +1 -0
- bec_widgets/widgets/{button_resume → control/buttons/button_resume}/register_resume_button.py +3 -1
- bec_widgets/widgets/{button_resume → control/buttons/button_resume}/resume_button_plugin.py +1 -1
- bec_widgets/widgets/{stop_button → control/buttons/stop_button}/register_stop_button.py +1 -1
- bec_widgets/widgets/{stop_button → control/buttons/stop_button}/stop_button.py +1 -0
- bec_widgets/widgets/{stop_button → control/buttons/stop_button}/stop_button_plugin.py +1 -1
- bec_widgets/widgets/{position_indicator → control/device_control/position_indicator}/position_indicator.py +1 -1
- bec_widgets/widgets/{position_indicator → control/device_control/position_indicator}/position_indicator_plugin.py +3 -1
- bec_widgets/widgets/{position_indicator → control/device_control/position_indicator}/register_position_indicator.py +1 -1
- bec_widgets/widgets/{positioner_box → control/device_control/positioner_box}/positioner_box.py +6 -3
- bec_widgets/widgets/{positioner_box → control/device_control/positioner_box}/positioner_box_plugin.py +1 -1
- bec_widgets/widgets/{positioner_box → control/device_control/positioner_box}/positioner_control_line.py +2 -1
- bec_widgets/widgets/{positioner_box → control/device_control/positioner_box}/positioner_control_line_plugin.py +3 -1
- bec_widgets/widgets/{positioner_box → control/device_control/positioner_box}/register_positioner_box.py +3 -1
- bec_widgets/widgets/{positioner_box → control/device_control/positioner_box}/register_positioner_control_line.py +1 -1
- bec_widgets/widgets/{positioner_group → control/device_control/positioner_group}/positioner_group.py +3 -3
- bec_widgets/widgets/{positioner_group → control/device_control/positioner_group}/positioner_group_plugin.py +3 -1
- bec_widgets/widgets/{positioner_group → control/device_control/positioner_group}/register_positioner_group.py +3 -1
- bec_widgets/widgets/{device_combobox → control/device_input/device_combobox}/device_combo_box_plugin.py +1 -1
- bec_widgets/widgets/{device_combobox → control/device_input/device_combobox}/device_combobox.py +2 -1
- bec_widgets/widgets/{device_combobox → control/device_input/device_combobox}/register_device_combo_box.py +3 -1
- bec_widgets/widgets/{device_line_edit → control/device_input/device_line_edit}/device_line_edit.py +5 -2
- bec_widgets/widgets/{device_line_edit → control/device_input/device_line_edit}/device_line_edit_plugin.py +3 -1
- bec_widgets/widgets/{device_line_edit → control/device_input/device_line_edit}/register_device_line_edit.py +3 -1
- bec_widgets/widgets/{signal_combobox → control/device_input/signal_combobox}/register_signal_combobox.py +3 -1
- bec_widgets/widgets/{signal_combobox → control/device_input/signal_combobox}/signal_combobox.py +4 -1
- bec_widgets/widgets/{signal_combobox → control/device_input/signal_combobox}/signal_combobox_plugin.py +1 -1
- bec_widgets/widgets/{signal_line_edit → control/device_input/signal_line_edit}/register_signal_line_edit.py +3 -1
- bec_widgets/widgets/{signal_line_edit → control/device_input/signal_line_edit}/signal_line_edit.py +4 -1
- bec_widgets/widgets/{signal_line_edit → control/device_input/signal_line_edit}/signal_line_edit_plugin.py +3 -1
- bec_widgets/widgets/{scan_control → control/scan_control}/register_scan_control.py +1 -1
- bec_widgets/widgets/{scan_control → control/scan_control}/scan_control.py +5 -4
- bec_widgets/widgets/{scan_control → control/scan_control}/scan_control_plugin.py +1 -1
- bec_widgets/widgets/{scan_control → control/scan_control}/scan_group_box.py +4 -2
- bec_widgets/widgets/{dap_combo_box → dap/dap_combo_box}/dap_combo_box.py +1 -1
- bec_widgets/widgets/{dap_combo_box → dap/dap_combo_box}/dap_combo_box_plugin.py +1 -1
- bec_widgets/widgets/{dap_combo_box → dap/dap_combo_box}/register_dap_combo_box.py +1 -1
- bec_widgets/widgets/{lmfit_dialog → dap/lmfit_dialog}/lm_fit_dialog_plugin.py +1 -1
- bec_widgets/widgets/{lmfit_dialog → dap/lmfit_dialog}/lmfit_dialog.py +1 -0
- bec_widgets/widgets/{lmfit_dialog → dap/lmfit_dialog}/register_lm_fit_dialog.py +1 -1
- bec_widgets/widgets/{console → editors/console}/console.py +1 -0
- bec_widgets/widgets/{console → editors/console}/console_plugin.py +1 -1
- bec_widgets/widgets/{console → editors/console}/register_console.py +1 -1
- bec_widgets/widgets/{text_box → editors/text_box}/register_text_box.py +1 -1
- bec_widgets/widgets/{text_box → editors/text_box}/text_box.py +1 -0
- bec_widgets/widgets/{text_box → editors/text_box}/text_box_plugin.py +1 -1
- bec_widgets/widgets/{vscode → editors/vscode}/register_vs_code_editor.py +1 -1
- bec_widgets/widgets/{vscode → editors/vscode}/vs_code_editor_plugin.py +1 -1
- bec_widgets/widgets/{vscode → editors/vscode}/vscode.py +2 -2
- bec_widgets/widgets/{website → editors/website}/register_website_widget.py +1 -1
- bec_widgets/widgets/{website → editors/website}/website.py +1 -0
- bec_widgets/widgets/{website → editors/website}/website_widget_plugin.py +1 -1
- bec_widgets/widgets/{image → plots/image}/bec_image_widget_plugin.py +1 -1
- bec_widgets/widgets/{image → plots/image}/image_widget.py +7 -6
- bec_widgets/widgets/{image → plots/image}/register_bec_image_widget.py +1 -1
- bec_widgets/widgets/{motor_map → plots/motor_map}/bec_motor_map_widget_plugin.py +1 -1
- bec_widgets/widgets/{motor_map → plots/motor_map}/motor_map_widget.py +6 -6
- bec_widgets/widgets/{motor_map → plots/motor_map}/register_bec_motor_map_widget.py +3 -1
- bec_widgets/widgets/plots/multi_waveform/bec_multi_waveform_widget.pyproject +1 -0
- bec_widgets/widgets/plots/multi_waveform/bec_multi_waveform_widget_plugin.py +54 -0
- bec_widgets/widgets/plots/multi_waveform/multi_waveform_controls.ui +99 -0
- bec_widgets/widgets/plots/multi_waveform/multi_waveform_widget.py +535 -0
- bec_widgets/widgets/plots/multi_waveform/register_bec_multi_waveform_widget.py +17 -0
- bec_widgets/widgets/{waveform → plots/waveform}/bec_waveform_widget_plugin.py +1 -1
- bec_widgets/widgets/{waveform → plots/waveform}/register_bec_waveform_widget.py +3 -1
- bec_widgets/widgets/{waveform → plots/waveform}/waveform_popups/curve_dialog/curve_dialog.py +5 -3
- bec_widgets/widgets/plots/waveform/waveform_popups/dap_summary_dialog/__init__.py +0 -0
- bec_widgets/widgets/{waveform → plots/waveform}/waveform_popups/dap_summary_dialog/dap_summary_dialog.py +2 -6
- bec_widgets/widgets/{waveform → plots/waveform}/waveform_widget.py +9 -6
- bec_widgets/widgets/progress/__init__.py +0 -0
- bec_widgets/widgets/progress/bec_progressbar/__init__.py +0 -0
- bec_widgets/widgets/{bec_progressbar → progress/bec_progressbar}/bec_progress_bar_plugin.py +1 -1
- bec_widgets/widgets/{bec_progressbar → progress/bec_progressbar}/bec_progressbar.py +1 -0
- bec_widgets/widgets/{bec_progressbar → progress/bec_progressbar}/register_bec_progress_bar.py +3 -1
- bec_widgets/widgets/{ring_progress_bar → progress/ring_progress_bar}/register_ring_progress_bar.py +3 -1
- bec_widgets/widgets/{ring_progress_bar → progress/ring_progress_bar}/ring_progress_bar.py +2 -1
- bec_widgets/widgets/{ring_progress_bar → progress/ring_progress_bar}/ring_progress_bar_plugin.py +1 -1
- bec_widgets/widgets/services/__init__.py +0 -0
- bec_widgets/widgets/services/bec_queue/__init__.py +0 -0
- bec_widgets/widgets/{bec_queue → services/bec_queue}/bec_queue.py +5 -4
- bec_widgets/widgets/{bec_queue → services/bec_queue}/bec_queue_plugin.py +1 -1
- bec_widgets/widgets/{bec_queue → services/bec_queue}/register_bec_queue.py +1 -1
- bec_widgets/widgets/services/bec_status_box/__init__.py +0 -0
- bec_widgets/widgets/{bec_status_box → services/bec_status_box}/bec_status_box.py +3 -3
- bec_widgets/widgets/{bec_status_box → services/bec_status_box}/bec_status_box_plugin.py +1 -1
- bec_widgets/widgets/{bec_status_box → services/bec_status_box}/register_bec_status_box.py +1 -1
- bec_widgets/widgets/services/device_browser/__init__.py +0 -0
- bec_widgets/widgets/{device_browser → services/device_browser}/device_browser.py +3 -3
- bec_widgets/widgets/{device_browser → services/device_browser}/device_browser_plugin.py +1 -1
- bec_widgets/widgets/{device_browser → services/device_browser}/register_device_browser.py +3 -1
- bec_widgets/widgets/utility/__init__.py +0 -0
- bec_widgets/widgets/utility/spinner/__init__.py +0 -0
- bec_widgets/widgets/{spinner → utility/spinner}/register_spinner_widget.py +1 -1
- bec_widgets/widgets/{spinner → utility/spinner}/spinner.py +1 -0
- bec_widgets/widgets/{spinner → utility/spinner}/spinner_widget_plugin.py +1 -1
- bec_widgets/widgets/utility/toggle/__init__.py +0 -0
- bec_widgets/widgets/{toggle → utility/toggle}/register_toggle_switch.py +1 -1
- bec_widgets/widgets/{toggle → utility/toggle}/toggle.py +1 -0
- bec_widgets/widgets/{toggle → utility/toggle}/toggle_switch_plugin.py +1 -1
- bec_widgets/widgets/utility/visual/__init__.py +0 -0
- bec_widgets/widgets/utility/visual/color_button/__init__.py +0 -0
- bec_widgets/widgets/{color_button → utility/visual/color_button}/color_button.py +1 -0
- bec_widgets/widgets/{color_button → utility/visual/color_button}/color_button_plugin.py +1 -1
- bec_widgets/widgets/{color_button → utility/visual/color_button}/register_color_button.py +3 -1
- bec_widgets/widgets/utility/visual/colormap_selector/__init__.py +0 -0
- bec_widgets/widgets/{colormap_selector → utility/visual/colormap_selector}/colormap_selector.py +1 -0
- bec_widgets/widgets/{colormap_selector → utility/visual/colormap_selector}/colormap_selector_plugin.py +1 -1
- bec_widgets/widgets/{colormap_selector → utility/visual/colormap_selector}/register_colormap_selector.py +1 -1
- bec_widgets/widgets/utility/visual/colormap_widget/__init__.py +0 -0
- bec_widgets/widgets/{colormap_widget → utility/visual/colormap_widget}/bec_color_map_widget_plugin.py +1 -1
- bec_widgets/widgets/{colormap_widget → utility/visual/colormap_widget}/colormap_widget.py +1 -0
- bec_widgets/widgets/{colormap_widget → utility/visual/colormap_widget}/register_bec_color_map_widget.py +1 -1
- bec_widgets/widgets/utility/visual/dark_mode_button/__init__.py +0 -0
- bec_widgets/widgets/{dark_mode_button → utility/visual/dark_mode_button}/dark_mode_button.py +1 -0
- bec_widgets/widgets/{dark_mode_button → utility/visual/dark_mode_button}/dark_mode_button_plugin.py +1 -1
- bec_widgets/widgets/{dark_mode_button → utility/visual/dark_mode_button}/register_dark_mode_button.py +3 -1
- {bec_widgets-1.4.1.dist-info → bec_widgets-1.5.1.dist-info}/METADATA +1 -1
- bec_widgets-1.5.1.dist-info/RECORD +318 -0
- {bec_widgets-1.4.1.dist-info → bec_widgets-1.5.1.dist-info}/WHEEL +1 -1
- pyproject.toml +1 -1
- bec_widgets-1.4.1.dist-info/RECORD +0 -297
- /bec_widgets/widgets/{base_classes → containers}/__init__.py +0 -0
- /bec_widgets/widgets/{dock → containers/dock}/__init__.py +0 -0
- /bec_widgets/widgets/{dock → containers/dock}/dock.py +0 -0
- /bec_widgets/widgets/{dock → containers/dock}/dock_area.pyproject +0 -0
- /bec_widgets/widgets/{figure → containers/figure}/__init__.py +0 -0
- /bec_widgets/widgets/{bec_progressbar → containers/figure/plots}/__init__.py +0 -0
- /bec_widgets/widgets/{figure → containers/figure}/plots/axis_settings.py +0 -0
- /bec_widgets/widgets/{figure → containers/figure}/plots/axis_settings.ui +0 -0
- /bec_widgets/widgets/{bec_queue → containers/figure/plots/image}/__init__.py +0 -0
- /bec_widgets/widgets/{figure → containers/figure}/plots/image/image_processor.py +0 -0
- /bec_widgets/widgets/{bec_status_box → containers/figure/plots/motor_map}/__init__.py +0 -0
- /bec_widgets/widgets/{button_abort → containers/figure/plots/multi_waveform}/__init__.py +0 -0
- /bec_widgets/widgets/{figure → containers/figure}/plots/plot_base.py +0 -0
- /bec_widgets/widgets/{button_reset → containers/figure/plots/waveform}/__init__.py +0 -0
- /bec_widgets/widgets/{button_resume → control}/__init__.py +0 -0
- /bec_widgets/widgets/{color_button → control/buttons}/__init__.py +0 -0
- /bec_widgets/widgets/{colormap_selector → control/buttons/button_abort}/__init__.py +0 -0
- /bec_widgets/widgets/{button_abort → control/buttons/button_abort}/abort_button.pyproject +0 -0
- /bec_widgets/widgets/{colormap_widget → control/buttons/button_reset}/__init__.py +0 -0
- /bec_widgets/widgets/{button_reset → control/buttons/button_reset}/reset_button.pyproject +0 -0
- /bec_widgets/widgets/{dap_combo_box → control/buttons/button_resume}/__init__.py +0 -0
- /bec_widgets/widgets/{button_resume → control/buttons/button_resume}/resume_button.pyproject +0 -0
- /bec_widgets/widgets/{dark_mode_button → control/buttons/stop_button}/__init__.py +0 -0
- /bec_widgets/widgets/{stop_button → control/buttons/stop_button}/stop_button.pyproject +0 -0
- /bec_widgets/widgets/{device_browser → control/device_control}/__init__.py +0 -0
- /bec_widgets/widgets/{device_combobox → control/device_control/position_indicator}/__init__.py +0 -0
- /bec_widgets/widgets/{position_indicator → control/device_control/position_indicator}/position_indicator.pyproject +0 -0
- /bec_widgets/widgets/{device_line_edit → control/device_control/positioner_box}/__init__.py +0 -0
- /bec_widgets/widgets/{positioner_box → control/device_control/positioner_box}/positioner_box.pyproject +0 -0
- /bec_widgets/widgets/{positioner_box → control/device_control/positioner_box}/positioner_box.ui +0 -0
- /bec_widgets/widgets/{positioner_box → control/device_control/positioner_box}/positioner_control_line.pyproject +0 -0
- /bec_widgets/widgets/{positioner_box → control/device_control/positioner_box}/positioner_control_line.ui +0 -0
- /bec_widgets/widgets/{figure/plots → control/device_control/positioner_group}/__init__.py +0 -0
- /bec_widgets/widgets/{positioner_group → control/device_control/positioner_group}/positioner_group.pyproject +0 -0
- /bec_widgets/widgets/{figure/plots/image → control/device_input}/__init__.py +0 -0
- /bec_widgets/widgets/{figure/plots/motor_map → control/device_input/base_classes}/__init__.py +0 -0
- /bec_widgets/widgets/{base_classes → control/device_input/base_classes}/device_input_base.py +0 -0
- /bec_widgets/widgets/{base_classes → control/device_input/base_classes}/device_signal_input_base.py +0 -0
- /bec_widgets/widgets/{figure/plots/waveform → control/device_input/device_combobox}/__init__.py +0 -0
- /bec_widgets/widgets/{device_combobox → control/device_input/device_combobox}/device_combo_box.pyproject +0 -0
- /bec_widgets/widgets/{image → control/device_input/device_line_edit}/__init__.py +0 -0
- /bec_widgets/widgets/{device_line_edit → control/device_input/device_line_edit}/device_line_edit.pyproject +0 -0
- /bec_widgets/widgets/{jupyter_console → control/device_input/signal_combobox}/__init__.py +0 -0
- /bec_widgets/widgets/{signal_combobox → control/device_input/signal_combobox}/signal_combobox.pyproject +0 -0
- /bec_widgets/widgets/{lmfit_dialog → control/device_input/signal_line_edit}/__init__.py +0 -0
- /bec_widgets/widgets/{signal_line_edit → control/device_input/signal_line_edit}/signal_line_edit.pyproject +0 -0
- /bec_widgets/widgets/{scan_control → control/scan_control}/__init__.py +0 -0
- /bec_widgets/widgets/{scan_control → control/scan_control}/scan_control.pyproject +0 -0
- /bec_widgets/widgets/{motor_map → dap}/__init__.py +0 -0
- /bec_widgets/widgets/{motor_map/motor_map_dialog → dap/dap_combo_box}/__init__.py +0 -0
- /bec_widgets/widgets/{dap_combo_box → dap/dap_combo_box}/dap_combo_box.pyproject +0 -0
- /bec_widgets/widgets/{position_indicator → dap/lmfit_dialog}/__init__.py +0 -0
- /bec_widgets/widgets/{lmfit_dialog → dap/lmfit_dialog}/lm_fit_dialog.pyproject +0 -0
- /bec_widgets/widgets/{lmfit_dialog → dap/lmfit_dialog}/lmfit_dialog_compact.ui +0 -0
- /bec_widgets/widgets/{lmfit_dialog → dap/lmfit_dialog}/lmfit_dialog_vertical.ui +0 -0
- /bec_widgets/widgets/{positioner_box → editors}/__init__.py +0 -0
- /bec_widgets/widgets/{positioner_group → editors/console}/__init__.py +0 -0
- /bec_widgets/widgets/{console → editors/console}/console.pyproject +0 -0
- /bec_widgets/widgets/{signal_combobox → editors/jupyter_console}/__init__.py +0 -0
- /bec_widgets/widgets/{jupyter_console → editors/jupyter_console}/jupyter_console.py +0 -0
- /bec_widgets/widgets/{signal_line_edit → editors/text_box}/__init__.py +0 -0
- /bec_widgets/widgets/{text_box → editors/text_box}/text_box.pyproject +0 -0
- /bec_widgets/widgets/{spinner → editors/vscode}/__init__.py +0 -0
- /bec_widgets/widgets/{vscode → editors/vscode}/vs_code_editor.pyproject +0 -0
- /bec_widgets/widgets/{stop_button → editors/website}/__init__.py +0 -0
- /bec_widgets/widgets/{website → editors/website}/website_widget.pyproject +0 -0
- /bec_widgets/widgets/{text_box → plots}/__init__.py +0 -0
- /bec_widgets/widgets/{toggle → plots/image}/__init__.py +0 -0
- /bec_widgets/widgets/{image → plots/image}/bec_image_widget.pyproject +0 -0
- /bec_widgets/widgets/{vscode → plots/motor_map}/__init__.py +0 -0
- /bec_widgets/widgets/{motor_map → plots/motor_map}/bec_motor_map_widget.pyproject +0 -0
- /bec_widgets/widgets/{waveform → plots/motor_map/motor_map_dialog}/__init__.py +0 -0
- /bec_widgets/widgets/{motor_map → plots/motor_map}/motor_map_dialog/motor_map_settings.py +0 -0
- /bec_widgets/widgets/{motor_map → plots/motor_map}/motor_map_dialog/motor_map_settings.ui +0 -0
- /bec_widgets/widgets/{waveform/waveform_popups → plots/multi_waveform}/__init__.py +0 -0
- /bec_widgets/widgets/{waveform/waveform_popups/curve_dialog → plots/waveform}/__init__.py +0 -0
- /bec_widgets/widgets/{waveform → plots/waveform}/bec_waveform_widget.pyproject +0 -0
- /bec_widgets/widgets/{waveform/waveform_popups/dap_summary_dialog → plots/waveform/waveform_popups}/__init__.py +0 -0
- /bec_widgets/widgets/{website → plots/waveform/waveform_popups/curve_dialog}/__init__.py +0 -0
- /bec_widgets/widgets/{waveform → plots/waveform}/waveform_popups/curve_dialog/curve_dialog.ui +0 -0
- /bec_widgets/widgets/{bec_progressbar → progress/bec_progressbar}/bec_progress_bar.pyproject +0 -0
- /bec_widgets/widgets/{ring_progress_bar → progress/ring_progress_bar}/__init__.py +0 -0
- /bec_widgets/widgets/{ring_progress_bar → progress/ring_progress_bar}/ring.py +0 -0
- /bec_widgets/widgets/{ring_progress_bar → progress/ring_progress_bar}/ring_progress_bar.pyproject +0 -0
- /bec_widgets/widgets/{bec_queue → services/bec_queue}/bec_queue.pyproject +0 -0
- /bec_widgets/widgets/{bec_status_box → services/bec_status_box}/bec_status_box.pyproject +0 -0
- /bec_widgets/widgets/{bec_status_box → services/bec_status_box}/status_item.py +0 -0
- /bec_widgets/widgets/{device_browser → services/device_browser}/device_browser.pyproject +0 -0
- /bec_widgets/widgets/{device_browser → services/device_browser}/device_browser.ui +0 -0
- /bec_widgets/widgets/{device_browser → services/device_browser}/device_item/__init__.py +0 -0
- /bec_widgets/widgets/{device_browser → services/device_browser}/device_item/device_item.py +0 -0
- /bec_widgets/widgets/{spinner → utility/spinner}/spinner_widget.pyproject +0 -0
- /bec_widgets/widgets/{toggle → utility/toggle}/toggle_switch.pyproject +0 -0
- /bec_widgets/widgets/{color_button → utility/visual/color_button}/color_button.pyproject +0 -0
- /bec_widgets/widgets/{colormap_selector → utility/visual/colormap_selector}/colormap_selector.pyproject +0 -0
- /bec_widgets/widgets/{colormap_widget → utility/visual/colormap_widget}/bec_color_map_widget.pyproject +0 -0
- /bec_widgets/widgets/{dark_mode_button → utility/visual/dark_mode_button}/dark_mode_button.pyproject +0 -0
- {bec_widgets-1.4.1.dist-info → bec_widgets-1.5.1.dist-info}/entry_points.txt +0 -0
- {bec_widgets-1.4.1.dist-info → bec_widgets-1.5.1.dist-info}/licenses/LICENSE +0 -0
CHANGELOG.md
CHANGED
@@ -1,6 +1,38 @@
|
|
1
1
|
# CHANGELOG
|
2
2
|
|
3
3
|
|
4
|
+
## v1.5.1 (2024-11-14)
|
5
|
+
|
6
|
+
### Bug Fixes
|
7
|
+
|
8
|
+
- **plugin_utils**: Plugin utils are able to detect classes for plugin creation based on class
|
9
|
+
attribute rather than if it is top level widget
|
10
|
+
([`7a1b874`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/7a1b8748a433f854671ac95f2eaf4604e6b8df20))
|
11
|
+
|
12
|
+
### Refactoring
|
13
|
+
|
14
|
+
- **widgets**: Widget module structure reorganised
|
15
|
+
([`aab0229`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/aab0229a4067ad626de919e38a5c8a2e9e7b03c2))
|
16
|
+
|
17
|
+
|
18
|
+
## v1.5.0 (2024-11-12)
|
19
|
+
|
20
|
+
### Bug Fixes
|
21
|
+
|
22
|
+
- **crosshair**: Crosshair adapted for multi waveform widget
|
23
|
+
([`0cd85ed`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/0cd85ed9fa5b67a6ecce89985cd4f54b7bbe3a4b))
|
24
|
+
|
25
|
+
### Documentation
|
26
|
+
|
27
|
+
- **multi_waveform**: Docs added
|
28
|
+
([`42d4f18`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/42d4f182f790a97687ca3b6d0e72866070a89767))
|
29
|
+
|
30
|
+
### Features
|
31
|
+
|
32
|
+
- **multi-waveform**: New widget added
|
33
|
+
([`f3a39a6`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/f3a39a69e29d490b3023a508ced18028c4205772))
|
34
|
+
|
35
|
+
|
4
36
|
## v1.4.1 (2024-11-12)
|
5
37
|
|
6
38
|
### Bug Fixes
|
@@ -164,9 +196,6 @@
|
|
164
196
|
- Alignment 1D update, make app window a main window (in .ui file)
|
165
197
|
([`0015f0e`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/0015f0e2d62adc02d3ef334e1f6dbb2d0288fec6))
|
166
198
|
|
167
|
-
- Set (Minimum, Fixed) size policy on Stop button
|
168
|
-
([`523cc43`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/523cc435725b10b7d59a4477a1aaa24a1f3e37a2))
|
169
|
-
|
170
199
|
### Features
|
171
200
|
|
172
201
|
- New PositionerGroup widget
|
@@ -178,15 +207,6 @@
|
|
178
207
|
This property tells if expand should show a popup (by default), or if the widget should expand
|
179
208
|
in-place
|
180
209
|
|
181
|
-
- Positionerbox with a popup view
|
182
|
-
([`2615787`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/261578796f1de8ca9cab9b91659bc1484f7aa89d))
|
183
|
-
|
184
|
-
- Emit 'device_selected' and 'scan_axis' from scan control widget
|
185
|
-
([`0b9b1a3`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/0b9b1a3c89a98505079f7d4078915b7bbfaa1e23))
|
186
|
-
|
187
|
-
- New 'device_selected' signals to ScanControl, ScanGroupBox, DeviceLineEdit
|
188
|
-
([`9801d27`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/9801d2769eb0ee95c94ec0c011e1dac1407142ae))
|
189
|
-
|
190
210
|
### Refactoring
|
191
211
|
|
192
212
|
- Redesign of scan selection and scan control boxes
|
@@ -194,16 +214,3 @@ This property tells if expand should show a popup (by default), or if the widget
|
|
194
214
|
|
195
215
|
- Move add/remove bundle to scan group box
|
196
216
|
([`e3d0a7b`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/e3d0a7bbf9918dc16eb7227a178c310256ce570d))
|
197
|
-
|
198
|
-
|
199
|
-
## v0.118.0 (2024-10-13)
|
200
|
-
|
201
|
-
### Documentation
|
202
|
-
|
203
|
-
- **sphinx-build**: Adjusted pyside verion
|
204
|
-
([`b236951`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/b23695167ab969f754a058ffdccca2b40f00a008))
|
205
|
-
|
206
|
-
### Features
|
207
|
-
|
208
|
-
- **image**: Image widget can take data from monitor_1d endpoint
|
209
|
-
([`9ef1d1c`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/9ef1d1c9ac2178d9fa2e655942208f8abbdf5c1b))
|
PKG-INFO
CHANGED
@@ -5,36 +5,23 @@ It is a preliminary version of the GUI, which will be added to the main branch a
|
|
5
5
|
import os
|
6
6
|
from typing import Optional
|
7
7
|
|
8
|
-
from bec_lib.device import Positioner as BECPositioner
|
9
8
|
from bec_lib.device import Signal as BECSignal
|
10
9
|
from bec_lib.endpoints import MessageEndpoints
|
11
10
|
from bec_lib.logger import bec_logger
|
12
|
-
from qtpy.QtCore import QSize
|
11
|
+
from qtpy.QtCore import QSize
|
13
12
|
from qtpy.QtGui import QIcon
|
14
|
-
from qtpy.QtWidgets import
|
15
|
-
QApplication,
|
16
|
-
QCheckBox,
|
17
|
-
QDoubleSpinBox,
|
18
|
-
QMainWindow,
|
19
|
-
QPushButton,
|
20
|
-
QSpinBox,
|
21
|
-
)
|
13
|
+
from qtpy.QtWidgets import QApplication
|
22
14
|
|
23
15
|
import bec_widgets
|
24
16
|
from bec_widgets.qt_utils.error_popups import SafeSlot as Slot
|
25
|
-
from bec_widgets.qt_utils.toolbar import WidgetAction
|
26
17
|
from bec_widgets.utils import UILoader
|
27
18
|
from bec_widgets.utils.bec_dispatcher import BECDispatcher
|
28
|
-
from bec_widgets.utils.bec_widget import BECWidget
|
29
19
|
from bec_widgets.utils.colors import get_accent_colors
|
30
|
-
from bec_widgets.widgets.
|
31
|
-
from bec_widgets.widgets.
|
32
|
-
from bec_widgets.widgets.
|
33
|
-
from bec_widgets.widgets.
|
34
|
-
from bec_widgets.widgets.
|
35
|
-
from bec_widgets.widgets.stop_button.stop_button import StopButton
|
36
|
-
from bec_widgets.widgets.toggle.toggle import ToggleSwitch
|
37
|
-
from bec_widgets.widgets.waveform.waveform_widget import BECWaveformWidget
|
20
|
+
from bec_widgets.widgets.control.buttons.stop_button.stop_button import StopButton
|
21
|
+
from bec_widgets.widgets.control.device_control.positioner_group import PositionerGroup
|
22
|
+
from bec_widgets.widgets.dap.lmfit_dialog import LMFitDialog
|
23
|
+
from bec_widgets.widgets.plots.waveform import BECWaveformWidget
|
24
|
+
from bec_widgets.widgets.progress.bec_progressbar.bec_progressbar import BECProgressBar
|
38
25
|
|
39
26
|
MODULE_PATH = os.path.dirname(bec_widgets.__file__)
|
40
27
|
logger = bec_logger.logger
|
bec_widgets/cli/client.py
CHANGED
@@ -15,38 +15,6 @@ class Widgets(str, enum.Enum):
|
|
15
15
|
Enum for the available widgets.
|
16
16
|
"""
|
17
17
|
|
18
|
-
AbortButton = "AbortButton"
|
19
|
-
BECColorMapWidget = "BECColorMapWidget"
|
20
|
-
BECDock = "BECDock"
|
21
|
-
BECDockArea = "BECDockArea"
|
22
|
-
BECFigure = "BECFigure"
|
23
|
-
BECImageWidget = "BECImageWidget"
|
24
|
-
BECMotorMapWidget = "BECMotorMapWidget"
|
25
|
-
BECProgressBar = "BECProgressBar"
|
26
|
-
BECQueue = "BECQueue"
|
27
|
-
BECStatusBox = "BECStatusBox"
|
28
|
-
BECWaveformWidget = "BECWaveformWidget"
|
29
|
-
DapComboBox = "DapComboBox"
|
30
|
-
DarkModeButton = "DarkModeButton"
|
31
|
-
DeviceBrowser = "DeviceBrowser"
|
32
|
-
DeviceComboBox = "DeviceComboBox"
|
33
|
-
DeviceLineEdit = "DeviceLineEdit"
|
34
|
-
LMFitDialog = "LMFitDialog"
|
35
|
-
PositionIndicator = "PositionIndicator"
|
36
|
-
PositionerBox = "PositionerBox"
|
37
|
-
PositionerControlLine = "PositionerControlLine"
|
38
|
-
PositionerGroup = "PositionerGroup"
|
39
|
-
ResetButton = "ResetButton"
|
40
|
-
ResumeButton = "ResumeButton"
|
41
|
-
RingProgressBar = "RingProgressBar"
|
42
|
-
ScanControl = "ScanControl"
|
43
|
-
SignalComboBox = "SignalComboBox"
|
44
|
-
SignalLineEdit = "SignalLineEdit"
|
45
|
-
StopButton = "StopButton"
|
46
|
-
TextBox = "TextBox"
|
47
|
-
VSCodeEditor = "VSCodeEditor"
|
48
|
-
WebsiteWidget = "WebsiteWidget"
|
49
|
-
|
50
18
|
|
51
19
|
class AbortButton(RPCBase):
|
52
20
|
@property
|
@@ -1574,6 +1542,436 @@ class BECMotorMapWidget(RPCBase):
|
|
1574
1542
|
"""
|
1575
1543
|
|
1576
1544
|
|
1545
|
+
class BECMultiWaveform(RPCBase):
|
1546
|
+
@property
|
1547
|
+
@rpc_call
|
1548
|
+
def _rpc_id(self) -> "str":
|
1549
|
+
"""
|
1550
|
+
Get the RPC ID of the widget.
|
1551
|
+
"""
|
1552
|
+
|
1553
|
+
@property
|
1554
|
+
@rpc_call
|
1555
|
+
def _config_dict(self) -> "dict":
|
1556
|
+
"""
|
1557
|
+
Get the configuration of the widget.
|
1558
|
+
|
1559
|
+
Returns:
|
1560
|
+
dict: The configuration of the widget.
|
1561
|
+
"""
|
1562
|
+
|
1563
|
+
@property
|
1564
|
+
@rpc_call
|
1565
|
+
def curves(self) -> collections.deque:
|
1566
|
+
"""
|
1567
|
+
Get the curves of the plot widget as a deque.
|
1568
|
+
Returns:
|
1569
|
+
deque: Deque of curves.
|
1570
|
+
"""
|
1571
|
+
|
1572
|
+
@rpc_call
|
1573
|
+
def set_monitor(self, monitor: str):
|
1574
|
+
"""
|
1575
|
+
Set the monitor for the plot widget.
|
1576
|
+
Args:
|
1577
|
+
monitor (str): The monitor to set.
|
1578
|
+
"""
|
1579
|
+
|
1580
|
+
@rpc_call
|
1581
|
+
def set_opacity(self, opacity: int):
|
1582
|
+
"""
|
1583
|
+
Set the opacity of the curve on the plot.
|
1584
|
+
|
1585
|
+
Args:
|
1586
|
+
opacity(int): The opacity of the curve. 0-100.
|
1587
|
+
"""
|
1588
|
+
|
1589
|
+
@rpc_call
|
1590
|
+
def set_curve_limit(self, max_trace: int, flush_buffer: bool = False):
|
1591
|
+
"""
|
1592
|
+
Set the maximum number of traces to display on the plot.
|
1593
|
+
|
1594
|
+
Args:
|
1595
|
+
max_trace (int): The maximum number of traces to display.
|
1596
|
+
flush_buffer (bool): Flush the buffer.
|
1597
|
+
"""
|
1598
|
+
|
1599
|
+
@rpc_call
|
1600
|
+
def set_curve_highlight(self, index: int):
|
1601
|
+
"""
|
1602
|
+
Set the curve highlight based on visible curves.
|
1603
|
+
|
1604
|
+
Args:
|
1605
|
+
index (int): The index of the curve to highlight among visible curves.
|
1606
|
+
"""
|
1607
|
+
|
1608
|
+
@rpc_call
|
1609
|
+
def set_colormap(self, colormap: str):
|
1610
|
+
"""
|
1611
|
+
Set the colormap for the curves.
|
1612
|
+
|
1613
|
+
Args:
|
1614
|
+
colormap(str): Colormap for the curves.
|
1615
|
+
"""
|
1616
|
+
|
1617
|
+
@rpc_call
|
1618
|
+
def set(self, **kwargs) -> "None":
|
1619
|
+
"""
|
1620
|
+
Set the properties of the plot widget.
|
1621
|
+
|
1622
|
+
Args:
|
1623
|
+
**kwargs: Keyword arguments for the properties to be set.
|
1624
|
+
|
1625
|
+
Possible properties:
|
1626
|
+
- title: str
|
1627
|
+
- x_label: str
|
1628
|
+
- y_label: str
|
1629
|
+
- x_scale: Literal["linear", "log"]
|
1630
|
+
- y_scale: Literal["linear", "log"]
|
1631
|
+
- x_lim: tuple
|
1632
|
+
- y_lim: tuple
|
1633
|
+
- legend_label_size: int
|
1634
|
+
"""
|
1635
|
+
|
1636
|
+
@rpc_call
|
1637
|
+
def set_title(self, title: "str", size: "int" = None):
|
1638
|
+
"""
|
1639
|
+
Set the title of the plot widget.
|
1640
|
+
|
1641
|
+
Args:
|
1642
|
+
title(str): Title of the plot widget.
|
1643
|
+
size(int): Font size of the title.
|
1644
|
+
"""
|
1645
|
+
|
1646
|
+
@rpc_call
|
1647
|
+
def set_x_label(self, label: "str", size: "int" = None):
|
1648
|
+
"""
|
1649
|
+
Set the label of the x-axis.
|
1650
|
+
|
1651
|
+
Args:
|
1652
|
+
label(str): Label of the x-axis.
|
1653
|
+
size(int): Font size of the label.
|
1654
|
+
"""
|
1655
|
+
|
1656
|
+
@rpc_call
|
1657
|
+
def set_y_label(self, label: "str", size: "int" = None):
|
1658
|
+
"""
|
1659
|
+
Set the label of the y-axis.
|
1660
|
+
|
1661
|
+
Args:
|
1662
|
+
label(str): Label of the y-axis.
|
1663
|
+
size(int): Font size of the label.
|
1664
|
+
"""
|
1665
|
+
|
1666
|
+
@rpc_call
|
1667
|
+
def set_x_scale(self, scale: "Literal['linear', 'log']" = "linear"):
|
1668
|
+
"""
|
1669
|
+
Set the scale of the x-axis.
|
1670
|
+
|
1671
|
+
Args:
|
1672
|
+
scale(Literal["linear", "log"]): Scale of the x-axis.
|
1673
|
+
"""
|
1674
|
+
|
1675
|
+
@rpc_call
|
1676
|
+
def set_y_scale(self, scale: "Literal['linear', 'log']" = "linear"):
|
1677
|
+
"""
|
1678
|
+
Set the scale of the y-axis.
|
1679
|
+
|
1680
|
+
Args:
|
1681
|
+
scale(Literal["linear", "log"]): Scale of the y-axis.
|
1682
|
+
"""
|
1683
|
+
|
1684
|
+
@rpc_call
|
1685
|
+
def set_x_lim(self, *args) -> "None":
|
1686
|
+
"""
|
1687
|
+
Set the limits of the x-axis. This method can accept either two separate arguments
|
1688
|
+
for the minimum and maximum x-axis values, or a single tuple containing both limits.
|
1689
|
+
|
1690
|
+
Usage:
|
1691
|
+
set_x_lim(x_min, x_max)
|
1692
|
+
set_x_lim((x_min, x_max))
|
1693
|
+
|
1694
|
+
Args:
|
1695
|
+
*args: A variable number of arguments. Can be two integers (x_min and x_max)
|
1696
|
+
or a single tuple with two integers.
|
1697
|
+
"""
|
1698
|
+
|
1699
|
+
@rpc_call
|
1700
|
+
def set_y_lim(self, *args) -> "None":
|
1701
|
+
"""
|
1702
|
+
Set the limits of the y-axis. This method can accept either two separate arguments
|
1703
|
+
for the minimum and maximum y-axis values, or a single tuple containing both limits.
|
1704
|
+
|
1705
|
+
Usage:
|
1706
|
+
set_y_lim(y_min, y_max)
|
1707
|
+
set_y_lim((y_min, y_max))
|
1708
|
+
|
1709
|
+
Args:
|
1710
|
+
*args: A variable number of arguments. Can be two integers (y_min and y_max)
|
1711
|
+
or a single tuple with two integers.
|
1712
|
+
"""
|
1713
|
+
|
1714
|
+
@rpc_call
|
1715
|
+
def set_grid(self, x: "bool" = False, y: "bool" = False):
|
1716
|
+
"""
|
1717
|
+
Set the grid of the plot widget.
|
1718
|
+
|
1719
|
+
Args:
|
1720
|
+
x(bool): Show grid on the x-axis.
|
1721
|
+
y(bool): Show grid on the y-axis.
|
1722
|
+
"""
|
1723
|
+
|
1724
|
+
@rpc_call
|
1725
|
+
def set_colormap(self, colormap: str):
|
1726
|
+
"""
|
1727
|
+
Set the colormap for the curves.
|
1728
|
+
|
1729
|
+
Args:
|
1730
|
+
colormap(str): Colormap for the curves.
|
1731
|
+
"""
|
1732
|
+
|
1733
|
+
@rpc_call
|
1734
|
+
def enable_fps_monitor(self, enable: "bool" = True):
|
1735
|
+
"""
|
1736
|
+
Enable the FPS monitor.
|
1737
|
+
|
1738
|
+
Args:
|
1739
|
+
enable(bool): True to enable, False to disable.
|
1740
|
+
"""
|
1741
|
+
|
1742
|
+
@rpc_call
|
1743
|
+
def lock_aspect_ratio(self, lock):
|
1744
|
+
"""
|
1745
|
+
Lock aspect ratio.
|
1746
|
+
|
1747
|
+
Args:
|
1748
|
+
lock(bool): True to lock, False to unlock.
|
1749
|
+
"""
|
1750
|
+
|
1751
|
+
@rpc_call
|
1752
|
+
def export(self):
|
1753
|
+
"""
|
1754
|
+
Show the Export Dialog of the plot widget.
|
1755
|
+
"""
|
1756
|
+
|
1757
|
+
@rpc_call
|
1758
|
+
def get_all_data(self, output: Literal["dict", "pandas"] = "dict") -> dict:
|
1759
|
+
"""
|
1760
|
+
Extract all curve data into a dictionary or a pandas DataFrame.
|
1761
|
+
|
1762
|
+
Args:
|
1763
|
+
output (Literal["dict", "pandas"]): Format of the output data.
|
1764
|
+
|
1765
|
+
Returns:
|
1766
|
+
dict | pd.DataFrame: Data of all curves in the specified format.
|
1767
|
+
"""
|
1768
|
+
|
1769
|
+
@rpc_call
|
1770
|
+
def remove(self):
|
1771
|
+
"""
|
1772
|
+
Remove the plot widget from the figure.
|
1773
|
+
"""
|
1774
|
+
|
1775
|
+
|
1776
|
+
class BECMultiWaveformWidget(RPCBase):
|
1777
|
+
@property
|
1778
|
+
@rpc_call
|
1779
|
+
def curves(self) -> list[pyqtgraph.graphicsItems.PlotDataItem.PlotDataItem]:
|
1780
|
+
"""
|
1781
|
+
Get the curves of the plot widget as a list
|
1782
|
+
Returns:
|
1783
|
+
list: List of curves.
|
1784
|
+
"""
|
1785
|
+
|
1786
|
+
@rpc_call
|
1787
|
+
def set_monitor(self, monitor: str) -> None:
|
1788
|
+
"""
|
1789
|
+
Set the monitor of the plot widget.
|
1790
|
+
|
1791
|
+
Args:
|
1792
|
+
monitor(str): The monitor to set.
|
1793
|
+
"""
|
1794
|
+
|
1795
|
+
@rpc_call
|
1796
|
+
def set_curve_highlight(self, index: int) -> None:
|
1797
|
+
"""
|
1798
|
+
Set the curve highlight of the plot widget by index
|
1799
|
+
|
1800
|
+
Args:
|
1801
|
+
index(int): The index of the curve to highlight.
|
1802
|
+
"""
|
1803
|
+
|
1804
|
+
@rpc_call
|
1805
|
+
def set_opacity(self, opacity: int) -> None:
|
1806
|
+
"""
|
1807
|
+
Set the opacity of the plot widget.
|
1808
|
+
|
1809
|
+
Args:
|
1810
|
+
opacity(int): The opacity to set.
|
1811
|
+
"""
|
1812
|
+
|
1813
|
+
@rpc_call
|
1814
|
+
def set_curve_limit(self, curve_limit: int) -> None:
|
1815
|
+
"""
|
1816
|
+
Set the maximum number of traces to display on the plot widget.
|
1817
|
+
|
1818
|
+
Args:
|
1819
|
+
curve_limit(int): The maximum number of traces to display.
|
1820
|
+
"""
|
1821
|
+
|
1822
|
+
@rpc_call
|
1823
|
+
def set_buffer_flush(self, flush_buffer: bool) -> None:
|
1824
|
+
"""
|
1825
|
+
Set the buffer flush property of the plot widget.
|
1826
|
+
|
1827
|
+
Args:
|
1828
|
+
flush_buffer(bool): True to flush the buffer, False to not flush the buffer.
|
1829
|
+
"""
|
1830
|
+
|
1831
|
+
@rpc_call
|
1832
|
+
def set_highlight_last_curve(self, enable: bool) -> None:
|
1833
|
+
"""
|
1834
|
+
Enable or disable highlighting of the last curve.
|
1835
|
+
|
1836
|
+
Args:
|
1837
|
+
enable(bool): True to enable highlighting of the last curve, False to disable.
|
1838
|
+
"""
|
1839
|
+
|
1840
|
+
@rpc_call
|
1841
|
+
def set_colormap(self, colormap: str) -> None:
|
1842
|
+
"""
|
1843
|
+
Set the colormap of the plot widget.
|
1844
|
+
|
1845
|
+
Args:
|
1846
|
+
colormap(str): The colormap to set.
|
1847
|
+
"""
|
1848
|
+
|
1849
|
+
@rpc_call
|
1850
|
+
def set(self, **kwargs):
|
1851
|
+
"""
|
1852
|
+
Set the properties of the plot widget.
|
1853
|
+
|
1854
|
+
Args:
|
1855
|
+
**kwargs: Keyword arguments for the properties to be set.
|
1856
|
+
|
1857
|
+
Possible properties:
|
1858
|
+
- title: str
|
1859
|
+
- x_label: str
|
1860
|
+
- y_label: str
|
1861
|
+
- x_scale: Literal["linear", "log"]
|
1862
|
+
- y_scale: Literal["linear", "log"]
|
1863
|
+
- x_lim: tuple
|
1864
|
+
- y_lim: tuple
|
1865
|
+
- legend_label_size: int
|
1866
|
+
"""
|
1867
|
+
|
1868
|
+
@rpc_call
|
1869
|
+
def set_title(self, title: str):
|
1870
|
+
"""
|
1871
|
+
Set the title of the plot widget.
|
1872
|
+
|
1873
|
+
Args:
|
1874
|
+
title(str): The title to set.
|
1875
|
+
"""
|
1876
|
+
|
1877
|
+
@rpc_call
|
1878
|
+
def set_x_label(self, x_label: str):
|
1879
|
+
"""
|
1880
|
+
Set the x-axis label of the plot widget.
|
1881
|
+
|
1882
|
+
Args:
|
1883
|
+
x_label(str): The x-axis label to set.
|
1884
|
+
"""
|
1885
|
+
|
1886
|
+
@rpc_call
|
1887
|
+
def set_y_label(self, y_label: str):
|
1888
|
+
"""
|
1889
|
+
Set the y-axis label of the plot widget.
|
1890
|
+
|
1891
|
+
Args:
|
1892
|
+
y_label(str): The y-axis label to set.
|
1893
|
+
"""
|
1894
|
+
|
1895
|
+
@rpc_call
|
1896
|
+
def set_x_scale(self, x_scale: Literal["linear", "log"]):
|
1897
|
+
"""
|
1898
|
+
Set the x-axis scale of the plot widget.
|
1899
|
+
|
1900
|
+
Args:
|
1901
|
+
x_scale(str): The x-axis scale to set.
|
1902
|
+
"""
|
1903
|
+
|
1904
|
+
@rpc_call
|
1905
|
+
def set_y_scale(self, y_scale: Literal["linear", "log"]):
|
1906
|
+
"""
|
1907
|
+
Set the y-axis scale of the plot widget.
|
1908
|
+
|
1909
|
+
Args:
|
1910
|
+
y_scale(str): The y-axis scale to set.
|
1911
|
+
"""
|
1912
|
+
|
1913
|
+
@rpc_call
|
1914
|
+
def set_x_lim(self, x_lim: tuple):
|
1915
|
+
"""
|
1916
|
+
Set x-axis limits of the plot widget.
|
1917
|
+
|
1918
|
+
Args:
|
1919
|
+
x_lim(tuple): The x-axis limits to set.
|
1920
|
+
"""
|
1921
|
+
|
1922
|
+
@rpc_call
|
1923
|
+
def set_y_lim(self, y_lim: tuple):
|
1924
|
+
"""
|
1925
|
+
Set y-axis limits of the plot widget.
|
1926
|
+
|
1927
|
+
Args:
|
1928
|
+
y_lim(tuple): The y-axis limits to set.
|
1929
|
+
"""
|
1930
|
+
|
1931
|
+
@rpc_call
|
1932
|
+
def set_grid(self, x_grid: bool, y_grid: bool):
|
1933
|
+
"""
|
1934
|
+
Set the grid of the plot widget.
|
1935
|
+
|
1936
|
+
Args:
|
1937
|
+
x_grid(bool): True to enable the x-grid, False to disable.
|
1938
|
+
y_grid(bool): True to enable the y-grid, False to disable.
|
1939
|
+
"""
|
1940
|
+
|
1941
|
+
@rpc_call
|
1942
|
+
def set_colormap(self, colormap: str) -> None:
|
1943
|
+
"""
|
1944
|
+
Set the colormap of the plot widget.
|
1945
|
+
|
1946
|
+
Args:
|
1947
|
+
colormap(str): The colormap to set.
|
1948
|
+
"""
|
1949
|
+
|
1950
|
+
@rpc_call
|
1951
|
+
def enable_fps_monitor(self, enabled: bool):
|
1952
|
+
"""
|
1953
|
+
Enable or disable the FPS monitor
|
1954
|
+
|
1955
|
+
Args:
|
1956
|
+
enabled(bool): True to enable the FPS monitor, False to disable.
|
1957
|
+
"""
|
1958
|
+
|
1959
|
+
@rpc_call
|
1960
|
+
def lock_aspect_ratio(self, lock: bool):
|
1961
|
+
"""
|
1962
|
+
Lock the aspect ratio of the plot widget.
|
1963
|
+
|
1964
|
+
Args:
|
1965
|
+
lock(bool): True to lock the aspect ratio, False to unlock.
|
1966
|
+
"""
|
1967
|
+
|
1968
|
+
@rpc_call
|
1969
|
+
def export(self):
|
1970
|
+
"""
|
1971
|
+
Export the plot widget.
|
1972
|
+
"""
|
1973
|
+
|
1974
|
+
|
1577
1975
|
class BECPlotBase(RPCBase):
|
1578
1976
|
@property
|
1579
1977
|
@rpc_call
|
bec_widgets/cli/generate_cli.py
CHANGED
@@ -11,7 +11,7 @@ import isort
|
|
11
11
|
from qtpy.QtCore import Property as QtProperty
|
12
12
|
|
13
13
|
from bec_widgets.utils.generate_designer_plugin import DesignerPluginGenerator
|
14
|
-
from bec_widgets.utils.plugin_utils import BECClassContainer,
|
14
|
+
from bec_widgets.utils.plugin_utils import BECClassContainer, get_custom_classes
|
15
15
|
|
16
16
|
if sys.version_info >= (3, 11):
|
17
17
|
from typing import get_overloads
|
@@ -175,7 +175,7 @@ def main():
|
|
175
175
|
current_path = os.path.dirname(__file__)
|
176
176
|
client_path = os.path.join(current_path, "client.py")
|
177
177
|
|
178
|
-
rpc_classes =
|
178
|
+
rpc_classes = get_custom_classes("bec_widgets")
|
179
179
|
|
180
180
|
generator = ClientGenerator()
|
181
181
|
generator.generate_client(rpc_classes)
|
bec_widgets/cli/rpc_register.py
CHANGED
@@ -1,3 +1,5 @@
|
|
1
|
+
from __future__ import annotations
|
2
|
+
|
1
3
|
from bec_widgets.utils import BECConnector
|
2
4
|
|
3
5
|
|
@@ -26,10 +28,10 @@ class RPCWidgetHandler:
|
|
26
28
|
Returns:
|
27
29
|
None
|
28
30
|
"""
|
29
|
-
from bec_widgets.utils.plugin_utils import
|
31
|
+
from bec_widgets.utils.plugin_utils import get_custom_classes
|
30
32
|
|
31
|
-
clss =
|
32
|
-
self._widget_classes = {cls.__name__: cls for cls in clss.
|
33
|
+
clss = get_custom_classes("bec_widgets")
|
34
|
+
self._widget_classes = {cls.__name__: cls for cls in clss.widgets}
|
33
35
|
|
34
36
|
def create_widget(self, widget_type, **kwargs) -> BECConnector:
|
35
37
|
"""
|
bec_widgets/cli/server.py
CHANGED
@@ -16,9 +16,8 @@ from qtpy.QtCore import QTimer
|
|
16
16
|
from bec_widgets.cli.rpc_register import RPCRegister
|
17
17
|
from bec_widgets.utils import BECDispatcher
|
18
18
|
from bec_widgets.utils.bec_connector import BECConnector
|
19
|
-
from bec_widgets.
|
20
|
-
from bec_widgets.widgets.
|
21
|
-
from bec_widgets.widgets.figure import BECFigure
|
19
|
+
from bec_widgets.widgets.containers.dock import BECDockArea
|
20
|
+
from bec_widgets.widgets.containers.figure import BECFigure
|
22
21
|
|
23
22
|
messages = lazy_import("bec_lib.messages")
|
24
23
|
logger = bec_logger.logger
|