bec-widgets 1.5.0__py3-none-any.whl → 1.5.2__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 (248) hide show
  1. CHANGELOG.md +22 -17
  2. PKG-INFO +3 -3
  3. bec_widgets/applications/alignment/alignment_1d/alignment_1d.py +7 -20
  4. bec_widgets/cli/client.py +10 -43
  5. bec_widgets/cli/generate_cli.py +2 -2
  6. bec_widgets/cli/rpc_wigdet_handler.py +3 -3
  7. bec_widgets/cli/server.py +2 -3
  8. bec_widgets/examples/jupyter_console/jupyter_console_window.py +3 -5
  9. bec_widgets/qt_utils/palette_viewer.py +1 -1
  10. bec_widgets/utils/generate_designer_plugin.py +1 -1
  11. bec_widgets/utils/plugin_utils.py +14 -5
  12. bec_widgets/utils/ui_loader.py +2 -2
  13. bec_widgets/widgets/{dock → containers/dock}/dock_area.py +13 -12
  14. bec_widgets/widgets/{dock → containers/dock}/dock_area_plugin.py +1 -1
  15. bec_widgets/widgets/{dock → containers/dock}/register_dock_area.py +1 -1
  16. bec_widgets/widgets/{figure → containers/figure}/figure.py +11 -6
  17. bec_widgets/widgets/{figure → containers/figure}/plots/image/image.py +7 -4
  18. bec_widgets/widgets/{figure → containers/figure}/plots/image/image_item.py +5 -2
  19. bec_widgets/widgets/{figure → containers/figure}/plots/motor_map/motor_map.py +2 -2
  20. bec_widgets/widgets/{figure → containers/figure}/plots/multi_waveform/multi_waveform.py +2 -2
  21. bec_widgets/widgets/{figure → containers/figure}/plots/waveform/waveform.py +2 -2
  22. bec_widgets/widgets/{figure → containers/figure}/plots/waveform/waveform_curve.py +2 -2
  23. bec_widgets/widgets/{button_abort → control/buttons/button_abort}/abort_button_plugin.py +1 -1
  24. bec_widgets/widgets/{button_abort → control/buttons/button_abort}/button_abort.py +1 -0
  25. bec_widgets/widgets/{button_abort → control/buttons/button_abort}/register_abort_button.py +3 -1
  26. bec_widgets/widgets/{button_reset → control/buttons/button_reset}/button_reset.py +1 -0
  27. bec_widgets/widgets/{button_reset → control/buttons/button_reset}/register_reset_button.py +3 -1
  28. bec_widgets/widgets/{button_reset → control/buttons/button_reset}/reset_button_plugin.py +1 -1
  29. bec_widgets/widgets/{button_resume → control/buttons/button_resume}/button_resume.py +1 -0
  30. bec_widgets/widgets/{button_resume → control/buttons/button_resume}/register_resume_button.py +3 -1
  31. bec_widgets/widgets/{button_resume → control/buttons/button_resume}/resume_button_plugin.py +1 -1
  32. bec_widgets/widgets/{stop_button → control/buttons/stop_button}/register_stop_button.py +1 -1
  33. bec_widgets/widgets/{stop_button → control/buttons/stop_button}/stop_button.py +1 -0
  34. bec_widgets/widgets/{stop_button → control/buttons/stop_button}/stop_button_plugin.py +1 -1
  35. bec_widgets/widgets/{position_indicator → control/device_control/position_indicator}/position_indicator.py +1 -1
  36. bec_widgets/widgets/{position_indicator → control/device_control/position_indicator}/position_indicator_plugin.py +3 -1
  37. bec_widgets/widgets/{position_indicator → control/device_control/position_indicator}/register_position_indicator.py +1 -1
  38. bec_widgets/widgets/{positioner_box → control/device_control/positioner_box}/positioner_box.py +6 -3
  39. bec_widgets/widgets/{positioner_box → control/device_control/positioner_box}/positioner_box_plugin.py +1 -1
  40. bec_widgets/widgets/{positioner_box → control/device_control/positioner_box}/positioner_control_line.py +2 -1
  41. bec_widgets/widgets/{positioner_box → control/device_control/positioner_box}/positioner_control_line_plugin.py +3 -1
  42. bec_widgets/widgets/{positioner_box → control/device_control/positioner_box}/register_positioner_box.py +3 -1
  43. bec_widgets/widgets/{positioner_box → control/device_control/positioner_box}/register_positioner_control_line.py +1 -1
  44. bec_widgets/widgets/{positioner_group → control/device_control/positioner_group}/positioner_group.py +3 -3
  45. bec_widgets/widgets/{positioner_group → control/device_control/positioner_group}/positioner_group_plugin.py +3 -1
  46. bec_widgets/widgets/{positioner_group → control/device_control/positioner_group}/register_positioner_group.py +3 -1
  47. bec_widgets/widgets/{device_combobox → control/device_input/device_combobox}/device_combo_box_plugin.py +1 -1
  48. bec_widgets/widgets/{device_combobox → control/device_input/device_combobox}/device_combobox.py +2 -1
  49. bec_widgets/widgets/{device_combobox → control/device_input/device_combobox}/register_device_combo_box.py +3 -1
  50. bec_widgets/widgets/{device_line_edit → control/device_input/device_line_edit}/device_line_edit.py +5 -2
  51. bec_widgets/widgets/{device_line_edit → control/device_input/device_line_edit}/device_line_edit_plugin.py +3 -1
  52. bec_widgets/widgets/{device_line_edit → control/device_input/device_line_edit}/register_device_line_edit.py +3 -1
  53. bec_widgets/widgets/{signal_combobox → control/device_input/signal_combobox}/register_signal_combobox.py +3 -1
  54. bec_widgets/widgets/{signal_combobox → control/device_input/signal_combobox}/signal_combobox.py +4 -1
  55. bec_widgets/widgets/{signal_combobox → control/device_input/signal_combobox}/signal_combobox_plugin.py +1 -1
  56. bec_widgets/widgets/{signal_line_edit → control/device_input/signal_line_edit}/register_signal_line_edit.py +3 -1
  57. bec_widgets/widgets/{signal_line_edit → control/device_input/signal_line_edit}/signal_line_edit.py +4 -1
  58. bec_widgets/widgets/{signal_line_edit → control/device_input/signal_line_edit}/signal_line_edit_plugin.py +3 -1
  59. bec_widgets/widgets/{scan_control → control/scan_control}/register_scan_control.py +1 -1
  60. bec_widgets/widgets/{scan_control → control/scan_control}/scan_control.py +5 -4
  61. bec_widgets/widgets/{scan_control → control/scan_control}/scan_control_plugin.py +1 -1
  62. bec_widgets/widgets/{scan_control → control/scan_control}/scan_group_box.py +4 -2
  63. bec_widgets/widgets/{dap_combo_box → dap/dap_combo_box}/dap_combo_box.py +1 -1
  64. bec_widgets/widgets/{dap_combo_box → dap/dap_combo_box}/dap_combo_box_plugin.py +1 -1
  65. bec_widgets/widgets/{dap_combo_box → dap/dap_combo_box}/register_dap_combo_box.py +1 -1
  66. bec_widgets/widgets/{lmfit_dialog → dap/lmfit_dialog}/lm_fit_dialog_plugin.py +1 -1
  67. bec_widgets/widgets/{lmfit_dialog → dap/lmfit_dialog}/lmfit_dialog.py +1 -0
  68. bec_widgets/widgets/{lmfit_dialog → dap/lmfit_dialog}/register_lm_fit_dialog.py +1 -1
  69. bec_widgets/widgets/{console → editors/console}/console.py +1 -0
  70. bec_widgets/widgets/{console → editors/console}/console_plugin.py +1 -1
  71. bec_widgets/widgets/{console → editors/console}/register_console.py +1 -1
  72. bec_widgets/widgets/{text_box → editors/text_box}/register_text_box.py +1 -1
  73. bec_widgets/widgets/{text_box → editors/text_box}/text_box.py +1 -0
  74. bec_widgets/widgets/{text_box → editors/text_box}/text_box_plugin.py +1 -1
  75. bec_widgets/widgets/{vscode → editors/vscode}/register_vs_code_editor.py +1 -1
  76. bec_widgets/widgets/{vscode → editors/vscode}/vs_code_editor_plugin.py +1 -1
  77. bec_widgets/widgets/{vscode → editors/vscode}/vscode.py +2 -2
  78. bec_widgets/widgets/{website → editors/website}/register_website_widget.py +1 -1
  79. bec_widgets/widgets/{website → editors/website}/website.py +1 -0
  80. bec_widgets/widgets/{website → editors/website}/website_widget_plugin.py +1 -1
  81. bec_widgets/widgets/{image → plots/image}/bec_image_widget_plugin.py +1 -1
  82. bec_widgets/widgets/{image → plots/image}/image_widget.py +7 -6
  83. bec_widgets/widgets/{image → plots/image}/register_bec_image_widget.py +1 -1
  84. bec_widgets/widgets/{motor_map → plots/motor_map}/bec_motor_map_widget_plugin.py +1 -1
  85. bec_widgets/widgets/{motor_map → plots/motor_map}/motor_map_widget.py +6 -6
  86. bec_widgets/widgets/{motor_map → plots/motor_map}/register_bec_motor_map_widget.py +3 -1
  87. bec_widgets/widgets/{multi_waveform → plots/multi_waveform}/bec_multi_waveform_widget_plugin.py +1 -1
  88. bec_widgets/widgets/{multi_waveform → plots/multi_waveform}/multi_waveform_widget.py +9 -7
  89. bec_widgets/widgets/{multi_waveform → plots/multi_waveform}/register_bec_multi_waveform_widget.py +1 -1
  90. bec_widgets/widgets/{waveform → plots/waveform}/bec_waveform_widget_plugin.py +1 -1
  91. bec_widgets/widgets/{waveform → plots/waveform}/register_bec_waveform_widget.py +3 -1
  92. bec_widgets/widgets/{waveform → plots/waveform}/waveform_popups/curve_dialog/curve_dialog.py +5 -3
  93. bec_widgets/widgets/{waveform → plots/waveform}/waveform_popups/dap_summary_dialog/dap_summary_dialog.py +2 -6
  94. bec_widgets/widgets/{waveform → plots/waveform}/waveform_widget.py +9 -6
  95. bec_widgets/widgets/progress/bec_progressbar/__init__.py +0 -0
  96. bec_widgets/widgets/{bec_progressbar → progress/bec_progressbar}/bec_progress_bar_plugin.py +1 -1
  97. bec_widgets/widgets/{bec_progressbar → progress/bec_progressbar}/bec_progressbar.py +1 -0
  98. bec_widgets/widgets/{bec_progressbar → progress/bec_progressbar}/register_bec_progress_bar.py +3 -1
  99. bec_widgets/widgets/{ring_progress_bar → progress/ring_progress_bar}/register_ring_progress_bar.py +3 -1
  100. bec_widgets/widgets/{ring_progress_bar → progress/ring_progress_bar}/ring_progress_bar.py +2 -1
  101. bec_widgets/widgets/{ring_progress_bar → progress/ring_progress_bar}/ring_progress_bar_plugin.py +1 -1
  102. bec_widgets/widgets/services/__init__.py +0 -0
  103. bec_widgets/widgets/services/bec_queue/__init__.py +0 -0
  104. bec_widgets/widgets/{bec_queue → services/bec_queue}/bec_queue.py +5 -4
  105. bec_widgets/widgets/{bec_queue → services/bec_queue}/bec_queue_plugin.py +1 -1
  106. bec_widgets/widgets/{bec_queue → services/bec_queue}/register_bec_queue.py +1 -1
  107. bec_widgets/widgets/services/bec_status_box/__init__.py +0 -0
  108. bec_widgets/widgets/{bec_status_box → services/bec_status_box}/bec_status_box.py +3 -3
  109. bec_widgets/widgets/{bec_status_box → services/bec_status_box}/bec_status_box_plugin.py +1 -1
  110. bec_widgets/widgets/{bec_status_box → services/bec_status_box}/register_bec_status_box.py +1 -1
  111. bec_widgets/widgets/services/device_browser/__init__.py +0 -0
  112. bec_widgets/widgets/{device_browser → services/device_browser}/device_browser.py +3 -3
  113. bec_widgets/widgets/{device_browser → services/device_browser}/device_browser_plugin.py +1 -1
  114. bec_widgets/widgets/{device_browser → services/device_browser}/register_device_browser.py +3 -1
  115. bec_widgets/widgets/utility/__init__.py +0 -0
  116. bec_widgets/widgets/utility/spinner/__init__.py +0 -0
  117. bec_widgets/widgets/{spinner → utility/spinner}/register_spinner_widget.py +1 -1
  118. bec_widgets/widgets/{spinner → utility/spinner}/spinner.py +1 -0
  119. bec_widgets/widgets/{spinner → utility/spinner}/spinner_widget_plugin.py +1 -1
  120. bec_widgets/widgets/utility/toggle/__init__.py +0 -0
  121. bec_widgets/widgets/{toggle → utility/toggle}/register_toggle_switch.py +1 -1
  122. bec_widgets/widgets/{toggle → utility/toggle}/toggle.py +1 -0
  123. bec_widgets/widgets/{toggle → utility/toggle}/toggle_switch_plugin.py +1 -1
  124. bec_widgets/widgets/utility/visual/__init__.py +0 -0
  125. bec_widgets/widgets/utility/visual/color_button/__init__.py +0 -0
  126. bec_widgets/widgets/{color_button → utility/visual/color_button}/color_button.py +1 -0
  127. bec_widgets/widgets/{color_button → utility/visual/color_button}/color_button_plugin.py +1 -1
  128. bec_widgets/widgets/{color_button → utility/visual/color_button}/register_color_button.py +3 -1
  129. bec_widgets/widgets/utility/visual/colormap_selector/__init__.py +0 -0
  130. bec_widgets/widgets/{colormap_selector → utility/visual/colormap_selector}/colormap_selector.py +1 -0
  131. bec_widgets/widgets/{colormap_selector → utility/visual/colormap_selector}/colormap_selector_plugin.py +1 -1
  132. bec_widgets/widgets/{colormap_selector → utility/visual/colormap_selector}/register_colormap_selector.py +1 -1
  133. bec_widgets/widgets/utility/visual/colormap_widget/__init__.py +0 -0
  134. bec_widgets/widgets/{colormap_widget → utility/visual/colormap_widget}/bec_color_map_widget_plugin.py +1 -1
  135. bec_widgets/widgets/{colormap_widget → utility/visual/colormap_widget}/colormap_widget.py +1 -0
  136. bec_widgets/widgets/{colormap_widget → utility/visual/colormap_widget}/register_bec_color_map_widget.py +1 -1
  137. bec_widgets/widgets/utility/visual/dark_mode_button/__init__.py +0 -0
  138. bec_widgets/widgets/{dark_mode_button → utility/visual/dark_mode_button}/dark_mode_button.py +1 -0
  139. bec_widgets/widgets/{dark_mode_button → utility/visual/dark_mode_button}/dark_mode_button_plugin.py +1 -1
  140. bec_widgets/widgets/{dark_mode_button → utility/visual/dark_mode_button}/register_dark_mode_button.py +3 -1
  141. {bec_widgets-1.5.0.dist-info → bec_widgets-1.5.2.dist-info}/METADATA +3 -3
  142. bec_widgets-1.5.2.dist-info/RECORD +318 -0
  143. {bec_widgets-1.5.0.dist-info → bec_widgets-1.5.2.dist-info}/WHEEL +1 -1
  144. pyproject.toml +7 -7
  145. bec_widgets-1.5.0.dist-info/RECORD +0 -305
  146. /bec_widgets/widgets/{base_classes → containers}/__init__.py +0 -0
  147. /bec_widgets/widgets/{dock → containers/dock}/__init__.py +0 -0
  148. /bec_widgets/widgets/{dock → containers/dock}/dock.py +0 -0
  149. /bec_widgets/widgets/{dock → containers/dock}/dock_area.pyproject +0 -0
  150. /bec_widgets/widgets/{figure → containers/figure}/__init__.py +0 -0
  151. /bec_widgets/widgets/{bec_progressbar → containers/figure/plots}/__init__.py +0 -0
  152. /bec_widgets/widgets/{figure → containers/figure}/plots/axis_settings.py +0 -0
  153. /bec_widgets/widgets/{figure → containers/figure}/plots/axis_settings.ui +0 -0
  154. /bec_widgets/widgets/{bec_queue → containers/figure/plots/image}/__init__.py +0 -0
  155. /bec_widgets/widgets/{figure → containers/figure}/plots/image/image_processor.py +0 -0
  156. /bec_widgets/widgets/{bec_status_box → containers/figure/plots/motor_map}/__init__.py +0 -0
  157. /bec_widgets/widgets/{button_abort → containers/figure/plots/multi_waveform}/__init__.py +0 -0
  158. /bec_widgets/widgets/{figure → containers/figure}/plots/plot_base.py +0 -0
  159. /bec_widgets/widgets/{button_reset → containers/figure/plots/waveform}/__init__.py +0 -0
  160. /bec_widgets/widgets/{button_resume → control}/__init__.py +0 -0
  161. /bec_widgets/widgets/{color_button → control/buttons}/__init__.py +0 -0
  162. /bec_widgets/widgets/{colormap_selector → control/buttons/button_abort}/__init__.py +0 -0
  163. /bec_widgets/widgets/{button_abort → control/buttons/button_abort}/abort_button.pyproject +0 -0
  164. /bec_widgets/widgets/{colormap_widget → control/buttons/button_reset}/__init__.py +0 -0
  165. /bec_widgets/widgets/{button_reset → control/buttons/button_reset}/reset_button.pyproject +0 -0
  166. /bec_widgets/widgets/{dap_combo_box → control/buttons/button_resume}/__init__.py +0 -0
  167. /bec_widgets/widgets/{button_resume → control/buttons/button_resume}/resume_button.pyproject +0 -0
  168. /bec_widgets/widgets/{dark_mode_button → control/buttons/stop_button}/__init__.py +0 -0
  169. /bec_widgets/widgets/{stop_button → control/buttons/stop_button}/stop_button.pyproject +0 -0
  170. /bec_widgets/widgets/{device_browser → control/device_control}/__init__.py +0 -0
  171. /bec_widgets/widgets/{device_combobox → control/device_control/position_indicator}/__init__.py +0 -0
  172. /bec_widgets/widgets/{position_indicator → control/device_control/position_indicator}/position_indicator.pyproject +0 -0
  173. /bec_widgets/widgets/{device_line_edit → control/device_control/positioner_box}/__init__.py +0 -0
  174. /bec_widgets/widgets/{positioner_box → control/device_control/positioner_box}/positioner_box.pyproject +0 -0
  175. /bec_widgets/widgets/{positioner_box → control/device_control/positioner_box}/positioner_box.ui +0 -0
  176. /bec_widgets/widgets/{positioner_box → control/device_control/positioner_box}/positioner_control_line.pyproject +0 -0
  177. /bec_widgets/widgets/{positioner_box → control/device_control/positioner_box}/positioner_control_line.ui +0 -0
  178. /bec_widgets/widgets/{figure/plots → control/device_control/positioner_group}/__init__.py +0 -0
  179. /bec_widgets/widgets/{positioner_group → control/device_control/positioner_group}/positioner_group.pyproject +0 -0
  180. /bec_widgets/widgets/{figure/plots/image → control/device_input}/__init__.py +0 -0
  181. /bec_widgets/widgets/{figure/plots/motor_map → control/device_input/base_classes}/__init__.py +0 -0
  182. /bec_widgets/widgets/{base_classes → control/device_input/base_classes}/device_input_base.py +0 -0
  183. /bec_widgets/widgets/{base_classes → control/device_input/base_classes}/device_signal_input_base.py +0 -0
  184. /bec_widgets/widgets/{figure/plots/multi_waveform → control/device_input/device_combobox}/__init__.py +0 -0
  185. /bec_widgets/widgets/{device_combobox → control/device_input/device_combobox}/device_combo_box.pyproject +0 -0
  186. /bec_widgets/widgets/{figure/plots/waveform → control/device_input/device_line_edit}/__init__.py +0 -0
  187. /bec_widgets/widgets/{device_line_edit → control/device_input/device_line_edit}/device_line_edit.pyproject +0 -0
  188. /bec_widgets/widgets/{image → control/device_input/signal_combobox}/__init__.py +0 -0
  189. /bec_widgets/widgets/{signal_combobox → control/device_input/signal_combobox}/signal_combobox.pyproject +0 -0
  190. /bec_widgets/widgets/{jupyter_console → control/device_input/signal_line_edit}/__init__.py +0 -0
  191. /bec_widgets/widgets/{signal_line_edit → control/device_input/signal_line_edit}/signal_line_edit.pyproject +0 -0
  192. /bec_widgets/widgets/{scan_control → control/scan_control}/__init__.py +0 -0
  193. /bec_widgets/widgets/{scan_control → control/scan_control}/scan_control.pyproject +0 -0
  194. /bec_widgets/widgets/{lmfit_dialog → dap}/__init__.py +0 -0
  195. /bec_widgets/widgets/{motor_map → dap/dap_combo_box}/__init__.py +0 -0
  196. /bec_widgets/widgets/{dap_combo_box → dap/dap_combo_box}/dap_combo_box.pyproject +0 -0
  197. /bec_widgets/widgets/{motor_map/motor_map_dialog → dap/lmfit_dialog}/__init__.py +0 -0
  198. /bec_widgets/widgets/{lmfit_dialog → dap/lmfit_dialog}/lm_fit_dialog.pyproject +0 -0
  199. /bec_widgets/widgets/{lmfit_dialog → dap/lmfit_dialog}/lmfit_dialog_compact.ui +0 -0
  200. /bec_widgets/widgets/{lmfit_dialog → dap/lmfit_dialog}/lmfit_dialog_vertical.ui +0 -0
  201. /bec_widgets/widgets/{multi_waveform → editors}/__init__.py +0 -0
  202. /bec_widgets/widgets/{position_indicator → editors/console}/__init__.py +0 -0
  203. /bec_widgets/widgets/{console → editors/console}/console.pyproject +0 -0
  204. /bec_widgets/widgets/{positioner_box → editors/jupyter_console}/__init__.py +0 -0
  205. /bec_widgets/widgets/{jupyter_console → editors/jupyter_console}/jupyter_console.py +0 -0
  206. /bec_widgets/widgets/{positioner_group → editors/text_box}/__init__.py +0 -0
  207. /bec_widgets/widgets/{text_box → editors/text_box}/text_box.pyproject +0 -0
  208. /bec_widgets/widgets/{signal_combobox → editors/vscode}/__init__.py +0 -0
  209. /bec_widgets/widgets/{vscode → editors/vscode}/vs_code_editor.pyproject +0 -0
  210. /bec_widgets/widgets/{signal_line_edit → editors/website}/__init__.py +0 -0
  211. /bec_widgets/widgets/{website → editors/website}/website_widget.pyproject +0 -0
  212. /bec_widgets/widgets/{spinner → plots}/__init__.py +0 -0
  213. /bec_widgets/widgets/{stop_button → plots/image}/__init__.py +0 -0
  214. /bec_widgets/widgets/{image → plots/image}/bec_image_widget.pyproject +0 -0
  215. /bec_widgets/widgets/{text_box → plots/motor_map}/__init__.py +0 -0
  216. /bec_widgets/widgets/{motor_map → plots/motor_map}/bec_motor_map_widget.pyproject +0 -0
  217. /bec_widgets/widgets/{toggle → plots/motor_map/motor_map_dialog}/__init__.py +0 -0
  218. /bec_widgets/widgets/{motor_map → plots/motor_map}/motor_map_dialog/motor_map_settings.py +0 -0
  219. /bec_widgets/widgets/{motor_map → plots/motor_map}/motor_map_dialog/motor_map_settings.ui +0 -0
  220. /bec_widgets/widgets/{vscode → plots/multi_waveform}/__init__.py +0 -0
  221. /bec_widgets/widgets/{multi_waveform → plots/multi_waveform}/bec_multi_waveform_widget.pyproject +0 -0
  222. /bec_widgets/widgets/{multi_waveform → plots/multi_waveform}/multi_waveform_controls.ui +0 -0
  223. /bec_widgets/widgets/{waveform → plots/waveform}/__init__.py +0 -0
  224. /bec_widgets/widgets/{waveform → plots/waveform}/bec_waveform_widget.pyproject +0 -0
  225. /bec_widgets/widgets/{waveform → plots/waveform}/waveform_popups/__init__.py +0 -0
  226. /bec_widgets/widgets/{waveform → plots/waveform}/waveform_popups/curve_dialog/__init__.py +0 -0
  227. /bec_widgets/widgets/{waveform → plots/waveform}/waveform_popups/curve_dialog/curve_dialog.ui +0 -0
  228. /bec_widgets/widgets/{waveform → plots/waveform}/waveform_popups/dap_summary_dialog/__init__.py +0 -0
  229. /bec_widgets/widgets/{website → progress}/__init__.py +0 -0
  230. /bec_widgets/widgets/{bec_progressbar → progress/bec_progressbar}/bec_progress_bar.pyproject +0 -0
  231. /bec_widgets/widgets/{ring_progress_bar → progress/ring_progress_bar}/__init__.py +0 -0
  232. /bec_widgets/widgets/{ring_progress_bar → progress/ring_progress_bar}/ring.py +0 -0
  233. /bec_widgets/widgets/{ring_progress_bar → progress/ring_progress_bar}/ring_progress_bar.pyproject +0 -0
  234. /bec_widgets/widgets/{bec_queue → services/bec_queue}/bec_queue.pyproject +0 -0
  235. /bec_widgets/widgets/{bec_status_box → services/bec_status_box}/bec_status_box.pyproject +0 -0
  236. /bec_widgets/widgets/{bec_status_box → services/bec_status_box}/status_item.py +0 -0
  237. /bec_widgets/widgets/{device_browser → services/device_browser}/device_browser.pyproject +0 -0
  238. /bec_widgets/widgets/{device_browser → services/device_browser}/device_browser.ui +0 -0
  239. /bec_widgets/widgets/{device_browser → services/device_browser}/device_item/__init__.py +0 -0
  240. /bec_widgets/widgets/{device_browser → services/device_browser}/device_item/device_item.py +0 -0
  241. /bec_widgets/widgets/{spinner → utility/spinner}/spinner_widget.pyproject +0 -0
  242. /bec_widgets/widgets/{toggle → utility/toggle}/toggle_switch.pyproject +0 -0
  243. /bec_widgets/widgets/{color_button → utility/visual/color_button}/color_button.pyproject +0 -0
  244. /bec_widgets/widgets/{colormap_selector → utility/visual/colormap_selector}/colormap_selector.pyproject +0 -0
  245. /bec_widgets/widgets/{colormap_widget → utility/visual/colormap_widget}/bec_color_map_widget.pyproject +0 -0
  246. /bec_widgets/widgets/{dark_mode_button → utility/visual/dark_mode_button}/dark_mode_button.pyproject +0 -0
  247. {bec_widgets-1.5.0.dist-info → bec_widgets-1.5.2.dist-info}/entry_points.txt +0 -0
  248. {bec_widgets-1.5.0.dist-info → bec_widgets-1.5.2.dist-info}/licenses/LICENSE +0 -0
CHANGELOG.md CHANGED
@@ -1,6 +1,28 @@
1
1
  # CHANGELOG
2
2
 
3
3
 
4
+ ## v1.5.2 (2024-11-18)
5
+
6
+ ### Bug Fixes
7
+
8
+ - Support for bec v3
9
+ ([`746359b`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/746359b2cc07a317473907adfcabbe5fe5d1b64c))
10
+
11
+
12
+ ## v1.5.1 (2024-11-14)
13
+
14
+ ### Bug Fixes
15
+
16
+ - **plugin_utils**: Plugin utils are able to detect classes for plugin creation based on class
17
+ attribute rather than if it is top level widget
18
+ ([`7a1b874`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/7a1b8748a433f854671ac95f2eaf4604e6b8df20))
19
+
20
+ ### Refactoring
21
+
22
+ - **widgets**: Widget module structure reorganised
23
+ ([`aab0229`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/aab0229a4067ad626de919e38a5c8a2e9e7b03c2))
24
+
25
+
4
26
  ## v1.5.0 (2024-11-12)
5
27
 
6
28
  ### Bug Fixes
@@ -182,9 +204,6 @@
182
204
  - Alignment 1D update, make app window a main window (in .ui file)
183
205
  ([`0015f0e`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/0015f0e2d62adc02d3ef334e1f6dbb2d0288fec6))
184
206
 
185
- - Set (Minimum, Fixed) size policy on Stop button
186
- ([`523cc43`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/523cc435725b10b7d59a4477a1aaa24a1f3e37a2))
187
-
188
207
  ### Features
189
208
 
190
209
  - New PositionerGroup widget
@@ -195,17 +214,3 @@
195
214
 
196
215
  This property tells if expand should show a popup (by default), or if the widget should expand
197
216
  in-place
198
-
199
- - Positionerbox with a popup view
200
- ([`2615787`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/261578796f1de8ca9cab9b91659bc1484f7aa89d))
201
-
202
- - Emit 'device_selected' and 'scan_axis' from scan control widget
203
- ([`0b9b1a3`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/0b9b1a3c89a98505079f7d4078915b7bbfaa1e23))
204
-
205
- ### Refactoring
206
-
207
- - Redesign of scan selection and scan control boxes
208
- ([`a69d287`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/a69d2870e2b3539739781d741b27b8599c0f4abd))
209
-
210
- - Move add/remove bundle to scan group box
211
- ([`e3d0a7b`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/e3d0a7bbf9918dc16eb7227a178c310256ce570d))
PKG-INFO CHANGED
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: bec_widgets
3
- Version: 1.5.0
3
+ Version: 1.5.2
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
@@ -8,8 +8,8 @@ Classifier: Development Status :: 3 - Alpha
8
8
  Classifier: Programming Language :: Python :: 3
9
9
  Classifier: Topic :: Scientific/Engineering
10
10
  Requires-Python: >=3.10
11
- Requires-Dist: bec-ipython-client>=2.21.4,~=2.21
12
- Requires-Dist: bec-lib>=2.21.4,~=2.21
11
+ Requires-Dist: bec-ipython-client<=4.0,>=2.21.4
12
+ Requires-Dist: bec-lib<=4.0,>=2.21.4
13
13
  Requires-Dist: bec-qthemes>=0.7,~=0.7
14
14
  Requires-Dist: black~=24.0
15
15
  Requires-Dist: isort>=5.13.2,~=5.13
@@ -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,39 +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
- BECMultiWaveformWidget = "BECMultiWaveformWidget"
26
- BECProgressBar = "BECProgressBar"
27
- BECQueue = "BECQueue"
28
- BECStatusBox = "BECStatusBox"
29
- BECWaveformWidget = "BECWaveformWidget"
30
- DapComboBox = "DapComboBox"
31
- DarkModeButton = "DarkModeButton"
32
- DeviceBrowser = "DeviceBrowser"
33
- DeviceComboBox = "DeviceComboBox"
34
- DeviceLineEdit = "DeviceLineEdit"
35
- LMFitDialog = "LMFitDialog"
36
- PositionIndicator = "PositionIndicator"
37
- PositionerBox = "PositionerBox"
38
- PositionerControlLine = "PositionerControlLine"
39
- PositionerGroup = "PositionerGroup"
40
- ResetButton = "ResetButton"
41
- ResumeButton = "ResumeButton"
42
- RingProgressBar = "RingProgressBar"
43
- ScanControl = "ScanControl"
44
- SignalComboBox = "SignalComboBox"
45
- SignalLineEdit = "SignalLineEdit"
46
- StopButton = "StopButton"
47
- TextBox = "TextBox"
48
- VSCodeEditor = "VSCodeEditor"
49
- WebsiteWidget = "WebsiteWidget"
50
-
51
18
 
52
19
  class AbortButton(RPCBase):
53
20
  @property
@@ -1641,10 +1608,10 @@ class BECMultiWaveform(RPCBase):
1641
1608
  @rpc_call
1642
1609
  def set_colormap(self, colormap: str):
1643
1610
  """
1644
- Set the colormap for the scatter plot z gradient.
1611
+ Set the colormap for the curves.
1645
1612
 
1646
1613
  Args:
1647
- colormap(str): Colormap for the scatter plot.
1614
+ colormap(str): Colormap for the curves.
1648
1615
  """
1649
1616
 
1650
1617
  @rpc_call
@@ -1757,10 +1724,10 @@ class BECMultiWaveform(RPCBase):
1757
1724
  @rpc_call
1758
1725
  def set_colormap(self, colormap: str):
1759
1726
  """
1760
- Set the colormap for the scatter plot z gradient.
1727
+ Set the colormap for the curves.
1761
1728
 
1762
1729
  Args:
1763
- colormap(str): Colormap for the scatter plot.
1730
+ colormap(str): Colormap for the curves.
1764
1731
  """
1765
1732
 
1766
1733
  @rpc_call
@@ -1781,6 +1748,12 @@ class BECMultiWaveform(RPCBase):
1781
1748
  lock(bool): True to lock, False to unlock.
1782
1749
  """
1783
1750
 
1751
+ @rpc_call
1752
+ def export(self):
1753
+ """
1754
+ Show the Export Dialog of the plot widget.
1755
+ """
1756
+
1784
1757
  @rpc_call
1785
1758
  def get_all_data(self, output: Literal["dict", "pandas"] = "dict") -> dict:
1786
1759
  """
@@ -1793,12 +1766,6 @@ class BECMultiWaveform(RPCBase):
1793
1766
  dict | pd.DataFrame: Data of all curves in the specified format.
1794
1767
  """
1795
1768
 
1796
- @rpc_call
1797
- def export(self):
1798
- """
1799
- Show the Export Dialog of the plot widget.
1800
- """
1801
-
1802
1769
  @rpc_call
1803
1770
  def remove(self):
1804
1771
  """
@@ -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)
@@ -28,10 +28,10 @@ class RPCWidgetHandler:
28
28
  Returns:
29
29
  None
30
30
  """
31
- from bec_widgets.utils.plugin_utils import get_rpc_classes
31
+ from bec_widgets.utils.plugin_utils import get_custom_classes
32
32
 
33
- clss = get_rpc_classes("bec_widgets")
34
- 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}
35
35
 
36
36
  def create_widget(self, widget_type, **kwargs) -> BECConnector:
37
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
@@ -3,8 +3,6 @@ import os
3
3
  import numpy as np
4
4
  import pyqtgraph as pg
5
5
  from bec_qthemes import material_icon
6
- from qtpy.QtCore import QSize
7
- from qtpy.QtGui import QIcon
8
6
  from qtpy.QtWidgets import (
9
7
  QApplication,
10
8
  QGroupBox,
@@ -17,9 +15,9 @@ from qtpy.QtWidgets import (
17
15
 
18
16
  from bec_widgets.utils import BECDispatcher
19
17
  from bec_widgets.utils.colors import apply_theme
20
- from bec_widgets.widgets.dock.dock_area import BECDockArea
21
- from bec_widgets.widgets.figure import BECFigure
22
- from bec_widgets.widgets.jupyter_console.jupyter_console import BECJupyterConsole
18
+ from bec_widgets.widgets.containers.dock import BECDockArea
19
+ from bec_widgets.widgets.containers.figure import BECFigure
20
+ from bec_widgets.widgets.editors.jupyter_console.jupyter_console import BECJupyterConsole
23
21
 
24
22
 
25
23
  class JupyterConsoleWindow(QWidget): # pragma: no cover:
@@ -13,7 +13,7 @@ from qtpy.QtWidgets import (
13
13
 
14
14
  from bec_widgets.utils.bec_widget import BECWidget
15
15
  from bec_widgets.utils.colors import get_accent_colors, get_theme_palette
16
- from bec_widgets.widgets.dark_mode_button.dark_mode_button import DarkModeButton
16
+ from bec_widgets.widgets.utility.visual.dark_mode_button.dark_mode_button import DarkModeButton
17
17
 
18
18
 
19
19
  class PaletteViewer(BECWidget, QWidget):
@@ -143,7 +143,7 @@ class DesignerPluginGenerator:
143
143
 
144
144
  if __name__ == "__main__": # pragma: no cover
145
145
  # from bec_widgets.widgets.bec_queue.bec_queue import BECQueue
146
- from bec_widgets.widgets.spinner.spinner import SpinnerWidget
146
+ from bec_widgets.widgets.utility.spinner import SpinnerWidget
147
147
 
148
148
  generator = DesignerPluginGenerator(SpinnerWidget)
149
149
  generator.run(validate=False)
@@ -53,7 +53,7 @@ class BECClassInfo:
53
53
  obj: type
54
54
  is_connector: bool = False
55
55
  is_widget: bool = False
56
- is_top_level: bool = False
56
+ is_plugin: bool = False
57
57
 
58
58
 
59
59
  class BECClassContainer:
@@ -88,14 +88,14 @@ class BECClassContainer:
88
88
  """
89
89
  Get all top-level classes.
90
90
  """
91
- return [info.obj for info in self.collection if info.is_top_level]
91
+ return [info.obj for info in self.collection if info.is_plugin]
92
92
 
93
93
  @property
94
94
  def plugins(self):
95
95
  """
96
96
  Get all plugins. These are all classes that are on the top level and are widgets.
97
97
  """
98
- return [info.obj for info in self.collection if info.is_widget and info.is_top_level]
98
+ return [info.obj for info in self.collection if info.is_widget and info.is_plugin]
99
99
 
100
100
  @property
101
101
  def widgets(self):
@@ -109,10 +109,17 @@ class BECClassContainer:
109
109
  """
110
110
  Get all top-level classes that are RPC-enabled. These are all classes that users can choose from.
111
111
  """
112
- return [info.obj for info in self.collection if info.is_top_level and info.is_connector]
112
+ return [info.obj for info in self.collection if info.is_plugin and info.is_connector]
113
+
114
+ @property
115
+ def classes(self):
116
+ """
117
+ Get all classes.
118
+ """
119
+ return [info.obj for info in self.collection]
113
120
 
114
121
 
115
- def get_rpc_classes(repo_name: str) -> BECClassContainer:
122
+ def get_custom_classes(repo_name: str) -> BECClassContainer:
116
123
  """
117
124
  Get all RPC-enabled classes in the specified repository.
118
125
 
@@ -153,6 +160,8 @@ def get_rpc_classes(repo_name: str) -> BECClassContainer:
153
160
  issubclass(obj, QWidget) or issubclass(obj, QGraphicsWidget)
154
161
  ):
155
162
  class_info.is_top_level = True
163
+ if hasattr(obj, "PLUGIN") and obj.PLUGIN:
164
+ class_info.is_plugin = True
156
165
  collection.add_class(class_info)
157
166
 
158
167
  return collection
@@ -4,7 +4,7 @@ from qtpy import PYQT6, PYSIDE6, QT_VERSION
4
4
  from qtpy.QtCore import QFile, QIODevice
5
5
 
6
6
  from bec_widgets.utils.generate_designer_plugin import DesignerPluginInfo
7
- from bec_widgets.utils.plugin_utils import get_rpc_classes
7
+ from bec_widgets.utils.plugin_utils import get_custom_classes
8
8
 
9
9
  if PYSIDE6:
10
10
  from PySide6.QtUiTools import QUiLoader
@@ -30,7 +30,7 @@ class UILoader:
30
30
  def __init__(self, parent=None):
31
31
  self.parent = parent
32
32
 
33
- widgets = get_rpc_classes("bec_widgets").top_level_classes
33
+ widgets = get_custom_classes("bec_widgets").classes
34
34
 
35
35
  self.custom_widgets = {widget.__name__: widget for widget in widgets}
36
36
 
@@ -18,18 +18,18 @@ from bec_widgets.qt_utils.toolbar import (
18
18
  )
19
19
  from bec_widgets.utils import ConnectionConfig, WidgetContainerUtils
20
20
  from bec_widgets.utils.bec_widget import BECWidget
21
- from bec_widgets.widgets.bec_queue.bec_queue import BECQueue
22
- from bec_widgets.widgets.bec_status_box.bec_status_box import BECStatusBox
23
- from bec_widgets.widgets.dark_mode_button.dark_mode_button import DarkModeButton
24
- from bec_widgets.widgets.dock.dock import BECDock, DockConfig
25
- from bec_widgets.widgets.image.image_widget import BECImageWidget
26
- from bec_widgets.widgets.motor_map.motor_map_widget import BECMotorMapWidget
27
- from bec_widgets.widgets.multi_waveform.multi_waveform_widget import BECMultiWaveformWidget
28
- from bec_widgets.widgets.positioner_box.positioner_box import PositionerBox
29
- from bec_widgets.widgets.ring_progress_bar.ring_progress_bar import RingProgressBar
30
- from bec_widgets.widgets.scan_control.scan_control import ScanControl
31
- from bec_widgets.widgets.vscode.vscode import VSCodeEditor
32
- from bec_widgets.widgets.waveform.waveform_widget import BECWaveformWidget
21
+ from bec_widgets.widgets.containers.dock.dock import BECDock, DockConfig
22
+ from bec_widgets.widgets.control.device_control.positioner_box.positioner_box import PositionerBox
23
+ from bec_widgets.widgets.control.scan_control.scan_control import ScanControl
24
+ from bec_widgets.widgets.editors.vscode.vscode import VSCodeEditor
25
+ from bec_widgets.widgets.plots.image.image_widget import BECImageWidget
26
+ from bec_widgets.widgets.plots.motor_map.motor_map_widget import BECMotorMapWidget
27
+ from bec_widgets.widgets.plots.multi_waveform.multi_waveform_widget import BECMultiWaveformWidget
28
+ from bec_widgets.widgets.plots.waveform.waveform_widget import BECWaveformWidget
29
+ from bec_widgets.widgets.progress.ring_progress_bar.ring_progress_bar import RingProgressBar
30
+ from bec_widgets.widgets.services.bec_queue.bec_queue import BECQueue
31
+ from bec_widgets.widgets.services.bec_status_box.bec_status_box import BECStatusBox
32
+ from bec_widgets.widgets.utility.visual.dark_mode_button.dark_mode_button import DarkModeButton
33
33
 
34
34
 
35
35
  class DockAreaConfig(ConnectionConfig):
@@ -40,6 +40,7 @@ class DockAreaConfig(ConnectionConfig):
40
40
 
41
41
 
42
42
  class BECDockArea(BECWidget, QWidget):
43
+ PLUGIN = True
43
44
  USER_ACCESS = [
44
45
  "_config_dict",
45
46
  "panels",
@@ -6,7 +6,7 @@ from qtpy.QtDesigner import QDesignerCustomWidgetInterface
6
6
 
7
7
  import bec_widgets
8
8
  from bec_widgets.utils.bec_designer import designer_material_icon
9
- from bec_widgets.widgets.dock import BECDockArea
9
+ from bec_widgets.widgets.containers.dock import BECDockArea
10
10
 
11
11
  DOM_XML = """
12
12
  <ui language='c++'>
@@ -6,7 +6,7 @@ def main(): # pragma: no cover
6
6
  return
7
7
  from PySide6.QtDesigner import QPyDesignerCustomWidgetCollection
8
8
 
9
- from bec_widgets.widgets.dock.dock_area_plugin import BECDockAreaPlugin
9
+ from bec_widgets.widgets.containers.dock.dock_area_plugin import BECDockAreaPlugin
10
10
 
11
11
  QPyDesignerCustomWidgetCollection.addCustomWidget(BECDockAreaPlugin())
12
12
 
@@ -11,20 +11,25 @@ from bec_lib.logger import bec_logger
11
11
  from pydantic import Field, ValidationError, field_validator
12
12
  from qtpy.QtCore import Signal as pyqtSignal
13
13
  from qtpy.QtWidgets import QWidget
14
- from tornado.gen import multi
15
14
  from typeguard import typechecked
16
15
 
17
16
  from bec_widgets.utils import ConnectionConfig, WidgetContainerUtils
18
17
  from bec_widgets.utils.bec_widget import BECWidget
19
18
  from bec_widgets.utils.colors import apply_theme
20
- from bec_widgets.widgets.figure.plots.image.image import BECImageShow, ImageConfig
21
- from bec_widgets.widgets.figure.plots.motor_map.motor_map import BECMotorMap, MotorMapConfig
22
- from bec_widgets.widgets.figure.plots.multi_waveform.multi_waveform import (
19
+ from bec_widgets.widgets.containers.figure.plots.image.image import BECImageShow, ImageConfig
20
+ from bec_widgets.widgets.containers.figure.plots.motor_map.motor_map import (
21
+ BECMotorMap,
22
+ MotorMapConfig,
23
+ )
24
+ from bec_widgets.widgets.containers.figure.plots.multi_waveform.multi_waveform import (
23
25
  BECMultiWaveform,
24
26
  BECMultiWaveformConfig,
25
27
  )
26
- from bec_widgets.widgets.figure.plots.plot_base import BECPlotBase, SubplotConfig
27
- from bec_widgets.widgets.figure.plots.waveform.waveform import BECWaveform, Waveform1DConfig
28
+ from bec_widgets.widgets.containers.figure.plots.plot_base import BECPlotBase, SubplotConfig
29
+ from bec_widgets.widgets.containers.figure.plots.waveform.waveform import (
30
+ BECWaveform,
31
+ Waveform1DConfig,
32
+ )
28
33
 
29
34
  logger = bec_logger.logger
30
35
 
@@ -6,19 +6,22 @@ from typing import Any, Literal, Optional
6
6
  import numpy as np
7
7
  from bec_lib.endpoints import MessageEndpoints
8
8
  from bec_lib.logger import bec_logger
9
- from pydantic import BaseModel, Field, ValidationError
9
+ from pydantic import Field, ValidationError
10
10
  from qtpy.QtCore import QThread, Slot
11
11
  from qtpy.QtWidgets import QWidget
12
12
 
13
13
  # from bec_widgets.qt_utils.error_popups import SafeSlot as Slot
14
14
  from bec_widgets.utils import EntryValidator
15
- from bec_widgets.widgets.figure.plots.image.image_item import BECImageItem, ImageItemConfig
16
- from bec_widgets.widgets.figure.plots.image.image_processor import (
15
+ from bec_widgets.widgets.containers.figure.plots.image.image_item import (
16
+ BECImageItem,
17
+ ImageItemConfig,
18
+ )
19
+ from bec_widgets.widgets.containers.figure.plots.image.image_processor import (
17
20
  ImageProcessor,
18
21
  ImageStats,
19
22
  ProcessorWorker,
20
23
  )
21
- from bec_widgets.widgets.figure.plots.plot_base import BECPlotBase, SubplotConfig
24
+ from bec_widgets.widgets.containers.figure.plots.plot_base import BECPlotBase, SubplotConfig
22
25
 
23
26
  logger = bec_logger.logger
24
27
 
@@ -8,10 +8,13 @@ from bec_lib.logger import bec_logger
8
8
  from pydantic import Field
9
9
 
10
10
  from bec_widgets.utils import BECConnector, ConnectionConfig
11
- from bec_widgets.widgets.figure.plots.image.image_processor import ImageStats, ProcessingConfig
11
+ from bec_widgets.widgets.containers.figure.plots.image.image_processor import (
12
+ ImageStats,
13
+ ProcessingConfig,
14
+ )
12
15
 
13
16
  if TYPE_CHECKING:
14
- from bec_widgets.widgets.figure.plots.image.image import BECImageShow
17
+ from bec_widgets.widgets.containers.figure.plots.image.image import BECImageShow
15
18
 
16
19
  logger = bec_logger.logger
17
20
 
@@ -15,8 +15,8 @@ from qtpy.QtWidgets import QWidget
15
15
 
16
16
  from bec_widgets.qt_utils.error_popups import SafeSlot as Slot
17
17
  from bec_widgets.utils import Colors, EntryValidator
18
- from bec_widgets.widgets.figure.plots.plot_base import BECPlotBase, SubplotConfig
19
- from bec_widgets.widgets.figure.plots.waveform.waveform import Signal, SignalData
18
+ from bec_widgets.widgets.containers.figure.plots.plot_base import BECPlotBase, SubplotConfig
19
+ from bec_widgets.widgets.containers.figure.plots.waveform.waveform import Signal, SignalData
20
20
 
21
21
  logger = bec_logger.logger
22
22
 
@@ -10,7 +10,7 @@ from qtpy.QtCore import Signal, Slot
10
10
  from qtpy.QtWidgets import QWidget
11
11
 
12
12
  from bec_widgets.utils import Colors
13
- from bec_widgets.widgets.figure.plots.plot_base import BECPlotBase, SubplotConfig
13
+ from bec_widgets.widgets.containers.figure.plots.plot_base import BECPlotBase, SubplotConfig
14
14
 
15
15
  logger = bec_logger.logger
16
16
 
@@ -345,7 +345,7 @@ if __name__ == "__main__":
345
345
 
346
346
  from qtpy.QtWidgets import QApplication
347
347
 
348
- from bec_widgets.widgets.figure import BECFigure
348
+ from bec_widgets.widgets.containers.figure import BECFigure
349
349
 
350
350
  app = QApplication(sys.argv)
351
351
  widget = BECFigure()
@@ -19,8 +19,8 @@ from bec_widgets.qt_utils.error_popups import SafeSlot as Slot
19
19
  from bec_widgets.utils import Colors, EntryValidator
20
20
  from bec_widgets.utils.colors import get_accent_colors
21
21
  from bec_widgets.utils.linear_region_selector import LinearRegionWrapper
22
- from bec_widgets.widgets.figure.plots.plot_base import BECPlotBase, SubplotConfig
23
- from bec_widgets.widgets.figure.plots.waveform.waveform_curve import (
22
+ from bec_widgets.widgets.containers.figure.plots.plot_base import BECPlotBase, SubplotConfig
23
+ from bec_widgets.widgets.containers.figure.plots.waveform.waveform_curve import (
24
24
  BECCurve,
25
25
  CurveConfig,
26
26
  Signal,
@@ -1,6 +1,6 @@
1
1
  from __future__ import annotations
2
2
 
3
- from typing import TYPE_CHECKING, Any, Literal, Optional
3
+ from typing import TYPE_CHECKING, Literal, Optional
4
4
 
5
5
  import numpy as np
6
6
  import pyqtgraph as pg
@@ -11,7 +11,7 @@ from qtpy import QtCore
11
11
  from bec_widgets.utils import BECConnector, Colors, ConnectionConfig
12
12
 
13
13
  if TYPE_CHECKING:
14
- from bec_widgets.widgets.figure.plots.waveform import BECWaveform1D
14
+ from bec_widgets.widgets.containers.figure.plots.waveform import BECWaveform1D
15
15
 
16
16
  logger = bec_logger.logger
17
17
 
@@ -4,7 +4,7 @@
4
4
  from qtpy.QtDesigner import QDesignerCustomWidgetInterface
5
5
 
6
6
  from bec_widgets.utils.bec_designer import designer_material_icon
7
- from bec_widgets.widgets.button_abort.button_abort import AbortButton
7
+ from bec_widgets.widgets.control.buttons.button_abort.button_abort import AbortButton
8
8
 
9
9
  DOM_XML = """
10
10
  <ui language='c++'>
@@ -9,6 +9,7 @@ from bec_widgets.utils.bec_widget import BECWidget
9
9
  class AbortButton(BECWidget, QWidget):
10
10
  """A button that abort the scan."""
11
11
 
12
+ PLUGIN = True
12
13
  ICON_NAME = "cancel"
13
14
 
14
15
  def __init__(
@@ -6,7 +6,9 @@ def main(): # pragma: no cover
6
6
  return
7
7
  from PySide6.QtDesigner import QPyDesignerCustomWidgetCollection
8
8
 
9
- from bec_widgets.widgets.button_abort.abort_button_plugin import AbortButtonPlugin
9
+ from bec_widgets.widgets.control.buttons.button_abort.abort_button_plugin import (
10
+ AbortButtonPlugin,
11
+ )
10
12
 
11
13
  QPyDesignerCustomWidgetCollection.addCustomWidget(AbortButtonPlugin())
12
14
 
@@ -9,6 +9,7 @@ from bec_widgets.utils.bec_widget import BECWidget
9
9
  class ResetButton(BECWidget, QWidget):
10
10
  """A button that resets the scan queue."""
11
11
 
12
+ PLUGIN = True
12
13
  ICON_NAME = "restart_alt"
13
14
 
14
15
  def __init__(self, parent=None, client=None, config=None, gui_id=None, toolbar=False):
@@ -6,7 +6,9 @@ def main(): # pragma: no cover
6
6
  return
7
7
  from PySide6.QtDesigner import QPyDesignerCustomWidgetCollection
8
8
 
9
- from bec_widgets.widgets.button_reset.reset_button_plugin import ResetButtonPlugin
9
+ from bec_widgets.widgets.control.buttons.button_reset.reset_button_plugin import (
10
+ ResetButtonPlugin,
11
+ )
10
12
 
11
13
  QPyDesignerCustomWidgetCollection.addCustomWidget(ResetButtonPlugin())
12
14
 
@@ -4,7 +4,7 @@
4
4
  from qtpy.QtDesigner import QDesignerCustomWidgetInterface
5
5
 
6
6
  from bec_widgets.utils.bec_designer import designer_material_icon
7
- from bec_widgets.widgets.button_reset.button_reset import ResetButton
7
+ from bec_widgets.widgets.control.buttons.button_reset.button_reset import ResetButton
8
8
 
9
9
  DOM_XML = """
10
10
  <ui language='c++'>
@@ -9,6 +9,7 @@ from bec_widgets.utils.bec_widget import BECWidget
9
9
  class ResumeButton(BECWidget, QWidget):
10
10
  """A button that continue scan queue."""
11
11
 
12
+ PLUGIN = True
12
13
  ICON_NAME = "resume"
13
14
 
14
15
  def __init__(self, parent=None, client=None, config=None, gui_id=None, toolbar=False):