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.
Files changed (250) hide show
  1. CHANGELOG.md +32 -25
  2. PKG-INFO +1 -1
  3. bec_widgets/applications/alignment/alignment_1d/alignment_1d.py +7 -20
  4. bec_widgets/cli/client.py +430 -32
  5. bec_widgets/cli/generate_cli.py +2 -2
  6. bec_widgets/cli/rpc_register.py +2 -0
  7. bec_widgets/cli/rpc_wigdet_handler.py +5 -3
  8. bec_widgets/cli/server.py +2 -3
  9. bec_widgets/examples/jupyter_console/jupyter_console_window.py +10 -8
  10. bec_widgets/qt_utils/palette_viewer.py +1 -1
  11. bec_widgets/utils/crosshair.py +88 -35
  12. bec_widgets/utils/generate_designer_plugin.py +1 -1
  13. bec_widgets/utils/plugin_utils.py +14 -5
  14. bec_widgets/utils/ui_loader.py +2 -2
  15. bec_widgets/widgets/{dock → containers/dock}/dock_area.py +21 -11
  16. bec_widgets/widgets/{dock → containers/dock}/dock_area_plugin.py +1 -1
  17. bec_widgets/widgets/{dock → containers/dock}/register_dock_area.py +1 -1
  18. bec_widgets/widgets/{figure → containers/figure}/figure.py +41 -7
  19. bec_widgets/widgets/{figure → containers/figure}/plots/image/image.py +7 -4
  20. bec_widgets/widgets/{figure → containers/figure}/plots/image/image_item.py +5 -2
  21. bec_widgets/widgets/{figure → containers/figure}/plots/motor_map/motor_map.py +2 -2
  22. bec_widgets/widgets/containers/figure/plots/multi_waveform/multi_waveform.py +353 -0
  23. bec_widgets/widgets/{figure → containers/figure}/plots/waveform/waveform.py +2 -2
  24. bec_widgets/widgets/{figure → containers/figure}/plots/waveform/waveform_curve.py +2 -2
  25. bec_widgets/widgets/{button_abort → control/buttons/button_abort}/abort_button_plugin.py +1 -1
  26. bec_widgets/widgets/{button_abort → control/buttons/button_abort}/button_abort.py +1 -0
  27. bec_widgets/widgets/{button_abort → control/buttons/button_abort}/register_abort_button.py +3 -1
  28. bec_widgets/widgets/{button_reset → control/buttons/button_reset}/button_reset.py +1 -0
  29. bec_widgets/widgets/{button_reset → control/buttons/button_reset}/register_reset_button.py +3 -1
  30. bec_widgets/widgets/{button_reset → control/buttons/button_reset}/reset_button_plugin.py +1 -1
  31. bec_widgets/widgets/{button_resume → control/buttons/button_resume}/button_resume.py +1 -0
  32. bec_widgets/widgets/{button_resume → control/buttons/button_resume}/register_resume_button.py +3 -1
  33. bec_widgets/widgets/{button_resume → control/buttons/button_resume}/resume_button_plugin.py +1 -1
  34. bec_widgets/widgets/{stop_button → control/buttons/stop_button}/register_stop_button.py +1 -1
  35. bec_widgets/widgets/{stop_button → control/buttons/stop_button}/stop_button.py +1 -0
  36. bec_widgets/widgets/{stop_button → control/buttons/stop_button}/stop_button_plugin.py +1 -1
  37. bec_widgets/widgets/{position_indicator → control/device_control/position_indicator}/position_indicator.py +1 -1
  38. bec_widgets/widgets/{position_indicator → control/device_control/position_indicator}/position_indicator_plugin.py +3 -1
  39. bec_widgets/widgets/{position_indicator → control/device_control/position_indicator}/register_position_indicator.py +1 -1
  40. bec_widgets/widgets/{positioner_box → control/device_control/positioner_box}/positioner_box.py +6 -3
  41. bec_widgets/widgets/{positioner_box → control/device_control/positioner_box}/positioner_box_plugin.py +1 -1
  42. bec_widgets/widgets/{positioner_box → control/device_control/positioner_box}/positioner_control_line.py +2 -1
  43. bec_widgets/widgets/{positioner_box → control/device_control/positioner_box}/positioner_control_line_plugin.py +3 -1
  44. bec_widgets/widgets/{positioner_box → control/device_control/positioner_box}/register_positioner_box.py +3 -1
  45. bec_widgets/widgets/{positioner_box → control/device_control/positioner_box}/register_positioner_control_line.py +1 -1
  46. bec_widgets/widgets/{positioner_group → control/device_control/positioner_group}/positioner_group.py +3 -3
  47. bec_widgets/widgets/{positioner_group → control/device_control/positioner_group}/positioner_group_plugin.py +3 -1
  48. bec_widgets/widgets/{positioner_group → control/device_control/positioner_group}/register_positioner_group.py +3 -1
  49. bec_widgets/widgets/{device_combobox → control/device_input/device_combobox}/device_combo_box_plugin.py +1 -1
  50. bec_widgets/widgets/{device_combobox → control/device_input/device_combobox}/device_combobox.py +2 -1
  51. bec_widgets/widgets/{device_combobox → control/device_input/device_combobox}/register_device_combo_box.py +3 -1
  52. bec_widgets/widgets/{device_line_edit → control/device_input/device_line_edit}/device_line_edit.py +5 -2
  53. bec_widgets/widgets/{device_line_edit → control/device_input/device_line_edit}/device_line_edit_plugin.py +3 -1
  54. bec_widgets/widgets/{device_line_edit → control/device_input/device_line_edit}/register_device_line_edit.py +3 -1
  55. bec_widgets/widgets/{signal_combobox → control/device_input/signal_combobox}/register_signal_combobox.py +3 -1
  56. bec_widgets/widgets/{signal_combobox → control/device_input/signal_combobox}/signal_combobox.py +4 -1
  57. bec_widgets/widgets/{signal_combobox → control/device_input/signal_combobox}/signal_combobox_plugin.py +1 -1
  58. bec_widgets/widgets/{signal_line_edit → control/device_input/signal_line_edit}/register_signal_line_edit.py +3 -1
  59. bec_widgets/widgets/{signal_line_edit → control/device_input/signal_line_edit}/signal_line_edit.py +4 -1
  60. bec_widgets/widgets/{signal_line_edit → control/device_input/signal_line_edit}/signal_line_edit_plugin.py +3 -1
  61. bec_widgets/widgets/{scan_control → control/scan_control}/register_scan_control.py +1 -1
  62. bec_widgets/widgets/{scan_control → control/scan_control}/scan_control.py +5 -4
  63. bec_widgets/widgets/{scan_control → control/scan_control}/scan_control_plugin.py +1 -1
  64. bec_widgets/widgets/{scan_control → control/scan_control}/scan_group_box.py +4 -2
  65. bec_widgets/widgets/{dap_combo_box → dap/dap_combo_box}/dap_combo_box.py +1 -1
  66. bec_widgets/widgets/{dap_combo_box → dap/dap_combo_box}/dap_combo_box_plugin.py +1 -1
  67. bec_widgets/widgets/{dap_combo_box → dap/dap_combo_box}/register_dap_combo_box.py +1 -1
  68. bec_widgets/widgets/{lmfit_dialog → dap/lmfit_dialog}/lm_fit_dialog_plugin.py +1 -1
  69. bec_widgets/widgets/{lmfit_dialog → dap/lmfit_dialog}/lmfit_dialog.py +1 -0
  70. bec_widgets/widgets/{lmfit_dialog → dap/lmfit_dialog}/register_lm_fit_dialog.py +1 -1
  71. bec_widgets/widgets/{console → editors/console}/console.py +1 -0
  72. bec_widgets/widgets/{console → editors/console}/console_plugin.py +1 -1
  73. bec_widgets/widgets/{console → editors/console}/register_console.py +1 -1
  74. bec_widgets/widgets/{text_box → editors/text_box}/register_text_box.py +1 -1
  75. bec_widgets/widgets/{text_box → editors/text_box}/text_box.py +1 -0
  76. bec_widgets/widgets/{text_box → editors/text_box}/text_box_plugin.py +1 -1
  77. bec_widgets/widgets/{vscode → editors/vscode}/register_vs_code_editor.py +1 -1
  78. bec_widgets/widgets/{vscode → editors/vscode}/vs_code_editor_plugin.py +1 -1
  79. bec_widgets/widgets/{vscode → editors/vscode}/vscode.py +2 -2
  80. bec_widgets/widgets/{website → editors/website}/register_website_widget.py +1 -1
  81. bec_widgets/widgets/{website → editors/website}/website.py +1 -0
  82. bec_widgets/widgets/{website → editors/website}/website_widget_plugin.py +1 -1
  83. bec_widgets/widgets/{image → plots/image}/bec_image_widget_plugin.py +1 -1
  84. bec_widgets/widgets/{image → plots/image}/image_widget.py +7 -6
  85. bec_widgets/widgets/{image → plots/image}/register_bec_image_widget.py +1 -1
  86. bec_widgets/widgets/{motor_map → plots/motor_map}/bec_motor_map_widget_plugin.py +1 -1
  87. bec_widgets/widgets/{motor_map → plots/motor_map}/motor_map_widget.py +6 -6
  88. bec_widgets/widgets/{motor_map → plots/motor_map}/register_bec_motor_map_widget.py +3 -1
  89. bec_widgets/widgets/plots/multi_waveform/bec_multi_waveform_widget.pyproject +1 -0
  90. bec_widgets/widgets/plots/multi_waveform/bec_multi_waveform_widget_plugin.py +54 -0
  91. bec_widgets/widgets/plots/multi_waveform/multi_waveform_controls.ui +99 -0
  92. bec_widgets/widgets/plots/multi_waveform/multi_waveform_widget.py +535 -0
  93. bec_widgets/widgets/plots/multi_waveform/register_bec_multi_waveform_widget.py +17 -0
  94. bec_widgets/widgets/{waveform → plots/waveform}/bec_waveform_widget_plugin.py +1 -1
  95. bec_widgets/widgets/{waveform → plots/waveform}/register_bec_waveform_widget.py +3 -1
  96. bec_widgets/widgets/{waveform → plots/waveform}/waveform_popups/curve_dialog/curve_dialog.py +5 -3
  97. bec_widgets/widgets/plots/waveform/waveform_popups/dap_summary_dialog/__init__.py +0 -0
  98. bec_widgets/widgets/{waveform → plots/waveform}/waveform_popups/dap_summary_dialog/dap_summary_dialog.py +2 -6
  99. bec_widgets/widgets/{waveform → plots/waveform}/waveform_widget.py +9 -6
  100. bec_widgets/widgets/progress/__init__.py +0 -0
  101. bec_widgets/widgets/progress/bec_progressbar/__init__.py +0 -0
  102. bec_widgets/widgets/{bec_progressbar → progress/bec_progressbar}/bec_progress_bar_plugin.py +1 -1
  103. bec_widgets/widgets/{bec_progressbar → progress/bec_progressbar}/bec_progressbar.py +1 -0
  104. bec_widgets/widgets/{bec_progressbar → progress/bec_progressbar}/register_bec_progress_bar.py +3 -1
  105. bec_widgets/widgets/{ring_progress_bar → progress/ring_progress_bar}/register_ring_progress_bar.py +3 -1
  106. bec_widgets/widgets/{ring_progress_bar → progress/ring_progress_bar}/ring_progress_bar.py +2 -1
  107. bec_widgets/widgets/{ring_progress_bar → progress/ring_progress_bar}/ring_progress_bar_plugin.py +1 -1
  108. bec_widgets/widgets/services/__init__.py +0 -0
  109. bec_widgets/widgets/services/bec_queue/__init__.py +0 -0
  110. bec_widgets/widgets/{bec_queue → services/bec_queue}/bec_queue.py +5 -4
  111. bec_widgets/widgets/{bec_queue → services/bec_queue}/bec_queue_plugin.py +1 -1
  112. bec_widgets/widgets/{bec_queue → services/bec_queue}/register_bec_queue.py +1 -1
  113. bec_widgets/widgets/services/bec_status_box/__init__.py +0 -0
  114. bec_widgets/widgets/{bec_status_box → services/bec_status_box}/bec_status_box.py +3 -3
  115. bec_widgets/widgets/{bec_status_box → services/bec_status_box}/bec_status_box_plugin.py +1 -1
  116. bec_widgets/widgets/{bec_status_box → services/bec_status_box}/register_bec_status_box.py +1 -1
  117. bec_widgets/widgets/services/device_browser/__init__.py +0 -0
  118. bec_widgets/widgets/{device_browser → services/device_browser}/device_browser.py +3 -3
  119. bec_widgets/widgets/{device_browser → services/device_browser}/device_browser_plugin.py +1 -1
  120. bec_widgets/widgets/{device_browser → services/device_browser}/register_device_browser.py +3 -1
  121. bec_widgets/widgets/utility/__init__.py +0 -0
  122. bec_widgets/widgets/utility/spinner/__init__.py +0 -0
  123. bec_widgets/widgets/{spinner → utility/spinner}/register_spinner_widget.py +1 -1
  124. bec_widgets/widgets/{spinner → utility/spinner}/spinner.py +1 -0
  125. bec_widgets/widgets/{spinner → utility/spinner}/spinner_widget_plugin.py +1 -1
  126. bec_widgets/widgets/utility/toggle/__init__.py +0 -0
  127. bec_widgets/widgets/{toggle → utility/toggle}/register_toggle_switch.py +1 -1
  128. bec_widgets/widgets/{toggle → utility/toggle}/toggle.py +1 -0
  129. bec_widgets/widgets/{toggle → utility/toggle}/toggle_switch_plugin.py +1 -1
  130. bec_widgets/widgets/utility/visual/__init__.py +0 -0
  131. bec_widgets/widgets/utility/visual/color_button/__init__.py +0 -0
  132. bec_widgets/widgets/{color_button → utility/visual/color_button}/color_button.py +1 -0
  133. bec_widgets/widgets/{color_button → utility/visual/color_button}/color_button_plugin.py +1 -1
  134. bec_widgets/widgets/{color_button → utility/visual/color_button}/register_color_button.py +3 -1
  135. bec_widgets/widgets/utility/visual/colormap_selector/__init__.py +0 -0
  136. bec_widgets/widgets/{colormap_selector → utility/visual/colormap_selector}/colormap_selector.py +1 -0
  137. bec_widgets/widgets/{colormap_selector → utility/visual/colormap_selector}/colormap_selector_plugin.py +1 -1
  138. bec_widgets/widgets/{colormap_selector → utility/visual/colormap_selector}/register_colormap_selector.py +1 -1
  139. bec_widgets/widgets/utility/visual/colormap_widget/__init__.py +0 -0
  140. bec_widgets/widgets/{colormap_widget → utility/visual/colormap_widget}/bec_color_map_widget_plugin.py +1 -1
  141. bec_widgets/widgets/{colormap_widget → utility/visual/colormap_widget}/colormap_widget.py +1 -0
  142. bec_widgets/widgets/{colormap_widget → utility/visual/colormap_widget}/register_bec_color_map_widget.py +1 -1
  143. bec_widgets/widgets/utility/visual/dark_mode_button/__init__.py +0 -0
  144. bec_widgets/widgets/{dark_mode_button → utility/visual/dark_mode_button}/dark_mode_button.py +1 -0
  145. bec_widgets/widgets/{dark_mode_button → utility/visual/dark_mode_button}/dark_mode_button_plugin.py +1 -1
  146. bec_widgets/widgets/{dark_mode_button → utility/visual/dark_mode_button}/register_dark_mode_button.py +3 -1
  147. {bec_widgets-1.4.1.dist-info → bec_widgets-1.5.1.dist-info}/METADATA +1 -1
  148. bec_widgets-1.5.1.dist-info/RECORD +318 -0
  149. {bec_widgets-1.4.1.dist-info → bec_widgets-1.5.1.dist-info}/WHEEL +1 -1
  150. pyproject.toml +1 -1
  151. bec_widgets-1.4.1.dist-info/RECORD +0 -297
  152. /bec_widgets/widgets/{base_classes → containers}/__init__.py +0 -0
  153. /bec_widgets/widgets/{dock → containers/dock}/__init__.py +0 -0
  154. /bec_widgets/widgets/{dock → containers/dock}/dock.py +0 -0
  155. /bec_widgets/widgets/{dock → containers/dock}/dock_area.pyproject +0 -0
  156. /bec_widgets/widgets/{figure → containers/figure}/__init__.py +0 -0
  157. /bec_widgets/widgets/{bec_progressbar → containers/figure/plots}/__init__.py +0 -0
  158. /bec_widgets/widgets/{figure → containers/figure}/plots/axis_settings.py +0 -0
  159. /bec_widgets/widgets/{figure → containers/figure}/plots/axis_settings.ui +0 -0
  160. /bec_widgets/widgets/{bec_queue → containers/figure/plots/image}/__init__.py +0 -0
  161. /bec_widgets/widgets/{figure → containers/figure}/plots/image/image_processor.py +0 -0
  162. /bec_widgets/widgets/{bec_status_box → containers/figure/plots/motor_map}/__init__.py +0 -0
  163. /bec_widgets/widgets/{button_abort → containers/figure/plots/multi_waveform}/__init__.py +0 -0
  164. /bec_widgets/widgets/{figure → containers/figure}/plots/plot_base.py +0 -0
  165. /bec_widgets/widgets/{button_reset → containers/figure/plots/waveform}/__init__.py +0 -0
  166. /bec_widgets/widgets/{button_resume → control}/__init__.py +0 -0
  167. /bec_widgets/widgets/{color_button → control/buttons}/__init__.py +0 -0
  168. /bec_widgets/widgets/{colormap_selector → control/buttons/button_abort}/__init__.py +0 -0
  169. /bec_widgets/widgets/{button_abort → control/buttons/button_abort}/abort_button.pyproject +0 -0
  170. /bec_widgets/widgets/{colormap_widget → control/buttons/button_reset}/__init__.py +0 -0
  171. /bec_widgets/widgets/{button_reset → control/buttons/button_reset}/reset_button.pyproject +0 -0
  172. /bec_widgets/widgets/{dap_combo_box → control/buttons/button_resume}/__init__.py +0 -0
  173. /bec_widgets/widgets/{button_resume → control/buttons/button_resume}/resume_button.pyproject +0 -0
  174. /bec_widgets/widgets/{dark_mode_button → control/buttons/stop_button}/__init__.py +0 -0
  175. /bec_widgets/widgets/{stop_button → control/buttons/stop_button}/stop_button.pyproject +0 -0
  176. /bec_widgets/widgets/{device_browser → control/device_control}/__init__.py +0 -0
  177. /bec_widgets/widgets/{device_combobox → control/device_control/position_indicator}/__init__.py +0 -0
  178. /bec_widgets/widgets/{position_indicator → control/device_control/position_indicator}/position_indicator.pyproject +0 -0
  179. /bec_widgets/widgets/{device_line_edit → control/device_control/positioner_box}/__init__.py +0 -0
  180. /bec_widgets/widgets/{positioner_box → control/device_control/positioner_box}/positioner_box.pyproject +0 -0
  181. /bec_widgets/widgets/{positioner_box → control/device_control/positioner_box}/positioner_box.ui +0 -0
  182. /bec_widgets/widgets/{positioner_box → control/device_control/positioner_box}/positioner_control_line.pyproject +0 -0
  183. /bec_widgets/widgets/{positioner_box → control/device_control/positioner_box}/positioner_control_line.ui +0 -0
  184. /bec_widgets/widgets/{figure/plots → control/device_control/positioner_group}/__init__.py +0 -0
  185. /bec_widgets/widgets/{positioner_group → control/device_control/positioner_group}/positioner_group.pyproject +0 -0
  186. /bec_widgets/widgets/{figure/plots/image → control/device_input}/__init__.py +0 -0
  187. /bec_widgets/widgets/{figure/plots/motor_map → control/device_input/base_classes}/__init__.py +0 -0
  188. /bec_widgets/widgets/{base_classes → control/device_input/base_classes}/device_input_base.py +0 -0
  189. /bec_widgets/widgets/{base_classes → control/device_input/base_classes}/device_signal_input_base.py +0 -0
  190. /bec_widgets/widgets/{figure/plots/waveform → control/device_input/device_combobox}/__init__.py +0 -0
  191. /bec_widgets/widgets/{device_combobox → control/device_input/device_combobox}/device_combo_box.pyproject +0 -0
  192. /bec_widgets/widgets/{image → control/device_input/device_line_edit}/__init__.py +0 -0
  193. /bec_widgets/widgets/{device_line_edit → control/device_input/device_line_edit}/device_line_edit.pyproject +0 -0
  194. /bec_widgets/widgets/{jupyter_console → control/device_input/signal_combobox}/__init__.py +0 -0
  195. /bec_widgets/widgets/{signal_combobox → control/device_input/signal_combobox}/signal_combobox.pyproject +0 -0
  196. /bec_widgets/widgets/{lmfit_dialog → control/device_input/signal_line_edit}/__init__.py +0 -0
  197. /bec_widgets/widgets/{signal_line_edit → control/device_input/signal_line_edit}/signal_line_edit.pyproject +0 -0
  198. /bec_widgets/widgets/{scan_control → control/scan_control}/__init__.py +0 -0
  199. /bec_widgets/widgets/{scan_control → control/scan_control}/scan_control.pyproject +0 -0
  200. /bec_widgets/widgets/{motor_map → dap}/__init__.py +0 -0
  201. /bec_widgets/widgets/{motor_map/motor_map_dialog → dap/dap_combo_box}/__init__.py +0 -0
  202. /bec_widgets/widgets/{dap_combo_box → dap/dap_combo_box}/dap_combo_box.pyproject +0 -0
  203. /bec_widgets/widgets/{position_indicator → dap/lmfit_dialog}/__init__.py +0 -0
  204. /bec_widgets/widgets/{lmfit_dialog → dap/lmfit_dialog}/lm_fit_dialog.pyproject +0 -0
  205. /bec_widgets/widgets/{lmfit_dialog → dap/lmfit_dialog}/lmfit_dialog_compact.ui +0 -0
  206. /bec_widgets/widgets/{lmfit_dialog → dap/lmfit_dialog}/lmfit_dialog_vertical.ui +0 -0
  207. /bec_widgets/widgets/{positioner_box → editors}/__init__.py +0 -0
  208. /bec_widgets/widgets/{positioner_group → editors/console}/__init__.py +0 -0
  209. /bec_widgets/widgets/{console → editors/console}/console.pyproject +0 -0
  210. /bec_widgets/widgets/{signal_combobox → editors/jupyter_console}/__init__.py +0 -0
  211. /bec_widgets/widgets/{jupyter_console → editors/jupyter_console}/jupyter_console.py +0 -0
  212. /bec_widgets/widgets/{signal_line_edit → editors/text_box}/__init__.py +0 -0
  213. /bec_widgets/widgets/{text_box → editors/text_box}/text_box.pyproject +0 -0
  214. /bec_widgets/widgets/{spinner → editors/vscode}/__init__.py +0 -0
  215. /bec_widgets/widgets/{vscode → editors/vscode}/vs_code_editor.pyproject +0 -0
  216. /bec_widgets/widgets/{stop_button → editors/website}/__init__.py +0 -0
  217. /bec_widgets/widgets/{website → editors/website}/website_widget.pyproject +0 -0
  218. /bec_widgets/widgets/{text_box → plots}/__init__.py +0 -0
  219. /bec_widgets/widgets/{toggle → plots/image}/__init__.py +0 -0
  220. /bec_widgets/widgets/{image → plots/image}/bec_image_widget.pyproject +0 -0
  221. /bec_widgets/widgets/{vscode → plots/motor_map}/__init__.py +0 -0
  222. /bec_widgets/widgets/{motor_map → plots/motor_map}/bec_motor_map_widget.pyproject +0 -0
  223. /bec_widgets/widgets/{waveform → plots/motor_map/motor_map_dialog}/__init__.py +0 -0
  224. /bec_widgets/widgets/{motor_map → plots/motor_map}/motor_map_dialog/motor_map_settings.py +0 -0
  225. /bec_widgets/widgets/{motor_map → plots/motor_map}/motor_map_dialog/motor_map_settings.ui +0 -0
  226. /bec_widgets/widgets/{waveform/waveform_popups → plots/multi_waveform}/__init__.py +0 -0
  227. /bec_widgets/widgets/{waveform/waveform_popups/curve_dialog → plots/waveform}/__init__.py +0 -0
  228. /bec_widgets/widgets/{waveform → plots/waveform}/bec_waveform_widget.pyproject +0 -0
  229. /bec_widgets/widgets/{waveform/waveform_popups/dap_summary_dialog → plots/waveform/waveform_popups}/__init__.py +0 -0
  230. /bec_widgets/widgets/{website → plots/waveform/waveform_popups/curve_dialog}/__init__.py +0 -0
  231. /bec_widgets/widgets/{waveform → plots/waveform}/waveform_popups/curve_dialog/curve_dialog.ui +0 -0
  232. /bec_widgets/widgets/{bec_progressbar → progress/bec_progressbar}/bec_progress_bar.pyproject +0 -0
  233. /bec_widgets/widgets/{ring_progress_bar → progress/ring_progress_bar}/__init__.py +0 -0
  234. /bec_widgets/widgets/{ring_progress_bar → progress/ring_progress_bar}/ring.py +0 -0
  235. /bec_widgets/widgets/{ring_progress_bar → progress/ring_progress_bar}/ring_progress_bar.pyproject +0 -0
  236. /bec_widgets/widgets/{bec_queue → services/bec_queue}/bec_queue.pyproject +0 -0
  237. /bec_widgets/widgets/{bec_status_box → services/bec_status_box}/bec_status_box.pyproject +0 -0
  238. /bec_widgets/widgets/{bec_status_box → services/bec_status_box}/status_item.py +0 -0
  239. /bec_widgets/widgets/{device_browser → services/device_browser}/device_browser.pyproject +0 -0
  240. /bec_widgets/widgets/{device_browser → services/device_browser}/device_browser.ui +0 -0
  241. /bec_widgets/widgets/{device_browser → services/device_browser}/device_item/__init__.py +0 -0
  242. /bec_widgets/widgets/{device_browser → services/device_browser}/device_item/device_item.py +0 -0
  243. /bec_widgets/widgets/{spinner → utility/spinner}/spinner_widget.pyproject +0 -0
  244. /bec_widgets/widgets/{toggle → utility/toggle}/toggle_switch.pyproject +0 -0
  245. /bec_widgets/widgets/{color_button → utility/visual/color_button}/color_button.pyproject +0 -0
  246. /bec_widgets/widgets/{colormap_selector → utility/visual/colormap_selector}/colormap_selector.pyproject +0 -0
  247. /bec_widgets/widgets/{colormap_widget → utility/visual/colormap_widget}/bec_color_map_widget.pyproject +0 -0
  248. /bec_widgets/widgets/{dark_mode_button → utility/visual/dark_mode_button}/dark_mode_button.pyproject +0 -0
  249. {bec_widgets-1.4.1.dist-info → bec_widgets-1.5.1.dist-info}/entry_points.txt +0 -0
  250. {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
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: bec_widgets
3
- Version: 1.4.1
3
+ Version: 1.5.1
4
4
  Summary: BEC Widgets
5
5
  Project-URL: Bug Tracker, https://gitlab.psi.ch/bec/bec_widgets/issues
6
6
  Project-URL: Homepage, https://gitlab.psi.ch/bec/bec_widgets
@@ -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, Signal
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.bec_progressbar.bec_progressbar import BECProgressBar
31
- from bec_widgets.widgets.device_line_edit.device_line_edit import DeviceLineEdit
32
- from bec_widgets.widgets.lmfit_dialog.lmfit_dialog import LMFitDialog
33
- from bec_widgets.widgets.positioner_box.positioner_box import PositionerBox
34
- from bec_widgets.widgets.positioner_group.positioner_group import PositionerGroup
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
@@ -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, get_rpc_classes
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 = get_rpc_classes("bec_widgets")
178
+ rpc_classes = get_custom_classes("bec_widgets")
179
179
 
180
180
  generator = ClientGenerator()
181
181
  generator.generate_client(rpc_classes)
@@ -1,3 +1,5 @@
1
+ from __future__ import annotations
2
+
1
3
  from threading import Lock
2
4
  from weakref import WeakValueDictionary
3
5
 
@@ -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 get_rpc_classes
31
+ from bec_widgets.utils.plugin_utils import get_custom_classes
30
32
 
31
- clss = get_rpc_classes("bec_widgets")
32
- self._widget_classes = {cls.__name__: cls for cls in clss.top_level_classes}
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.utils.bec_dispatcher import QtRedisConnector
20
- from bec_widgets.widgets.dock.dock_area import BECDockArea
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