bec-widgets 0.93.4__tar.gz → 0.94.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (378) hide show
  1. {bec_widgets-0.93.4 → bec_widgets-0.94.0}/CHANGELOG.md +26 -24
  2. {bec_widgets-0.93.4 → bec_widgets-0.94.0}/PKG-INFO +1 -1
  3. bec_widgets-0.94.0/bec_widgets/assets/toolbar_icons/device_line_edit.svg +3 -0
  4. {bec_widgets-0.93.4 → bec_widgets-0.94.0}/bec_widgets/cli/client.py +12 -0
  5. {bec_widgets-0.93.4 → bec_widgets-0.94.0}/bec_widgets/widgets/positioner_box/positioner_box.py +43 -7
  6. {bec_widgets-0.93.4 → bec_widgets-0.94.0}/bec_widgets/widgets/positioner_box/positioner_box.ui +10 -0
  7. {bec_widgets-0.93.4 → bec_widgets-0.94.0}/bec_widgets/widgets/positioner_box/positioner_box_plugin.py +6 -2
  8. bec_widgets-0.94.0/bec_widgets/widgets/positioner_box/positioner_control_line.py +33 -0
  9. bec_widgets-0.94.0/bec_widgets/widgets/positioner_box/positioner_control_line.pyproject +1 -0
  10. bec_widgets-0.94.0/bec_widgets/widgets/positioner_box/positioner_control_line.ui +216 -0
  11. bec_widgets-0.94.0/bec_widgets/widgets/positioner_box/positioner_control_line_plugin.py +58 -0
  12. bec_widgets-0.94.0/bec_widgets/widgets/positioner_box/register_positioner_control_line.py +17 -0
  13. {bec_widgets-0.93.4 → bec_widgets-0.94.0}/pyproject.toml +1 -1
  14. {bec_widgets-0.93.4 → bec_widgets-0.94.0}/tests/end-2-end/test_bec_dock_rpc_e2e.py +13 -2
  15. {bec_widgets-0.93.4 → bec_widgets-0.94.0}/tests/end-2-end/test_bec_figure_rpc_e2e.py +9 -7
  16. {bec_widgets-0.93.4 → bec_widgets-0.94.0}/tests/unit_tests/test_positioner_box.py +26 -0
  17. {bec_widgets-0.93.4 → bec_widgets-0.94.0}/.git_hooks/pre-commit +0 -0
  18. {bec_widgets-0.93.4 → bec_widgets-0.94.0}/.gitignore +0 -0
  19. {bec_widgets-0.93.4 → bec_widgets-0.94.0}/.gitlab/issue_templates/bug_report_template.md +0 -0
  20. {bec_widgets-0.93.4 → bec_widgets-0.94.0}/.gitlab/issue_templates/documentation_update_template.md +0 -0
  21. {bec_widgets-0.93.4 → bec_widgets-0.94.0}/.gitlab/issue_templates/feature_request_template.md +0 -0
  22. {bec_widgets-0.93.4 → bec_widgets-0.94.0}/.gitlab/merge_request_templates/default.md +0 -0
  23. {bec_widgets-0.93.4 → bec_widgets-0.94.0}/.gitlab-ci.yml +0 -0
  24. {bec_widgets-0.93.4 → bec_widgets-0.94.0}/.pylintrc +0 -0
  25. {bec_widgets-0.93.4 → bec_widgets-0.94.0}/.readthedocs.yaml +0 -0
  26. {bec_widgets-0.93.4 → bec_widgets-0.94.0}/LICENSE +0 -0
  27. {bec_widgets-0.93.4 → bec_widgets-0.94.0}/README.md +0 -0
  28. {bec_widgets-0.93.4 → bec_widgets-0.94.0}/bec_widgets/__init__.py +0 -0
  29. {bec_widgets-0.93.4 → bec_widgets-0.94.0}/bec_widgets/assets/app_icons/BEC-Dark.png +0 -0
  30. {bec_widgets-0.93.4 → bec_widgets-0.94.0}/bec_widgets/assets/app_icons/bec_widgets_icon.png +0 -0
  31. {bec_widgets-0.93.4 → bec_widgets-0.94.0}/bec_widgets/assets/app_icons/terminal_icon.png +0 -0
  32. {bec_widgets-0.93.4 → bec_widgets-0.94.0}/bec_widgets/assets/designer_icons/code.png +0 -0
  33. {bec_widgets-0.93.4 → bec_widgets-0.94.0}/bec_widgets/assets/designer_icons/color_button.png +0 -0
  34. {bec_widgets-0.93.4 → bec_widgets-0.94.0}/bec_widgets/assets/designer_icons/colormap_selector.png +0 -0
  35. {bec_widgets-0.93.4 → bec_widgets-0.94.0}/bec_widgets/assets/designer_icons/device_combo_box.png +0 -0
  36. {bec_widgets-0.93.4 → bec_widgets-0.94.0}/bec_widgets/assets/designer_icons/device_line_edit.png +0 -0
  37. {bec_widgets-0.93.4 → bec_widgets-0.94.0}/bec_widgets/assets/designer_icons/dock_area.png +0 -0
  38. {bec_widgets-0.93.4 → bec_widgets-0.94.0}/bec_widgets/assets/designer_icons/games.png +0 -0
  39. {bec_widgets-0.93.4 → bec_widgets-0.94.0}/bec_widgets/assets/designer_icons/image.png +0 -0
  40. {bec_widgets-0.93.4 → bec_widgets-0.94.0}/bec_widgets/assets/designer_icons/motor_map.png +0 -0
  41. {bec_widgets-0.93.4 → bec_widgets-0.94.0}/bec_widgets/assets/designer_icons/position_indicator.png +0 -0
  42. /bec_widgets-0.93.4/bec_widgets/assets/designer_icons/device_box.png → /bec_widgets-0.94.0/bec_widgets/assets/designer_icons/positioner_box.png +0 -0
  43. {bec_widgets-0.93.4 → bec_widgets-0.94.0}/bec_widgets/assets/designer_icons/queue.png +0 -0
  44. {bec_widgets-0.93.4 → bec_widgets-0.94.0}/bec_widgets/assets/designer_icons/ring_progress.png +0 -0
  45. {bec_widgets-0.93.4 → bec_widgets-0.94.0}/bec_widgets/assets/designer_icons/scan_control.png +0 -0
  46. {bec_widgets-0.93.4 → bec_widgets-0.94.0}/bec_widgets/assets/designer_icons/spinner.png +0 -0
  47. {bec_widgets-0.93.4 → bec_widgets-0.94.0}/bec_widgets/assets/designer_icons/status.png +0 -0
  48. {bec_widgets-0.93.4 → bec_widgets-0.94.0}/bec_widgets/assets/designer_icons/stop.png +0 -0
  49. {bec_widgets-0.93.4 → bec_widgets-0.94.0}/bec_widgets/assets/designer_icons/text.png +0 -0
  50. {bec_widgets-0.93.4 → bec_widgets-0.94.0}/bec_widgets/assets/designer_icons/toggle.png +0 -0
  51. {bec_widgets-0.93.4 → bec_widgets-0.94.0}/bec_widgets/assets/designer_icons/waveform.png +0 -0
  52. {bec_widgets-0.93.4 → bec_widgets-0.94.0}/bec_widgets/assets/designer_icons/web.png +0 -0
  53. {bec_widgets-0.93.4 → bec_widgets-0.94.0}/bec_widgets/assets/status_icons/error.svg +0 -0
  54. {bec_widgets-0.93.4 → bec_widgets-0.94.0}/bec_widgets/assets/status_icons/not_connected.svg +0 -0
  55. {bec_widgets-0.93.4 → bec_widgets-0.94.0}/bec_widgets/assets/status_icons/refresh.svg +0 -0
  56. {bec_widgets-0.93.4 → bec_widgets-0.94.0}/bec_widgets/assets/status_icons/running.svg +0 -0
  57. {bec_widgets-0.93.4 → bec_widgets-0.94.0}/bec_widgets/assets/status_icons/warning.svg +0 -0
  58. {bec_widgets-0.93.4 → bec_widgets-0.94.0}/bec_widgets/assets/toolbar_icons/add.svg +0 -0
  59. {bec_widgets-0.93.4 → bec_widgets-0.94.0}/bec_widgets/assets/toolbar_icons/attach_all.svg +0 -0
  60. {bec_widgets-0.93.4 → bec_widgets-0.94.0}/bec_widgets/assets/toolbar_icons/auto_range.svg +0 -0
  61. {bec_widgets-0.93.4 → bec_widgets-0.94.0}/bec_widgets/assets/toolbar_icons/compare.svg +0 -0
  62. {bec_widgets-0.93.4 → bec_widgets-0.94.0}/bec_widgets/assets/toolbar_icons/connection.svg +0 -0
  63. {bec_widgets-0.93.4 → bec_widgets-0.94.0}/bec_widgets/assets/toolbar_icons/drag_pan_mode.svg +0 -0
  64. {bec_widgets-0.93.4 → bec_widgets-0.94.0}/bec_widgets/assets/toolbar_icons/export.svg +0 -0
  65. {bec_widgets-0.93.4 → bec_widgets-0.94.0}/bec_widgets/assets/toolbar_icons/fft.svg +0 -0
  66. {bec_widgets-0.93.4 → bec_widgets-0.94.0}/bec_widgets/assets/toolbar_icons/fitting_parameters.svg +0 -0
  67. {bec_widgets-0.93.4 → bec_widgets-0.94.0}/bec_widgets/assets/toolbar_icons/history.svg +0 -0
  68. {bec_widgets-0.93.4 → bec_widgets-0.94.0}/bec_widgets/assets/toolbar_icons/image.svg +0 -0
  69. {bec_widgets-0.93.4 → bec_widgets-0.94.0}/bec_widgets/assets/toolbar_icons/image_autorange.svg +0 -0
  70. {bec_widgets-0.93.4 → bec_widgets-0.94.0}/bec_widgets/assets/toolbar_icons/import.svg +0 -0
  71. {bec_widgets-0.93.4 → bec_widgets-0.94.0}/bec_widgets/assets/toolbar_icons/line_axis.svg +0 -0
  72. {bec_widgets-0.93.4 → bec_widgets-0.94.0}/bec_widgets/assets/toolbar_icons/line_curve.svg +0 -0
  73. {bec_widgets-0.93.4 → bec_widgets-0.94.0}/bec_widgets/assets/toolbar_icons/lock_aspect_ratio.svg +0 -0
  74. {bec_widgets-0.93.4 → bec_widgets-0.94.0}/bec_widgets/assets/toolbar_icons/log_scale.png +0 -0
  75. {bec_widgets-0.93.4 → bec_widgets-0.94.0}/bec_widgets/assets/toolbar_icons/motor_map.svg +0 -0
  76. {bec_widgets-0.93.4 → bec_widgets-0.94.0}/bec_widgets/assets/toolbar_icons/photo_library.svg +0 -0
  77. /bec_widgets-0.93.4/bec_widgets/assets/toolbar_icons/device_box.svg → /bec_widgets-0.94.0/bec_widgets/assets/toolbar_icons/positioner_box.svg +0 -0
  78. {bec_widgets-0.93.4 → bec_widgets-0.94.0}/bec_widgets/assets/toolbar_icons/progress.svg +0 -0
  79. {bec_widgets-0.93.4 → bec_widgets-0.94.0}/bec_widgets/assets/toolbar_icons/queue.svg +0 -0
  80. {bec_widgets-0.93.4 → bec_widgets-0.94.0}/bec_widgets/assets/toolbar_icons/rectangle_mode.svg +0 -0
  81. {bec_widgets-0.93.4 → bec_widgets-0.94.0}/bec_widgets/assets/toolbar_icons/remove.svg +0 -0
  82. {bec_widgets-0.93.4 → bec_widgets-0.94.0}/bec_widgets/assets/toolbar_icons/reset_settings.svg +0 -0
  83. {bec_widgets-0.93.4 → bec_widgets-0.94.0}/bec_widgets/assets/toolbar_icons/restore_state.svg +0 -0
  84. {bec_widgets-0.93.4 → bec_widgets-0.94.0}/bec_widgets/assets/toolbar_icons/ring_progress.svg +0 -0
  85. {bec_widgets-0.93.4 → bec_widgets-0.94.0}/bec_widgets/assets/toolbar_icons/rotate_left.svg +0 -0
  86. {bec_widgets-0.93.4 → bec_widgets-0.94.0}/bec_widgets/assets/toolbar_icons/rotate_right.svg +0 -0
  87. {bec_widgets-0.93.4 → bec_widgets-0.94.0}/bec_widgets/assets/toolbar_icons/save.svg +0 -0
  88. {bec_widgets-0.93.4 → bec_widgets-0.94.0}/bec_widgets/assets/toolbar_icons/save_state.svg +0 -0
  89. {bec_widgets-0.93.4 → bec_widgets-0.94.0}/bec_widgets/assets/toolbar_icons/scan_control.svg +0 -0
  90. {bec_widgets-0.93.4 → bec_widgets-0.94.0}/bec_widgets/assets/toolbar_icons/settings.svg +0 -0
  91. {bec_widgets-0.93.4 → bec_widgets-0.94.0}/bec_widgets/assets/toolbar_icons/status.svg +0 -0
  92. {bec_widgets-0.93.4 → bec_widgets-0.94.0}/bec_widgets/assets/toolbar_icons/terminal.svg +0 -0
  93. {bec_widgets-0.93.4 → bec_widgets-0.94.0}/bec_widgets/assets/toolbar_icons/transform.svg +0 -0
  94. {bec_widgets-0.93.4 → bec_widgets-0.94.0}/bec_widgets/assets/toolbar_icons/waveform.svg +0 -0
  95. {bec_widgets-0.93.4 → bec_widgets-0.94.0}/bec_widgets/cli/__init__.py +0 -0
  96. {bec_widgets-0.93.4 → bec_widgets-0.94.0}/bec_widgets/cli/auto_updates.py +0 -0
  97. {bec_widgets-0.93.4 → bec_widgets-0.94.0}/bec_widgets/cli/client_utils.py +0 -0
  98. {bec_widgets-0.93.4 → bec_widgets-0.94.0}/bec_widgets/cli/generate_cli.py +0 -0
  99. {bec_widgets-0.93.4 → bec_widgets-0.94.0}/bec_widgets/cli/rpc_register.py +0 -0
  100. {bec_widgets-0.93.4 → bec_widgets-0.94.0}/bec_widgets/cli/rpc_wigdet_handler.py +0 -0
  101. {bec_widgets-0.93.4 → bec_widgets-0.94.0}/bec_widgets/cli/server.py +0 -0
  102. {bec_widgets-0.93.4 → bec_widgets-0.94.0}/bec_widgets/examples/__init__.py +0 -0
  103. {bec_widgets-0.93.4 → bec_widgets-0.94.0}/bec_widgets/examples/general_app/__init__.py +0 -0
  104. {bec_widgets-0.93.4 → bec_widgets-0.94.0}/bec_widgets/examples/general_app/general_app.py +0 -0
  105. {bec_widgets-0.93.4 → bec_widgets-0.94.0}/bec_widgets/examples/general_app/general_app.ui +0 -0
  106. {bec_widgets-0.93.4 → bec_widgets-0.94.0}/bec_widgets/examples/general_app/web_links.py +0 -0
  107. {bec_widgets-0.93.4 → bec_widgets-0.94.0}/bec_widgets/examples/jupyter_console/__init__.py +0 -0
  108. {bec_widgets-0.93.4 → bec_widgets-0.94.0}/bec_widgets/examples/jupyter_console/jupyter_console_window.py +0 -0
  109. {bec_widgets-0.93.4 → bec_widgets-0.94.0}/bec_widgets/examples/plugin_example_pyside/__init__.py +0 -0
  110. {bec_widgets-0.93.4 → bec_widgets-0.94.0}/bec_widgets/examples/plugin_example_pyside/main.py +0 -0
  111. {bec_widgets-0.93.4 → bec_widgets-0.94.0}/bec_widgets/examples/plugin_example_pyside/registertictactoe.py +0 -0
  112. {bec_widgets-0.93.4 → bec_widgets-0.94.0}/bec_widgets/examples/plugin_example_pyside/taskmenuextension.pyproject +0 -0
  113. {bec_widgets-0.93.4 → bec_widgets-0.94.0}/bec_widgets/examples/plugin_example_pyside/tictactoe.py +0 -0
  114. {bec_widgets-0.93.4 → bec_widgets-0.94.0}/bec_widgets/examples/plugin_example_pyside/tictactoeplugin.py +0 -0
  115. {bec_widgets-0.93.4 → bec_widgets-0.94.0}/bec_widgets/examples/plugin_example_pyside/tictactoetaskmenu.py +0 -0
  116. {bec_widgets-0.93.4 → bec_widgets-0.94.0}/bec_widgets/qt_utils/__init__.py +0 -0
  117. {bec_widgets-0.93.4 → bec_widgets-0.94.0}/bec_widgets/qt_utils/error_popups.py +0 -0
  118. {bec_widgets-0.93.4 → bec_widgets-0.94.0}/bec_widgets/qt_utils/settings_dialog.py +0 -0
  119. {bec_widgets-0.93.4 → bec_widgets-0.94.0}/bec_widgets/qt_utils/toolbar.py +0 -0
  120. {bec_widgets-0.93.4 → bec_widgets-0.94.0}/bec_widgets/utils/__init__.py +0 -0
  121. {bec_widgets-0.93.4 → bec_widgets-0.94.0}/bec_widgets/utils/bec_connector.py +0 -0
  122. {bec_widgets-0.93.4 → bec_widgets-0.94.0}/bec_widgets/utils/bec_designer.py +0 -0
  123. {bec_widgets-0.93.4 → bec_widgets-0.94.0}/bec_widgets/utils/bec_dispatcher.py +0 -0
  124. {bec_widgets-0.93.4 → bec_widgets-0.94.0}/bec_widgets/utils/bec_table.py +0 -0
  125. {bec_widgets-0.93.4 → bec_widgets-0.94.0}/bec_widgets/utils/bec_widget.py +0 -0
  126. {bec_widgets-0.93.4 → bec_widgets-0.94.0}/bec_widgets/utils/colors.py +0 -0
  127. {bec_widgets-0.93.4 → bec_widgets-0.94.0}/bec_widgets/utils/container_utils.py +0 -0
  128. {bec_widgets-0.93.4 → bec_widgets-0.94.0}/bec_widgets/utils/crosshair.py +0 -0
  129. {bec_widgets-0.93.4 → bec_widgets-0.94.0}/bec_widgets/utils/entry_validator.py +0 -0
  130. {bec_widgets-0.93.4 → bec_widgets-0.94.0}/bec_widgets/utils/generate_designer_plugin.py +0 -0
  131. {bec_widgets-0.93.4 → bec_widgets-0.94.0}/bec_widgets/utils/layout_manager.py +0 -0
  132. {bec_widgets-0.93.4 → bec_widgets-0.94.0}/bec_widgets/utils/plugin_templates/plugin.template +0 -0
  133. {bec_widgets-0.93.4 → bec_widgets-0.94.0}/bec_widgets/utils/plugin_templates/register.template +0 -0
  134. {bec_widgets-0.93.4 → bec_widgets-0.94.0}/bec_widgets/utils/plugin_utils.py +0 -0
  135. {bec_widgets-0.93.4 → bec_widgets-0.94.0}/bec_widgets/utils/reference_utils.py +0 -0
  136. {bec_widgets-0.93.4 → bec_widgets-0.94.0}/bec_widgets/utils/rpc_decorator.py +0 -0
  137. {bec_widgets-0.93.4 → bec_widgets-0.94.0}/bec_widgets/utils/thread_checker.py +0 -0
  138. {bec_widgets-0.93.4 → bec_widgets-0.94.0}/bec_widgets/utils/ui_loader.py +0 -0
  139. {bec_widgets-0.93.4 → bec_widgets-0.94.0}/bec_widgets/utils/validator_delegate.py +0 -0
  140. {bec_widgets-0.93.4 → bec_widgets-0.94.0}/bec_widgets/utils/widget_io.py +0 -0
  141. {bec_widgets-0.93.4 → bec_widgets-0.94.0}/bec_widgets/utils/yaml_dialog.py +0 -0
  142. {bec_widgets-0.93.4 → bec_widgets-0.94.0}/bec_widgets/widgets/__init__.py +0 -0
  143. {bec_widgets-0.93.4 → bec_widgets-0.94.0}/bec_widgets/widgets/base_classes/__init__.py +0 -0
  144. {bec_widgets-0.93.4 → bec_widgets-0.94.0}/bec_widgets/widgets/base_classes/device_input_base.py +0 -0
  145. {bec_widgets-0.93.4 → bec_widgets-0.94.0}/bec_widgets/widgets/bec_queue/__init__.py +0 -0
  146. {bec_widgets-0.93.4 → bec_widgets-0.94.0}/bec_widgets/widgets/bec_queue/bec_queue.py +0 -0
  147. {bec_widgets-0.93.4 → bec_widgets-0.94.0}/bec_widgets/widgets/bec_queue/bec_queue.pyproject +0 -0
  148. {bec_widgets-0.93.4 → bec_widgets-0.94.0}/bec_widgets/widgets/bec_queue/bec_queue_plugin.py +0 -0
  149. {bec_widgets-0.93.4 → bec_widgets-0.94.0}/bec_widgets/widgets/bec_queue/register_bec_queue.py +0 -0
  150. {bec_widgets-0.93.4 → bec_widgets-0.94.0}/bec_widgets/widgets/bec_status_box/__init__.py +0 -0
  151. {bec_widgets-0.93.4 → bec_widgets-0.94.0}/bec_widgets/widgets/bec_status_box/bec_status_box.py +0 -0
  152. {bec_widgets-0.93.4 → bec_widgets-0.94.0}/bec_widgets/widgets/bec_status_box/bec_status_box.pyproject +0 -0
  153. {bec_widgets-0.93.4 → bec_widgets-0.94.0}/bec_widgets/widgets/bec_status_box/bec_status_box_plugin.py +0 -0
  154. {bec_widgets-0.93.4 → bec_widgets-0.94.0}/bec_widgets/widgets/bec_status_box/register_bec_status_box.py +0 -0
  155. {bec_widgets-0.93.4 → bec_widgets-0.94.0}/bec_widgets/widgets/bec_status_box/status_item.py +0 -0
  156. {bec_widgets-0.93.4 → bec_widgets-0.94.0}/bec_widgets/widgets/color_button/__init__.py +0 -0
  157. {bec_widgets-0.93.4 → bec_widgets-0.94.0}/bec_widgets/widgets/color_button/color_button.py +0 -0
  158. {bec_widgets-0.93.4 → bec_widgets-0.94.0}/bec_widgets/widgets/color_button/color_button.pyproject +0 -0
  159. {bec_widgets-0.93.4 → bec_widgets-0.94.0}/bec_widgets/widgets/color_button/color_button_plugin.py +0 -0
  160. {bec_widgets-0.93.4 → bec_widgets-0.94.0}/bec_widgets/widgets/color_button/register_color_button.py +0 -0
  161. {bec_widgets-0.93.4 → bec_widgets-0.94.0}/bec_widgets/widgets/colormap_selector/__init__.py +0 -0
  162. {bec_widgets-0.93.4 → bec_widgets-0.94.0}/bec_widgets/widgets/colormap_selector/colormap_selector.py +0 -0
  163. {bec_widgets-0.93.4 → bec_widgets-0.94.0}/bec_widgets/widgets/colormap_selector/colormap_selector.pyproject +0 -0
  164. {bec_widgets-0.93.4 → bec_widgets-0.94.0}/bec_widgets/widgets/colormap_selector/colormap_selector_plugin.py +0 -0
  165. {bec_widgets-0.93.4 → bec_widgets-0.94.0}/bec_widgets/widgets/colormap_selector/register_colormap_selector.py +0 -0
  166. {bec_widgets-0.93.4 → bec_widgets-0.94.0}/bec_widgets/widgets/console/console.py +0 -0
  167. {bec_widgets-0.93.4 → bec_widgets-0.94.0}/bec_widgets/widgets/device_combobox/__init__.py +0 -0
  168. {bec_widgets-0.93.4 → bec_widgets-0.94.0}/bec_widgets/widgets/device_combobox/device_combo_box.pyproject +0 -0
  169. {bec_widgets-0.93.4 → bec_widgets-0.94.0}/bec_widgets/widgets/device_combobox/device_combo_box_plugin.py +0 -0
  170. {bec_widgets-0.93.4 → bec_widgets-0.94.0}/bec_widgets/widgets/device_combobox/device_combobox.py +0 -0
  171. {bec_widgets-0.93.4 → bec_widgets-0.94.0}/bec_widgets/widgets/device_combobox/register_device_combo_box.py +0 -0
  172. {bec_widgets-0.93.4 → bec_widgets-0.94.0}/bec_widgets/widgets/device_line_edit/__init__.py +0 -0
  173. {bec_widgets-0.93.4 → bec_widgets-0.94.0}/bec_widgets/widgets/device_line_edit/device_line_edit.py +0 -0
  174. {bec_widgets-0.93.4 → bec_widgets-0.94.0}/bec_widgets/widgets/device_line_edit/device_line_edit.pyproject +0 -0
  175. {bec_widgets-0.93.4 → bec_widgets-0.94.0}/bec_widgets/widgets/device_line_edit/device_line_edit_plugin.py +0 -0
  176. {bec_widgets-0.93.4 → bec_widgets-0.94.0}/bec_widgets/widgets/device_line_edit/register_device_line_edit.py +0 -0
  177. {bec_widgets-0.93.4 → bec_widgets-0.94.0}/bec_widgets/widgets/dock/__init__.py +0 -0
  178. {bec_widgets-0.93.4 → bec_widgets-0.94.0}/bec_widgets/widgets/dock/dock.py +0 -0
  179. {bec_widgets-0.93.4 → bec_widgets-0.94.0}/bec_widgets/widgets/dock/dock_area.py +0 -0
  180. {bec_widgets-0.93.4 → bec_widgets-0.94.0}/bec_widgets/widgets/dock/dock_area.pyproject +0 -0
  181. {bec_widgets-0.93.4 → bec_widgets-0.94.0}/bec_widgets/widgets/dock/dock_area_plugin.py +0 -0
  182. {bec_widgets-0.93.4 → bec_widgets-0.94.0}/bec_widgets/widgets/dock/register_dock_area.py +0 -0
  183. {bec_widgets-0.93.4 → bec_widgets-0.94.0}/bec_widgets/widgets/figure/__init__.py +0 -0
  184. {bec_widgets-0.93.4 → bec_widgets-0.94.0}/bec_widgets/widgets/figure/figure.py +0 -0
  185. {bec_widgets-0.93.4 → bec_widgets-0.94.0}/bec_widgets/widgets/figure/plots/__init__.py +0 -0
  186. {bec_widgets-0.93.4 → bec_widgets-0.94.0}/bec_widgets/widgets/figure/plots/axis_settings.py +0 -0
  187. {bec_widgets-0.93.4 → bec_widgets-0.94.0}/bec_widgets/widgets/figure/plots/axis_settings.ui +0 -0
  188. {bec_widgets-0.93.4 → bec_widgets-0.94.0}/bec_widgets/widgets/figure/plots/image/__init__.py +0 -0
  189. {bec_widgets-0.93.4 → bec_widgets-0.94.0}/bec_widgets/widgets/figure/plots/image/image.py +0 -0
  190. {bec_widgets-0.93.4 → bec_widgets-0.94.0}/bec_widgets/widgets/figure/plots/image/image_item.py +0 -0
  191. {bec_widgets-0.93.4 → bec_widgets-0.94.0}/bec_widgets/widgets/figure/plots/image/image_processor.py +0 -0
  192. {bec_widgets-0.93.4 → bec_widgets-0.94.0}/bec_widgets/widgets/figure/plots/motor_map/__init__.py +0 -0
  193. {bec_widgets-0.93.4 → bec_widgets-0.94.0}/bec_widgets/widgets/figure/plots/motor_map/motor_map.py +0 -0
  194. {bec_widgets-0.93.4 → bec_widgets-0.94.0}/bec_widgets/widgets/figure/plots/plot_base.py +0 -0
  195. {bec_widgets-0.93.4 → bec_widgets-0.94.0}/bec_widgets/widgets/figure/plots/waveform/__init__.py +0 -0
  196. {bec_widgets-0.93.4 → bec_widgets-0.94.0}/bec_widgets/widgets/figure/plots/waveform/waveform.py +0 -0
  197. {bec_widgets-0.93.4 → bec_widgets-0.94.0}/bec_widgets/widgets/figure/plots/waveform/waveform_curve.py +0 -0
  198. {bec_widgets-0.93.4 → bec_widgets-0.94.0}/bec_widgets/widgets/image/__init__.py +0 -0
  199. {bec_widgets-0.93.4 → bec_widgets-0.94.0}/bec_widgets/widgets/image/bec_image_widget.pyproject +0 -0
  200. {bec_widgets-0.93.4 → bec_widgets-0.94.0}/bec_widgets/widgets/image/bec_image_widget_plugin.py +0 -0
  201. {bec_widgets-0.93.4 → bec_widgets-0.94.0}/bec_widgets/widgets/image/image_widget.py +0 -0
  202. {bec_widgets-0.93.4 → bec_widgets-0.94.0}/bec_widgets/widgets/image/register_bec_image_widget.py +0 -0
  203. {bec_widgets-0.93.4 → bec_widgets-0.94.0}/bec_widgets/widgets/jupyter_console/__init__.py +0 -0
  204. {bec_widgets-0.93.4 → bec_widgets-0.94.0}/bec_widgets/widgets/jupyter_console/jupyter_console.py +0 -0
  205. {bec_widgets-0.93.4 → bec_widgets-0.94.0}/bec_widgets/widgets/motor_map/__init__.py +0 -0
  206. {bec_widgets-0.93.4 → bec_widgets-0.94.0}/bec_widgets/widgets/motor_map/bec_motor_map_widget.pyproject +0 -0
  207. {bec_widgets-0.93.4 → bec_widgets-0.94.0}/bec_widgets/widgets/motor_map/bec_motor_map_widget_plugin.py +0 -0
  208. {bec_widgets-0.93.4 → bec_widgets-0.94.0}/bec_widgets/widgets/motor_map/motor_map_dialog/__init__.py +0 -0
  209. {bec_widgets-0.93.4 → bec_widgets-0.94.0}/bec_widgets/widgets/motor_map/motor_map_dialog/motor_map_settings.py +0 -0
  210. {bec_widgets-0.93.4 → bec_widgets-0.94.0}/bec_widgets/widgets/motor_map/motor_map_dialog/motor_map_settings.ui +0 -0
  211. {bec_widgets-0.93.4 → bec_widgets-0.94.0}/bec_widgets/widgets/motor_map/motor_map_widget.py +0 -0
  212. {bec_widgets-0.93.4 → bec_widgets-0.94.0}/bec_widgets/widgets/motor_map/register_bec_motor_map_widget.py +0 -0
  213. {bec_widgets-0.93.4 → bec_widgets-0.94.0}/bec_widgets/widgets/position_indicator/__init__.py +0 -0
  214. {bec_widgets-0.93.4 → bec_widgets-0.94.0}/bec_widgets/widgets/position_indicator/position_indicator.py +0 -0
  215. {bec_widgets-0.93.4 → bec_widgets-0.94.0}/bec_widgets/widgets/position_indicator/position_indicator.pyproject +0 -0
  216. {bec_widgets-0.93.4 → bec_widgets-0.94.0}/bec_widgets/widgets/position_indicator/position_indicator_plugin.py +0 -0
  217. {bec_widgets-0.93.4 → bec_widgets-0.94.0}/bec_widgets/widgets/position_indicator/register_position_indicator.py +0 -0
  218. {bec_widgets-0.93.4 → bec_widgets-0.94.0}/bec_widgets/widgets/positioner_box/__init__.py +0 -0
  219. {bec_widgets-0.93.4 → bec_widgets-0.94.0}/bec_widgets/widgets/positioner_box/positioner_box.pyproject +0 -0
  220. {bec_widgets-0.93.4 → bec_widgets-0.94.0}/bec_widgets/widgets/positioner_box/register_positioner_box.py +0 -0
  221. {bec_widgets-0.93.4 → bec_widgets-0.94.0}/bec_widgets/widgets/ring_progress_bar/__init__.py +0 -0
  222. {bec_widgets-0.93.4 → bec_widgets-0.94.0}/bec_widgets/widgets/ring_progress_bar/register_ring_progress_bar.py +0 -0
  223. {bec_widgets-0.93.4 → bec_widgets-0.94.0}/bec_widgets/widgets/ring_progress_bar/ring.py +0 -0
  224. {bec_widgets-0.93.4 → bec_widgets-0.94.0}/bec_widgets/widgets/ring_progress_bar/ring_progress_bar.py +0 -0
  225. {bec_widgets-0.93.4 → bec_widgets-0.94.0}/bec_widgets/widgets/ring_progress_bar/ring_progress_bar.pyproject +0 -0
  226. {bec_widgets-0.93.4 → bec_widgets-0.94.0}/bec_widgets/widgets/ring_progress_bar/ring_progress_bar_plugin.py +0 -0
  227. {bec_widgets-0.93.4 → bec_widgets-0.94.0}/bec_widgets/widgets/scan_control/__init__.py +0 -0
  228. {bec_widgets-0.93.4 → bec_widgets-0.94.0}/bec_widgets/widgets/scan_control/register_scan_control.py +0 -0
  229. {bec_widgets-0.93.4 → bec_widgets-0.94.0}/bec_widgets/widgets/scan_control/scan_control.py +0 -0
  230. {bec_widgets-0.93.4 → bec_widgets-0.94.0}/bec_widgets/widgets/scan_control/scan_control.pyproject +0 -0
  231. {bec_widgets-0.93.4 → bec_widgets-0.94.0}/bec_widgets/widgets/scan_control/scan_control_plugin.py +0 -0
  232. {bec_widgets-0.93.4 → bec_widgets-0.94.0}/bec_widgets/widgets/scan_control/scan_group_box.py +0 -0
  233. {bec_widgets-0.93.4 → bec_widgets-0.94.0}/bec_widgets/widgets/spinner/__init__.py +0 -0
  234. {bec_widgets-0.93.4 → bec_widgets-0.94.0}/bec_widgets/widgets/spinner/register_spinner_widget.py +0 -0
  235. {bec_widgets-0.93.4 → bec_widgets-0.94.0}/bec_widgets/widgets/spinner/spinner.py +0 -0
  236. {bec_widgets-0.93.4 → bec_widgets-0.94.0}/bec_widgets/widgets/spinner/spinner_widget.pyproject +0 -0
  237. {bec_widgets-0.93.4 → bec_widgets-0.94.0}/bec_widgets/widgets/spinner/spinner_widget_plugin.py +0 -0
  238. {bec_widgets-0.93.4 → bec_widgets-0.94.0}/bec_widgets/widgets/stop_button/__init__.py +0 -0
  239. {bec_widgets-0.93.4 → bec_widgets-0.94.0}/bec_widgets/widgets/stop_button/register_stop_button.py +0 -0
  240. {bec_widgets-0.93.4 → bec_widgets-0.94.0}/bec_widgets/widgets/stop_button/stop_button.py +0 -0
  241. {bec_widgets-0.93.4 → bec_widgets-0.94.0}/bec_widgets/widgets/stop_button/stop_button.pyproject +0 -0
  242. {bec_widgets-0.93.4 → bec_widgets-0.94.0}/bec_widgets/widgets/stop_button/stop_button_plugin.py +0 -0
  243. {bec_widgets-0.93.4 → bec_widgets-0.94.0}/bec_widgets/widgets/text_box/__init__.py +0 -0
  244. {bec_widgets-0.93.4 → bec_widgets-0.94.0}/bec_widgets/widgets/text_box/register_text_box.py +0 -0
  245. {bec_widgets-0.93.4 → bec_widgets-0.94.0}/bec_widgets/widgets/text_box/text_box.py +0 -0
  246. {bec_widgets-0.93.4 → bec_widgets-0.94.0}/bec_widgets/widgets/text_box/text_box.pyproject +0 -0
  247. {bec_widgets-0.93.4 → bec_widgets-0.94.0}/bec_widgets/widgets/text_box/text_box_plugin.py +0 -0
  248. {bec_widgets-0.93.4 → bec_widgets-0.94.0}/bec_widgets/widgets/toggle/__init__.py +0 -0
  249. {bec_widgets-0.93.4 → bec_widgets-0.94.0}/bec_widgets/widgets/toggle/register_toggle_switch.py +0 -0
  250. {bec_widgets-0.93.4 → bec_widgets-0.94.0}/bec_widgets/widgets/toggle/toggle.py +0 -0
  251. {bec_widgets-0.93.4 → bec_widgets-0.94.0}/bec_widgets/widgets/toggle/toggle_switch.pyproject +0 -0
  252. {bec_widgets-0.93.4 → bec_widgets-0.94.0}/bec_widgets/widgets/toggle/toggle_switch_plugin.py +0 -0
  253. {bec_widgets-0.93.4 → bec_widgets-0.94.0}/bec_widgets/widgets/vscode/__init__.py +0 -0
  254. {bec_widgets-0.93.4 → bec_widgets-0.94.0}/bec_widgets/widgets/vscode/register_vs_code_editor.py +0 -0
  255. {bec_widgets-0.93.4 → bec_widgets-0.94.0}/bec_widgets/widgets/vscode/vs_code_editor.pyproject +0 -0
  256. {bec_widgets-0.93.4 → bec_widgets-0.94.0}/bec_widgets/widgets/vscode/vs_code_editor_plugin.py +0 -0
  257. {bec_widgets-0.93.4 → bec_widgets-0.94.0}/bec_widgets/widgets/vscode/vscode.py +0 -0
  258. {bec_widgets-0.93.4 → bec_widgets-0.94.0}/bec_widgets/widgets/waveform/__init__.py +0 -0
  259. {bec_widgets-0.93.4 → bec_widgets-0.94.0}/bec_widgets/widgets/waveform/bec_waveform_widget.pyproject +0 -0
  260. {bec_widgets-0.93.4 → bec_widgets-0.94.0}/bec_widgets/widgets/waveform/bec_waveform_widget_plugin.py +0 -0
  261. {bec_widgets-0.93.4 → bec_widgets-0.94.0}/bec_widgets/widgets/waveform/register_bec_waveform_widget.py +0 -0
  262. {bec_widgets-0.93.4 → bec_widgets-0.94.0}/bec_widgets/widgets/waveform/waveform_popups/__init__.py +0 -0
  263. {bec_widgets-0.93.4 → bec_widgets-0.94.0}/bec_widgets/widgets/waveform/waveform_popups/curve_dialog/__init__.py +0 -0
  264. {bec_widgets-0.93.4 → bec_widgets-0.94.0}/bec_widgets/widgets/waveform/waveform_popups/curve_dialog/curve_dialog.py +0 -0
  265. {bec_widgets-0.93.4 → bec_widgets-0.94.0}/bec_widgets/widgets/waveform/waveform_popups/curve_dialog/curve_dialog.ui +0 -0
  266. {bec_widgets-0.93.4 → bec_widgets-0.94.0}/bec_widgets/widgets/waveform/waveform_popups/dap_summary_dialog/__init__.py +0 -0
  267. {bec_widgets-0.93.4 → bec_widgets-0.94.0}/bec_widgets/widgets/waveform/waveform_popups/dap_summary_dialog/dap_summary.ui +0 -0
  268. {bec_widgets-0.93.4 → bec_widgets-0.94.0}/bec_widgets/widgets/waveform/waveform_popups/dap_summary_dialog/dap_summary_dialog.py +0 -0
  269. {bec_widgets-0.93.4 → bec_widgets-0.94.0}/bec_widgets/widgets/waveform/waveform_widget.py +0 -0
  270. {bec_widgets-0.93.4 → bec_widgets-0.94.0}/bec_widgets/widgets/website/__init__.py +0 -0
  271. {bec_widgets-0.93.4 → bec_widgets-0.94.0}/bec_widgets/widgets/website/register_website_widget.py +0 -0
  272. {bec_widgets-0.93.4 → bec_widgets-0.94.0}/bec_widgets/widgets/website/website.py +0 -0
  273. {bec_widgets-0.93.4 → bec_widgets-0.94.0}/bec_widgets/widgets/website/website_widget.pyproject +0 -0
  274. {bec_widgets-0.93.4 → bec_widgets-0.94.0}/bec_widgets/widgets/website/website_widget_plugin.py +0 -0
  275. {bec_widgets-0.93.4 → bec_widgets-0.94.0}/docs/Makefile +0 -0
  276. {bec_widgets-0.93.4 → bec_widgets-0.94.0}/docs/_static/custom.css +0 -0
  277. {bec_widgets-0.93.4 → bec_widgets-0.94.0}/docs/_templates/custom-class-template.rst +0 -0
  278. {bec_widgets-0.93.4 → bec_widgets-0.94.0}/docs/_templates/custom-module-template.rst +0 -0
  279. {bec_widgets-0.93.4 → bec_widgets-0.94.0}/docs/api_reference/api_reference.md +0 -0
  280. {bec_widgets-0.93.4 → bec_widgets-0.94.0}/docs/assets/apps_48dp.svg +0 -0
  281. {bec_widgets-0.93.4 → bec_widgets-0.94.0}/docs/assets/display_settings_48dp.svg +0 -0
  282. {bec_widgets-0.93.4 → bec_widgets-0.94.0}/docs/assets/index_api.svg +0 -0
  283. {bec_widgets-0.93.4 → bec_widgets-0.94.0}/docs/assets/index_contribute.svg +0 -0
  284. {bec_widgets-0.93.4 → bec_widgets-0.94.0}/docs/assets/index_getting_started.svg +0 -0
  285. {bec_widgets-0.93.4 → bec_widgets-0.94.0}/docs/assets/index_user_guide.svg +0 -0
  286. {bec_widgets-0.93.4 → bec_widgets-0.94.0}/docs/assets/rocket_launch_48dp.svg +0 -0
  287. {bec_widgets-0.93.4 → bec_widgets-0.94.0}/docs/conf.py +0 -0
  288. {bec_widgets-0.93.4 → bec_widgets-0.94.0}/docs/developer/developer.md +0 -0
  289. {bec_widgets-0.93.4 → bec_widgets-0.94.0}/docs/developer/getting_started/development.md +0 -0
  290. {bec_widgets-0.93.4 → bec_widgets-0.94.0}/docs/developer/getting_started/getting_started.md +0 -0
  291. {bec_widgets-0.93.4 → bec_widgets-0.94.0}/docs/developer/widgets/widgets.md +0 -0
  292. {bec_widgets-0.93.4 → bec_widgets-0.94.0}/docs/index.md +0 -0
  293. {bec_widgets-0.93.4 → bec_widgets-0.94.0}/docs/introduction/introduction.md +0 -0
  294. {bec_widgets-0.93.4 → bec_widgets-0.94.0}/docs/make.bat +0 -0
  295. {bec_widgets-0.93.4 → bec_widgets-0.94.0}/docs/requirements.txt +0 -0
  296. {bec_widgets-0.93.4 → bec_widgets-0.94.0}/docs/user/api_reference/api_reference.md +0 -0
  297. {bec_widgets-0.93.4 → bec_widgets-0.94.0}/docs/user/applications/applications.md +0 -0
  298. {bec_widgets-0.93.4 → bec_widgets-0.94.0}/docs/user/customisation.md +0 -0
  299. {bec_widgets-0.93.4 → bec_widgets-0.94.0}/docs/user/getting_started/BECDockArea.png +0 -0
  300. {bec_widgets-0.93.4 → bec_widgets-0.94.0}/docs/user/getting_started/auto_updates.md +0 -0
  301. {bec_widgets-0.93.4 → bec_widgets-0.94.0}/docs/user/getting_started/getting_started.md +0 -0
  302. {bec_widgets-0.93.4 → bec_widgets-0.94.0}/docs/user/getting_started/gui_complex_gui.gif +0 -0
  303. {bec_widgets-0.93.4 → bec_widgets-0.94.0}/docs/user/getting_started/installation.md +0 -0
  304. {bec_widgets-0.93.4 → bec_widgets-0.94.0}/docs/user/getting_started/quick_start.md +0 -0
  305. {bec_widgets-0.93.4 → bec_widgets-0.94.0}/docs/user/getting_started/video_tutorials.md +0 -0
  306. {bec_widgets-0.93.4 → bec_widgets-0.94.0}/docs/user/user.md +0 -0
  307. {bec_widgets-0.93.4 → bec_widgets-0.94.0}/docs/user/widgets/BECFigure.png +0 -0
  308. {bec_widgets-0.93.4 → bec_widgets-0.94.0}/docs/user/widgets/bec_figure.md +0 -0
  309. {bec_widgets-0.93.4 → bec_widgets-0.94.0}/docs/user/widgets/bec_figure_dap.gif +0 -0
  310. {bec_widgets-0.93.4 → bec_widgets-0.94.0}/docs/user/widgets/bec_status_box.gif +0 -0
  311. {bec_widgets-0.93.4 → bec_widgets-0.94.0}/docs/user/widgets/bec_status_box.md +0 -0
  312. {bec_widgets-0.93.4 → bec_widgets-0.94.0}/docs/user/widgets/buttons.md +0 -0
  313. {bec_widgets-0.93.4 → bec_widgets-0.94.0}/docs/user/widgets/image_plot.gif +0 -0
  314. {bec_widgets-0.93.4 → bec_widgets-0.94.0}/docs/user/widgets/motor.gif +0 -0
  315. {bec_widgets-0.93.4 → bec_widgets-0.94.0}/docs/user/widgets/progress_bar.gif +0 -0
  316. {bec_widgets-0.93.4 → bec_widgets-0.94.0}/docs/user/widgets/ring_progress_bar.md +0 -0
  317. {bec_widgets-0.93.4 → bec_widgets-0.94.0}/docs/user/widgets/scan_control.gif +0 -0
  318. {bec_widgets-0.93.4 → bec_widgets-0.94.0}/docs/user/widgets/scan_control.md +0 -0
  319. {bec_widgets-0.93.4 → bec_widgets-0.94.0}/docs/user/widgets/scatter_2D.gif +0 -0
  320. {bec_widgets-0.93.4 → bec_widgets-0.94.0}/docs/user/widgets/text_box.md +0 -0
  321. {bec_widgets-0.93.4 → bec_widgets-0.94.0}/docs/user/widgets/w1D.gif +0 -0
  322. {bec_widgets-0.93.4 → bec_widgets-0.94.0}/docs/user/widgets/website.md +0 -0
  323. {bec_widgets-0.93.4 → bec_widgets-0.94.0}/docs/user/widgets/widgets.md +0 -0
  324. {bec_widgets-0.93.4 → bec_widgets-0.94.0}/tests/__init__.py +0 -0
  325. {bec_widgets-0.93.4 → bec_widgets-0.94.0}/tests/end-2-end/__init__.py +0 -0
  326. {bec_widgets-0.93.4 → bec_widgets-0.94.0}/tests/end-2-end/conftest.py +0 -0
  327. {bec_widgets-0.93.4 → bec_widgets-0.94.0}/tests/end-2-end/test_rpc_register_e2e.py +0 -0
  328. {bec_widgets-0.93.4 → bec_widgets-0.94.0}/tests/end-2-end/test_scan_control_e2e.py +0 -0
  329. {bec_widgets-0.93.4 → bec_widgets-0.94.0}/tests/references/SpinnerWidget/SpinnerWidget_darwin.png +0 -0
  330. {bec_widgets-0.93.4 → bec_widgets-0.94.0}/tests/references/SpinnerWidget/SpinnerWidget_linux.png +0 -0
  331. {bec_widgets-0.93.4 → bec_widgets-0.94.0}/tests/references/SpinnerWidget/SpinnerWidget_started_darwin.png +0 -0
  332. {bec_widgets-0.93.4 → bec_widgets-0.94.0}/tests/references/SpinnerWidget/SpinnerWidget_started_linux.png +0 -0
  333. {bec_widgets-0.93.4 → bec_widgets-0.94.0}/tests/unit_tests/__init__.py +0 -0
  334. {bec_widgets-0.93.4 → bec_widgets-0.94.0}/tests/unit_tests/client_mocks.py +0 -0
  335. {bec_widgets-0.93.4 → bec_widgets-0.94.0}/tests/unit_tests/conftest.py +0 -0
  336. {bec_widgets-0.93.4 → bec_widgets-0.94.0}/tests/unit_tests/test_bec_connector.py +0 -0
  337. {bec_widgets-0.93.4 → bec_widgets-0.94.0}/tests/unit_tests/test_bec_dispatcher.py +0 -0
  338. {bec_widgets-0.93.4 → bec_widgets-0.94.0}/tests/unit_tests/test_bec_dock.py +0 -0
  339. {bec_widgets-0.93.4 → bec_widgets-0.94.0}/tests/unit_tests/test_bec_figure.py +0 -0
  340. {bec_widgets-0.93.4 → bec_widgets-0.94.0}/tests/unit_tests/test_bec_image.py +0 -0
  341. {bec_widgets-0.93.4 → bec_widgets-0.94.0}/tests/unit_tests/test_bec_image_widget.py +0 -0
  342. {bec_widgets-0.93.4 → bec_widgets-0.94.0}/tests/unit_tests/test_bec_motor_map.py +0 -0
  343. {bec_widgets-0.93.4 → bec_widgets-0.94.0}/tests/unit_tests/test_bec_queue.py +0 -0
  344. {bec_widgets-0.93.4 → bec_widgets-0.94.0}/tests/unit_tests/test_bec_status_box.py +0 -0
  345. {bec_widgets-0.93.4 → bec_widgets-0.94.0}/tests/unit_tests/test_client_utils.py +0 -0
  346. {bec_widgets-0.93.4 → bec_widgets-0.94.0}/tests/unit_tests/test_color_map_selector.py +0 -0
  347. {bec_widgets-0.93.4 → bec_widgets-0.94.0}/tests/unit_tests/test_color_validation.py +0 -0
  348. {bec_widgets-0.93.4 → bec_widgets-0.94.0}/tests/unit_tests/test_configs/config_device.yaml +0 -0
  349. {bec_widgets-0.93.4 → bec_widgets-0.94.0}/tests/unit_tests/test_configs/config_device_no_entry.yaml +0 -0
  350. {bec_widgets-0.93.4 → bec_widgets-0.94.0}/tests/unit_tests/test_configs/config_scan.yaml +0 -0
  351. {bec_widgets-0.93.4 → bec_widgets-0.94.0}/tests/unit_tests/test_crosshair.py +0 -0
  352. {bec_widgets-0.93.4 → bec_widgets-0.94.0}/tests/unit_tests/test_device_input_base.py +0 -0
  353. {bec_widgets-0.93.4 → bec_widgets-0.94.0}/tests/unit_tests/test_device_input_widgets.py +0 -0
  354. {bec_widgets-0.93.4 → bec_widgets-0.94.0}/tests/unit_tests/test_error_utils.py +0 -0
  355. {bec_widgets-0.93.4 → bec_widgets-0.94.0}/tests/unit_tests/test_generate_cli_client.py +0 -0
  356. {bec_widgets-0.93.4 → bec_widgets-0.94.0}/tests/unit_tests/test_generate_plugin.py +0 -0
  357. {bec_widgets-0.93.4 → bec_widgets-0.94.0}/tests/unit_tests/test_motor_map_widget.py +0 -0
  358. {bec_widgets-0.93.4 → bec_widgets-0.94.0}/tests/unit_tests/test_msgs/__init__.py +0 -0
  359. {bec_widgets-0.93.4 → bec_widgets-0.94.0}/tests/unit_tests/test_msgs/available_scans_message.py +0 -0
  360. {bec_widgets-0.93.4 → bec_widgets-0.94.0}/tests/unit_tests/test_plot_base.py +0 -0
  361. {bec_widgets-0.93.4 → bec_widgets-0.94.0}/tests/unit_tests/test_plugin_utils.py +0 -0
  362. {bec_widgets-0.93.4 → bec_widgets-0.94.0}/tests/unit_tests/test_ring_progress_bar.py +0 -0
  363. {bec_widgets-0.93.4 → bec_widgets-0.94.0}/tests/unit_tests/test_rpc_register.py +0 -0
  364. {bec_widgets-0.93.4 → bec_widgets-0.94.0}/tests/unit_tests/test_rpc_server.py +0 -0
  365. {bec_widgets-0.93.4 → bec_widgets-0.94.0}/tests/unit_tests/test_rpc_widget_handler.py +0 -0
  366. {bec_widgets-0.93.4 → bec_widgets-0.94.0}/tests/unit_tests/test_scan_control.py +0 -0
  367. {bec_widgets-0.93.4 → bec_widgets-0.94.0}/tests/unit_tests/test_scan_control_group_box.py +0 -0
  368. {bec_widgets-0.93.4 → bec_widgets-0.94.0}/tests/unit_tests/test_setting_dialog.py +0 -0
  369. {bec_widgets-0.93.4 → bec_widgets-0.94.0}/tests/unit_tests/test_spinner.py +0 -0
  370. {bec_widgets-0.93.4 → bec_widgets-0.94.0}/tests/unit_tests/test_stop_button.py +0 -0
  371. {bec_widgets-0.93.4 → bec_widgets-0.94.0}/tests/unit_tests/test_text_box_widget.py +0 -0
  372. {bec_widgets-0.93.4 → bec_widgets-0.94.0}/tests/unit_tests/test_toggle.py +0 -0
  373. {bec_widgets-0.93.4 → bec_widgets-0.94.0}/tests/unit_tests/test_vscode_widget.py +0 -0
  374. {bec_widgets-0.93.4 → bec_widgets-0.94.0}/tests/unit_tests/test_waveform1d.py +0 -0
  375. {bec_widgets-0.93.4 → bec_widgets-0.94.0}/tests/unit_tests/test_waveform_widget.py +0 -0
  376. {bec_widgets-0.93.4 → bec_widgets-0.94.0}/tests/unit_tests/test_website_widget.py +0 -0
  377. {bec_widgets-0.93.4 → bec_widgets-0.94.0}/tests/unit_tests/test_widget_io.py +0 -0
  378. {bec_widgets-0.93.4 → bec_widgets-0.94.0}/tests/unit_tests/test_yaml_dialog.py +0 -0
@@ -1,5 +1,31 @@
1
1
  # CHANGELOG
2
2
 
3
+ ## v0.94.0 (2024-08-08)
4
+
5
+ ### Feature
6
+
7
+ * feat: add PositionerControlLine ([`c80a7cd`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/c80a7cd1083baa9543a2cee2e3c3a51dfd209b19))
8
+
9
+ ### Refactor
10
+
11
+ * refactor: adjust dimensions ([`0273bf4`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/0273bf485694609325b5b556a3c69fb53c18446e))
12
+
13
+ ## v0.93.5 (2024-08-08)
14
+
15
+ ### Fix
16
+
17
+ * fix(positioner_box): icons fixed ([`281633d`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/281633deff15b6879dac3a4f0770fa6949aaecdc))
18
+
19
+ ### Refactor
20
+
21
+ * refactor: add button for positioner selection ([`0d190c5`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/0d190c5c5996e59fec4bdd44d2003e10e200b009))
22
+
23
+ ### Test
24
+
25
+ * test(dap): wait for fit ([`6269009`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/6269009e5451f830cdee58a514c7858483488a8d))
26
+
27
+ * test(auto-update): wait for rendering ([`6d2442d`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/6d2442d23c683fe92af13df982ce681c07e99cde))
28
+
3
29
  ## v0.93.4 (2024-08-07)
4
30
 
5
31
  ### Fix
@@ -118,30 +144,6 @@ This reverts commit fd6ae91993a23a7b8dbb2cf3c4b7c3eda6d2b0f6 ([`5aad401`](https:
118
144
 
119
145
  ## v0.92.0 (2024-07-24)
120
146
 
121
- ### Feature
122
-
123
- * feat(dock): dock style sheets updated ([`8ca60d5`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/8ca60d54b3cfa621172ce097fc1ba514c47ebac7))
124
-
125
- * feat(general_gui): general gui added ([`5696c99`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/5696c993dc1c0da40ff3e99f754c246cc017ea32))
126
-
127
147
  ### Fix
128
148
 
129
149
  * fix(dock): custom label can be created closable ([`4457ef2`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/4457ef2147e21b856c9dcaf63c81ba98002dcaf1))
130
-
131
- * fix(device_combobox): set minimum size to 125px ([`1206e15`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/1206e153094cd8505badf69a1461572a76b4c5ad))
132
-
133
- ## v0.91.0 (2024-07-23)
134
-
135
- ### Feature
136
-
137
- * feat(dock_area): plugin added ([`a16b87a`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/a16b87ac28d164230dd2e8020f50ff3a63cd407e))
138
-
139
- ### Fix
140
-
141
- * fix(status_item): icons changed to material design ([`1b9c55a`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/1b9c55a46a0dfd8678c8e95ff64dd6e8cfb9233e))
142
-
143
- * fix(plugins): Qt Designer plugins icons adjusted ([`f4844d2`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/f4844d2e067ce75dc64b89b230d7932b308ddfc2))
144
-
145
- ### Test
146
-
147
- * test(dock_area): tests extended ([`06fab0e`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/06fab0eab926cef5677d4988fd1fce09da342dd8))
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: bec_widgets
3
- Version: 0.93.4
3
+ Version: 0.94.0
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
@@ -0,0 +1,3 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" height="48px" viewBox="0 -960 960 960" width="48px" fill="#FFFFFF">
2
+ <path d="M180-404.87v-50.26h289.75v50.26H180Zm0-162.57v-50.25h454.62v50.25H180Zm0-162.3V-780h454.62v50.26H180ZM524.62-180v-105.69l217.15-216.16q7.46-7.07 16.11-10.3 8.65-3.23 17.3-3.23 9.43 0 18.25 3.53 8.82 3.54 16.03 10.62l37 37.38q6.87 7.47 10.21 16.16Q860-439 860-430.31t-3.37 17.69q-3.37 9-10.52 16.46L630.31-180H524.62Zm250.69-211.69 37-38.62-37-37.38-38 38 38 38Z"/>
3
+ </svg>
@@ -24,6 +24,7 @@ class Widgets(str, enum.Enum):
24
24
  DeviceComboBox = "DeviceComboBox"
25
25
  DeviceLineEdit = "DeviceLineEdit"
26
26
  PositionerBox = "PositionerBox"
27
+ PositionerControlLine = "PositionerControlLine"
27
28
  RingProgressBar = "RingProgressBar"
28
29
  ScanControl = "ScanControl"
29
30
  StopButton = "StopButton"
@@ -2352,6 +2353,17 @@ class PositionerBox(RPCBase):
2352
2353
  """
2353
2354
 
2354
2355
 
2356
+ class PositionerControlLine(RPCBase):
2357
+ @rpc_call
2358
+ def set_positioner(self, positioner: str):
2359
+ """
2360
+ Set the device
2361
+
2362
+ Args:
2363
+ positioner (Positioner | str) : Positioner to set, accepts str or the device
2364
+ """
2365
+
2366
+
2355
2367
  class Ring(RPCBase):
2356
2368
  @rpc_call
2357
2369
  def _get_all_rpc(self) -> "dict":
@@ -7,20 +7,26 @@ from bec_lib.device import Positioner
7
7
  from bec_lib.endpoints import MessageEndpoints
8
8
  from bec_lib.logger import bec_logger
9
9
  from bec_lib.messages import ScanQueueMessage
10
- from qtpy.QtCore import Property, Signal, Slot
11
- from qtpy.QtGui import QDoubleValidator
12
- from qtpy.QtWidgets import QDoubleSpinBox, QVBoxLayout, QWidget
10
+ from qtpy.QtCore import Property, QSize, Signal, Slot
11
+ from qtpy.QtGui import QDoubleValidator, QIcon
12
+ from qtpy.QtWidgets import QDialog, QDoubleSpinBox, QPushButton, QVBoxLayout, QWidget
13
13
 
14
14
  from bec_widgets.utils import UILoader
15
15
  from bec_widgets.utils.bec_widget import BECWidget
16
16
  from bec_widgets.utils.colors import apply_theme
17
+ from bec_widgets.widgets.device_line_edit.device_line_edit import DeviceLineEdit
17
18
 
18
19
  logger = bec_logger.logger
19
20
 
21
+ MODULE_PATH = os.path.dirname(os.path.dirname(os.path.dirname(__file__)))
22
+
20
23
 
21
24
  class PositionerBox(BECWidget, QWidget):
22
25
  """Simple Widget to control a positioner in box form"""
23
26
 
27
+ ui_file = "positioner_box.ui"
28
+ dimensions = (234, 224)
29
+
24
30
  USER_ACCESS = ["set_positioner"]
25
31
  device_changed = Signal(str, str)
26
32
 
@@ -48,7 +54,7 @@ class PositionerBox(BECWidget, QWidget):
48
54
  self.device_changed.connect(self.on_device_change)
49
55
 
50
56
  current_path = os.path.dirname(__file__)
51
- self.ui = UILoader(self).loader(os.path.join(current_path, "positioner_box.ui"))
57
+ self.ui = UILoader(self).loader(os.path.join(current_path, self.ui_file))
52
58
 
53
59
  self.layout = QVBoxLayout(self)
54
60
  self.layout.addWidget(self.ui)
@@ -57,8 +63,8 @@ class PositionerBox(BECWidget, QWidget):
57
63
 
58
64
  # fix the size of the device box
59
65
  db = self.ui.device_box
60
- db.setFixedHeight(234)
61
- db.setFixedWidth(224)
66
+ db.setFixedHeight(self.dimensions[0])
67
+ db.setFixedWidth(self.dimensions[1])
62
68
 
63
69
  self.ui.step_size.setStepType(QDoubleSpinBox.AdaptiveDecimalStepType)
64
70
  self.ui.stop.clicked.connect(self.on_stop)
@@ -71,6 +77,36 @@ class PositionerBox(BECWidget, QWidget):
71
77
  self.setpoint_validator = QDoubleValidator()
72
78
  self.ui.setpoint.setValidator(self.setpoint_validator)
73
79
  self.ui.spinner_widget.start()
80
+ self.ui.tool_button.clicked.connect(self._open_dialog_selection)
81
+ icon = QIcon()
82
+ icon.addFile(
83
+ os.path.join(MODULE_PATH, "assets", "toolbar_icons", "device_line_edit.svg"),
84
+ size=QSize(16, 16),
85
+ )
86
+ self.ui.tool_button.setIcon(icon)
87
+
88
+ def _open_dialog_selection(self):
89
+ """Open dialog window for positioner selection"""
90
+ dialog = QDialog(self)
91
+ dialog.setWindowTitle("Positioner Selection")
92
+ layout = QVBoxLayout()
93
+ line_edit = DeviceLineEdit(self, client=self.client, device_filter="Positioner")
94
+ line_edit.textChanged.connect(self._positioner_changed)
95
+ layout.addWidget(line_edit)
96
+ close_button = QPushButton("Close")
97
+ close_button.clicked.connect(dialog.accept)
98
+ layout.addWidget(close_button)
99
+ dialog.setLayout(layout)
100
+ dialog.exec()
101
+
102
+ @Slot(str)
103
+ def _positioner_changed(self, positioner_name: str):
104
+ """Changed input in combobox.
105
+
106
+ Args:
107
+ positioner_name (str): name of the positioner
108
+ """
109
+ self.set_positioner(positioner_name)
74
110
 
75
111
  def init_device(self):
76
112
  """Init the device view and readback"""
@@ -267,7 +303,7 @@ if __name__ == "__main__": # pragma: no cover
267
303
  from qtpy.QtWidgets import QApplication
268
304
 
269
305
  app = QApplication(sys.argv)
270
- apply_theme("light")
306
+ apply_theme("dark")
271
307
  widget = PositionerBox(device="bpm4i")
272
308
 
273
309
  widget.show()
@@ -78,6 +78,9 @@
78
78
  <property name="enabled">
79
79
  <bool>false</bool>
80
80
  </property>
81
+ <property name="alignment">
82
+ <set>Qt::AlignmentFlag::AlignCenter</set>
83
+ </property>
81
84
  </widget>
82
85
  </item>
83
86
  <item row="3" column="0">
@@ -125,6 +128,13 @@
125
128
  <layout class="QVBoxLayout" name="verticalLayout_2">
126
129
  <item>
127
130
  <layout class="QHBoxLayout" name="horizontalLayout">
131
+ <item>
132
+ <widget class="QToolButton" name="tool_button">
133
+ <property name="text">
134
+ <string>...</string>
135
+ </property>
136
+ </widget>
137
+ </item>
128
138
  <item>
129
139
  <spacer name="horizontalSpacer">
130
140
  <property name="orientation">
@@ -1,6 +1,8 @@
1
1
  # Copyright (C) 2022 The Qt Company Ltd.
2
2
  # SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
3
3
 
4
+ import os
5
+
4
6
  from qtpy.QtDesigner import QDesignerCustomWidgetInterface
5
7
  from qtpy.QtGui import QIcon
6
8
 
@@ -12,6 +14,7 @@ DOM_XML = """
12
14
  </widget>
13
15
  </ui>
14
16
  """
17
+ MODULE_PATH = os.path.dirname(os.path.dirname(os.path.dirname(__file__)))
15
18
 
16
19
 
17
20
  class PositionerBoxPlugin(QDesignerCustomWidgetInterface): # pragma: no cover
@@ -27,10 +30,11 @@ class PositionerBoxPlugin(QDesignerCustomWidgetInterface): # pragma: no cover
27
30
  return DOM_XML
28
31
 
29
32
  def group(self):
30
- return ""
33
+ return "Device Control"
31
34
 
32
35
  def icon(self):
33
- return QIcon()
36
+ icon_path = os.path.join(MODULE_PATH, "assets", "designer_icons", "positioner_box.png")
37
+ return QIcon(icon_path)
34
38
 
35
39
  def includeFile(self):
36
40
  return "positioner_box"
@@ -0,0 +1,33 @@
1
+ from bec_lib.device import Positioner
2
+
3
+ from bec_widgets.widgets.positioner_box.positioner_box import PositionerBox
4
+
5
+
6
+ class PositionerControlLine(PositionerBox):
7
+ """A widget that controls a single device."""
8
+
9
+ ui_file = "positioner_control_line.ui"
10
+ dimensions = (60, 600) # height, width
11
+
12
+ def __init__(self, parent=None, device: Positioner = None, *args, **kwargs):
13
+ """Initialize the DeviceControlLine.
14
+
15
+ Args:
16
+ parent: The parent widget.
17
+ device (Positioner): The device to control.
18
+ """
19
+ super().__init__(parent=parent, device=device, *args, **kwargs)
20
+
21
+
22
+ if __name__ == "__main__": # pragma: no cover
23
+ import sys
24
+
25
+ import qdarktheme
26
+ from qtpy.QtWidgets import QApplication
27
+
28
+ app = QApplication(sys.argv)
29
+ qdarktheme.setup_theme("dark")
30
+ widget = PositionerControlLine(device="samy")
31
+
32
+ widget.show()
33
+ sys.exit(app.exec_())
@@ -0,0 +1 @@
1
+ {'files': ['positioner_control_line.py']}
@@ -0,0 +1,216 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <ui version="4.0">
3
+ <class>Form</class>
4
+ <widget class="QWidget" name="Form">
5
+ <property name="geometry">
6
+ <rect>
7
+ <x>0</x>
8
+ <y>0</y>
9
+ <width>785</width>
10
+ <height>91</height>
11
+ </rect>
12
+ </property>
13
+ <property name="minimumSize">
14
+ <size>
15
+ <width>0</width>
16
+ <height>0</height>
17
+ </size>
18
+ </property>
19
+ <property name="maximumSize">
20
+ <size>
21
+ <width>16777215</width>
22
+ <height>16777215</height>
23
+ </size>
24
+ </property>
25
+ <property name="windowTitle">
26
+ <string>Form</string>
27
+ </property>
28
+ <layout class="QVBoxLayout" name="verticalLayout">
29
+ <item>
30
+ <widget class="QGroupBox" name="device_box">
31
+ <property name="title">
32
+ <string>Device Name</string>
33
+ </property>
34
+ <layout class="QHBoxLayout" name="horizontalLayout">
35
+ <item>
36
+ <widget class="QToolButton" name="tool_button">
37
+ <property name="sizePolicy">
38
+ <sizepolicy hsizetype="Preferred" vsizetype="Preferred">
39
+ <horstretch>0</horstretch>
40
+ <verstretch>0</verstretch>
41
+ </sizepolicy>
42
+ </property>
43
+ <property name="minimumSize">
44
+ <size>
45
+ <width>25</width>
46
+ <height>25</height>
47
+ </size>
48
+ </property>
49
+ <property name="maximumSize">
50
+ <size>
51
+ <width>25</width>
52
+ <height>25</height>
53
+ </size>
54
+ </property>
55
+ <property name="text">
56
+ <string>...</string>
57
+ </property>
58
+ </widget>
59
+ </item>
60
+ <item>
61
+ <layout class="QHBoxLayout" name="horizontalLayout_2">
62
+ <item>
63
+ <widget class="PositionIndicator" name="position_indicator">
64
+ <property name="minimumSize">
65
+ <size>
66
+ <width>80</width>
67
+ <height>10</height>
68
+ </size>
69
+ </property>
70
+ </widget>
71
+ </item>
72
+ <item>
73
+ <widget class="SpinnerWidget" name="spinner_widget">
74
+ <property name="minimumSize">
75
+ <size>
76
+ <width>25</width>
77
+ <height>25</height>
78
+ </size>
79
+ </property>
80
+ <property name="maximumSize">
81
+ <size>
82
+ <width>25</width>
83
+ <height>25</height>
84
+ </size>
85
+ </property>
86
+ </widget>
87
+ </item>
88
+ <item>
89
+ <widget class="QLabel" name="readback">
90
+ <property name="minimumSize">
91
+ <size>
92
+ <width>80</width>
93
+ <height>0</height>
94
+ </size>
95
+ </property>
96
+ <property name="maximumSize">
97
+ <size>
98
+ <width>150</width>
99
+ <height>16777215</height>
100
+ </size>
101
+ </property>
102
+ <property name="text">
103
+ <string>Position</string>
104
+ </property>
105
+ <property name="alignment">
106
+ <set>Qt::AlignmentFlag::AlignCenter</set>
107
+ </property>
108
+ </widget>
109
+ </item>
110
+ <item>
111
+ <widget class="QLineEdit" name="setpoint">
112
+ <property name="minimumSize">
113
+ <size>
114
+ <width>80</width>
115
+ <height>24</height>
116
+ </size>
117
+ </property>
118
+ <property name="maximumSize">
119
+ <size>
120
+ <width>150</width>
121
+ <height>16777215</height>
122
+ </size>
123
+ </property>
124
+ <property name="alignment">
125
+ <set>Qt::AlignmentFlag::AlignCenter</set>
126
+ </property>
127
+ </widget>
128
+ </item>
129
+ </layout>
130
+ </item>
131
+ <item>
132
+ <widget class="QPushButton" name="stop">
133
+ <property name="text">
134
+ <string>Stop</string>
135
+ </property>
136
+ </widget>
137
+ </item>
138
+ <item>
139
+ <widget class="QToolButton" name="tweak_left">
140
+ <property name="minimumSize">
141
+ <size>
142
+ <width>30</width>
143
+ <height>30</height>
144
+ </size>
145
+ </property>
146
+ <property name="maximumSize">
147
+ <size>
148
+ <width>30</width>
149
+ <height>30</height>
150
+ </size>
151
+ </property>
152
+ <property name="text">
153
+ <string>...</string>
154
+ </property>
155
+ <property name="iconSize">
156
+ <size>
157
+ <width>30</width>
158
+ <height>30</height>
159
+ </size>
160
+ </property>
161
+ <property name="arrowType">
162
+ <enum>Qt::ArrowType::LeftArrow</enum>
163
+ </property>
164
+ </widget>
165
+ </item>
166
+ <item>
167
+ <widget class="QDoubleSpinBox" name="step_size"/>
168
+ </item>
169
+ <item>
170
+ <widget class="QToolButton" name="tweak_right">
171
+ <property name="minimumSize">
172
+ <size>
173
+ <width>30</width>
174
+ <height>30</height>
175
+ </size>
176
+ </property>
177
+ <property name="maximumSize">
178
+ <size>
179
+ <width>30</width>
180
+ <height>30</height>
181
+ </size>
182
+ </property>
183
+ <property name="text">
184
+ <string>...</string>
185
+ </property>
186
+ <property name="iconSize">
187
+ <size>
188
+ <width>30</width>
189
+ <height>30</height>
190
+ </size>
191
+ </property>
192
+ <property name="arrowType">
193
+ <enum>Qt::ArrowType::RightArrow</enum>
194
+ </property>
195
+ </widget>
196
+ </item>
197
+ </layout>
198
+ </widget>
199
+ </item>
200
+ </layout>
201
+ </widget>
202
+ <customwidgets>
203
+ <customwidget>
204
+ <class>SpinnerWidget</class>
205
+ <extends>QWidget</extends>
206
+ <header>spinner_widget</header>
207
+ </customwidget>
208
+ <customwidget>
209
+ <class>PositionIndicator</class>
210
+ <extends>QWidget</extends>
211
+ <header>position_indicator</header>
212
+ </customwidget>
213
+ </customwidgets>
214
+ <resources/>
215
+ <connections/>
216
+ </ui>
@@ -0,0 +1,58 @@
1
+ # Copyright (C) 2022 The Qt Company Ltd.
2
+ # SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
3
+
4
+ import os
5
+
6
+ from qtpy.QtDesigner import QDesignerCustomWidgetInterface
7
+ from qtpy.QtGui import QIcon
8
+
9
+ from bec_widgets.widgets.positioner_box.positioner_control_line import PositionerControlLine
10
+
11
+ DOM_XML = """
12
+ <ui language='c++'>
13
+ <widget class='PositionerControlLine' name='positioner_control_line'>
14
+ </widget>
15
+ </ui>
16
+ """
17
+ MODULE_PATH = os.path.dirname(os.path.dirname(os.path.dirname(__file__)))
18
+
19
+
20
+ class PositionerControlLinePlugin(QDesignerCustomWidgetInterface): # pragma: no cover
21
+ def __init__(self):
22
+ super().__init__()
23
+ self._form_editor = None
24
+
25
+ def createWidget(self, parent):
26
+ t = PositionerControlLine(parent)
27
+ return t
28
+
29
+ def domXml(self):
30
+ return DOM_XML
31
+
32
+ def group(self):
33
+ return "Device Control"
34
+
35
+ def icon(self):
36
+ icon_path = os.path.join(MODULE_PATH, "assets", "designer_icons", "positioner_box.png")
37
+ return QIcon(icon_path)
38
+
39
+ def includeFile(self):
40
+ return "positioner_control_line"
41
+
42
+ def initialize(self, form_editor):
43
+ self._form_editor = form_editor
44
+
45
+ def isContainer(self):
46
+ return False
47
+
48
+ def isInitialized(self):
49
+ return self._form_editor is not None
50
+
51
+ def name(self):
52
+ return "PositionerControlLine"
53
+
54
+ def toolTip(self):
55
+ return "A widget that controls a single positioner in line form."
56
+
57
+ def whatsThis(self):
58
+ return self.toolTip()
@@ -0,0 +1,17 @@
1
+ def main(): # pragma: no cover
2
+ from qtpy import PYSIDE6
3
+
4
+ if not PYSIDE6:
5
+ print("PYSIDE6 is not available in the environment. Cannot patch designer.")
6
+ return
7
+ from PySide6.QtDesigner import QPyDesignerCustomWidgetCollection
8
+
9
+ from bec_widgets.widgets.positioner_box.positioner_control_line_plugin import (
10
+ PositionerControlLinePlugin,
11
+ )
12
+
13
+ QPyDesignerCustomWidgetCollection.addCustomWidget(PositionerControlLinePlugin())
14
+
15
+
16
+ if __name__ == "__main__": # pragma: no cover
17
+ main()
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
4
4
 
5
5
  [project]
6
6
  name = "bec_widgets"
7
- version = "0.93.4"
7
+ version = "0.94.0"
8
8
  description = "BEC Widgets"
9
9
  requires-python = ">=3.10"
10
10
  classifiers = [
@@ -9,6 +9,10 @@ from bec_widgets.cli.auto_updates import AutoUpdates
9
9
  from bec_widgets.cli.client import BECDockArea, BECFigure, BECImageShow, BECMotorMap, BECWaveform
10
10
  from bec_widgets.utils import Colors
11
11
 
12
+ # pylint: disable=unused-argument
13
+ # pylint: disable=redefined-outer-name
14
+ # pylint: disable=too-many-locals
15
+
12
16
 
13
17
  def test_rpc_add_dock_with_figure_e2e(bec_client_lib, rpc_server_dock):
14
18
  # BEC client shortcuts
@@ -227,13 +231,20 @@ def test_ring_bar_scan_update(bec_client_lib, rpc_server_dock):
227
231
  assert bar_config["rings"][1]["max_value"] == final_samy
228
232
 
229
233
 
230
- def test_auto_update(bec_client_lib, rpc_server_dock):
234
+ def test_auto_update(bec_client_lib, rpc_server_dock, qtbot):
231
235
  dock = BECDockArea(rpc_server_dock)
232
236
 
233
237
  AutoUpdates.enabled = True
234
238
  AutoUpdates.create_default_dock = True
235
239
  dock.auto_updates = AutoUpdates(gui=dock)
236
240
  dock.auto_updates.start_default_dock()
241
+
242
+ def get_default_figure():
243
+ return dock.auto_updates.get_default_figure()
244
+
245
+ qtbot.waitUntil(lambda: get_default_figure() is not None, timeout=10000)
246
+ plt = get_default_figure()
247
+
237
248
  dock.selected_device = "bpm4i"
238
249
 
239
250
  # we need to start the update script manually; normally this is done when the GUI is started
@@ -250,7 +261,6 @@ def test_auto_update(bec_client_lib, rpc_server_dock):
250
261
  last_scan_data = queue.scan_storage.storage[-1].data
251
262
 
252
263
  # get data from curves
253
- plt = dock.auto_updates.get_default_figure()
254
264
  widgets = plt.widget_list
255
265
  plt_data = widgets[0].get_all_data()
256
266
 
@@ -271,6 +281,7 @@ def test_auto_update(bec_client_lib, rpc_server_dock):
271
281
 
272
282
  plt = dock.auto_updates.get_default_figure()
273
283
  widgets = plt.widget_list
284
+ qtbot.waitUntil(lambda: len(plt.widget_list) > 0, timeout=5000)
274
285
  plt_data = widgets[0].get_all_data()
275
286
 
276
287
  last_scan_data = queue.scan_storage.storage[-1].data
@@ -158,7 +158,7 @@ def test_rpc_motor_map(rpc_server_figure, bec_client_lib):
158
158
  )
159
159
 
160
160
 
161
- def test_dap_rpc(rpc_server_figure, bec_client_lib):
161
+ def test_dap_rpc(rpc_server_figure, bec_client_lib, qtbot):
162
162
 
163
163
  fig = BECFigure(rpc_server_figure)
164
164
  plt = fig.plot(x_name="samx", y_name="bpm4i", dap="GaussianModel")
@@ -178,13 +178,15 @@ def test_dap_rpc(rpc_server_figure, bec_client_lib):
178
178
  res = scans.line_scan(dev.samx, 0, 8, steps=50, relative=False)
179
179
  res.wait()
180
180
 
181
- time.sleep(2)
181
+ # especially on slow machines, the fit might not be done yet
182
+ # so we wait until the fit reaches the expected value
183
+ def wait_for_fit():
184
+ dap_curve = plt.get_curve("bpm4i-bpm4i-GaussianModel")
185
+ fit_params = dap_curve.dap_params
186
+ print(fit_params)
187
+ return np.isclose(fit_params["center"], 5, atol=0.5)
182
188
 
183
- dap_curve = plt.get_curve("bpm4i-bpm4i-GaussianModel")
184
- fit_params = dap_curve.dap_params
185
- print(fit_params)
186
-
187
- assert np.isclose(fit_params["center"], 5, atol=0.5)
189
+ qtbot.waitUntil(wait_for_fit, timeout=10000)
188
190
 
189
191
 
190
192
  def test_removing_subplots(rpc_server_figure, bec_client_lib):