bec-widgets 0.94.4__tar.gz → 0.94.5__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 (380) hide show
  1. {bec_widgets-0.94.4 → bec_widgets-0.94.5}/CHANGELOG.md +14 -12
  2. {bec_widgets-0.94.4 → bec_widgets-0.94.5}/PKG-INFO +3 -3
  3. {bec_widgets-0.94.4 → bec_widgets-0.94.5}/bec_widgets/cli/auto_updates.py +31 -0
  4. {bec_widgets-0.94.4 → bec_widgets-0.94.5}/bec_widgets/cli/client_utils.py +32 -60
  5. bec_widgets-0.94.5/bec_widgets/qt_utils/redis_message_waiter.py +47 -0
  6. {bec_widgets-0.94.4 → bec_widgets-0.94.5}/bec_widgets/utils/bec_dispatcher.py +1 -15
  7. {bec_widgets-0.94.4 → bec_widgets-0.94.5}/pyproject.toml +7 -7
  8. {bec_widgets-0.94.4 → bec_widgets-0.94.5}/tests/end-2-end/test_bec_dock_rpc_e2e.py +1 -0
  9. {bec_widgets-0.94.4 → bec_widgets-0.94.5}/.git_hooks/pre-commit +0 -0
  10. {bec_widgets-0.94.4 → bec_widgets-0.94.5}/.gitignore +0 -0
  11. {bec_widgets-0.94.4 → bec_widgets-0.94.5}/.gitlab/issue_templates/bug_report_template.md +0 -0
  12. {bec_widgets-0.94.4 → bec_widgets-0.94.5}/.gitlab/issue_templates/documentation_update_template.md +0 -0
  13. {bec_widgets-0.94.4 → bec_widgets-0.94.5}/.gitlab/issue_templates/feature_request_template.md +0 -0
  14. {bec_widgets-0.94.4 → bec_widgets-0.94.5}/.gitlab/merge_request_templates/default.md +0 -0
  15. {bec_widgets-0.94.4 → bec_widgets-0.94.5}/.gitlab-ci.yml +0 -0
  16. {bec_widgets-0.94.4 → bec_widgets-0.94.5}/.pylintrc +0 -0
  17. {bec_widgets-0.94.4 → bec_widgets-0.94.5}/.readthedocs.yaml +0 -0
  18. {bec_widgets-0.94.4 → bec_widgets-0.94.5}/LICENSE +0 -0
  19. {bec_widgets-0.94.4 → bec_widgets-0.94.5}/README.md +0 -0
  20. {bec_widgets-0.94.4 → bec_widgets-0.94.5}/bec_widgets/__init__.py +0 -0
  21. {bec_widgets-0.94.4 → bec_widgets-0.94.5}/bec_widgets/assets/app_icons/BEC-Dark.png +0 -0
  22. {bec_widgets-0.94.4 → bec_widgets-0.94.5}/bec_widgets/assets/app_icons/bec_widgets_icon.png +0 -0
  23. {bec_widgets-0.94.4 → bec_widgets-0.94.5}/bec_widgets/assets/app_icons/terminal_icon.png +0 -0
  24. {bec_widgets-0.94.4 → bec_widgets-0.94.5}/bec_widgets/assets/designer_icons/code.png +0 -0
  25. {bec_widgets-0.94.4 → bec_widgets-0.94.5}/bec_widgets/assets/designer_icons/color_button.png +0 -0
  26. {bec_widgets-0.94.4 → bec_widgets-0.94.5}/bec_widgets/assets/designer_icons/colormap_selector.png +0 -0
  27. {bec_widgets-0.94.4 → bec_widgets-0.94.5}/bec_widgets/assets/designer_icons/device_combo_box.png +0 -0
  28. {bec_widgets-0.94.4 → bec_widgets-0.94.5}/bec_widgets/assets/designer_icons/device_line_edit.png +0 -0
  29. {bec_widgets-0.94.4 → bec_widgets-0.94.5}/bec_widgets/assets/designer_icons/dock_area.png +0 -0
  30. {bec_widgets-0.94.4 → bec_widgets-0.94.5}/bec_widgets/assets/designer_icons/games.png +0 -0
  31. {bec_widgets-0.94.4 → bec_widgets-0.94.5}/bec_widgets/assets/designer_icons/image.png +0 -0
  32. {bec_widgets-0.94.4 → bec_widgets-0.94.5}/bec_widgets/assets/designer_icons/motor_map.png +0 -0
  33. {bec_widgets-0.94.4 → bec_widgets-0.94.5}/bec_widgets/assets/designer_icons/position_indicator.png +0 -0
  34. {bec_widgets-0.94.4 → bec_widgets-0.94.5}/bec_widgets/assets/designer_icons/positioner_box.png +0 -0
  35. {bec_widgets-0.94.4 → bec_widgets-0.94.5}/bec_widgets/assets/designer_icons/queue.png +0 -0
  36. {bec_widgets-0.94.4 → bec_widgets-0.94.5}/bec_widgets/assets/designer_icons/ring_progress.png +0 -0
  37. {bec_widgets-0.94.4 → bec_widgets-0.94.5}/bec_widgets/assets/designer_icons/scan_control.png +0 -0
  38. {bec_widgets-0.94.4 → bec_widgets-0.94.5}/bec_widgets/assets/designer_icons/spinner.png +0 -0
  39. {bec_widgets-0.94.4 → bec_widgets-0.94.5}/bec_widgets/assets/designer_icons/status.png +0 -0
  40. {bec_widgets-0.94.4 → bec_widgets-0.94.5}/bec_widgets/assets/designer_icons/stop.png +0 -0
  41. {bec_widgets-0.94.4 → bec_widgets-0.94.5}/bec_widgets/assets/designer_icons/text.png +0 -0
  42. {bec_widgets-0.94.4 → bec_widgets-0.94.5}/bec_widgets/assets/designer_icons/toggle.png +0 -0
  43. {bec_widgets-0.94.4 → bec_widgets-0.94.5}/bec_widgets/assets/designer_icons/waveform.png +0 -0
  44. {bec_widgets-0.94.4 → bec_widgets-0.94.5}/bec_widgets/assets/designer_icons/web.png +0 -0
  45. {bec_widgets-0.94.4 → bec_widgets-0.94.5}/bec_widgets/assets/status_icons/error.svg +0 -0
  46. {bec_widgets-0.94.4 → bec_widgets-0.94.5}/bec_widgets/assets/status_icons/not_connected.svg +0 -0
  47. {bec_widgets-0.94.4 → bec_widgets-0.94.5}/bec_widgets/assets/status_icons/refresh.svg +0 -0
  48. {bec_widgets-0.94.4 → bec_widgets-0.94.5}/bec_widgets/assets/status_icons/running.svg +0 -0
  49. {bec_widgets-0.94.4 → bec_widgets-0.94.5}/bec_widgets/assets/status_icons/warning.svg +0 -0
  50. {bec_widgets-0.94.4 → bec_widgets-0.94.5}/bec_widgets/assets/toolbar_icons/add.svg +0 -0
  51. {bec_widgets-0.94.4 → bec_widgets-0.94.5}/bec_widgets/assets/toolbar_icons/attach_all.svg +0 -0
  52. {bec_widgets-0.94.4 → bec_widgets-0.94.5}/bec_widgets/assets/toolbar_icons/auto_range.svg +0 -0
  53. {bec_widgets-0.94.4 → bec_widgets-0.94.5}/bec_widgets/assets/toolbar_icons/compare.svg +0 -0
  54. {bec_widgets-0.94.4 → bec_widgets-0.94.5}/bec_widgets/assets/toolbar_icons/connection.svg +0 -0
  55. {bec_widgets-0.94.4 → bec_widgets-0.94.5}/bec_widgets/assets/toolbar_icons/device_line_edit.svg +0 -0
  56. {bec_widgets-0.94.4 → bec_widgets-0.94.5}/bec_widgets/assets/toolbar_icons/drag_pan_mode.svg +0 -0
  57. {bec_widgets-0.94.4 → bec_widgets-0.94.5}/bec_widgets/assets/toolbar_icons/export.svg +0 -0
  58. {bec_widgets-0.94.4 → bec_widgets-0.94.5}/bec_widgets/assets/toolbar_icons/fft.svg +0 -0
  59. {bec_widgets-0.94.4 → bec_widgets-0.94.5}/bec_widgets/assets/toolbar_icons/fitting_parameters.svg +0 -0
  60. {bec_widgets-0.94.4 → bec_widgets-0.94.5}/bec_widgets/assets/toolbar_icons/history.svg +0 -0
  61. {bec_widgets-0.94.4 → bec_widgets-0.94.5}/bec_widgets/assets/toolbar_icons/image.svg +0 -0
  62. {bec_widgets-0.94.4 → bec_widgets-0.94.5}/bec_widgets/assets/toolbar_icons/image_autorange.svg +0 -0
  63. {bec_widgets-0.94.4 → bec_widgets-0.94.5}/bec_widgets/assets/toolbar_icons/import.svg +0 -0
  64. {bec_widgets-0.94.4 → bec_widgets-0.94.5}/bec_widgets/assets/toolbar_icons/line_axis.svg +0 -0
  65. {bec_widgets-0.94.4 → bec_widgets-0.94.5}/bec_widgets/assets/toolbar_icons/line_curve.svg +0 -0
  66. {bec_widgets-0.94.4 → bec_widgets-0.94.5}/bec_widgets/assets/toolbar_icons/lock_aspect_ratio.svg +0 -0
  67. {bec_widgets-0.94.4 → bec_widgets-0.94.5}/bec_widgets/assets/toolbar_icons/log_scale.png +0 -0
  68. {bec_widgets-0.94.4 → bec_widgets-0.94.5}/bec_widgets/assets/toolbar_icons/motor_map.svg +0 -0
  69. {bec_widgets-0.94.4 → bec_widgets-0.94.5}/bec_widgets/assets/toolbar_icons/photo_library.svg +0 -0
  70. {bec_widgets-0.94.4 → bec_widgets-0.94.5}/bec_widgets/assets/toolbar_icons/positioner_box.svg +0 -0
  71. {bec_widgets-0.94.4 → bec_widgets-0.94.5}/bec_widgets/assets/toolbar_icons/progress.svg +0 -0
  72. {bec_widgets-0.94.4 → bec_widgets-0.94.5}/bec_widgets/assets/toolbar_icons/queue.svg +0 -0
  73. {bec_widgets-0.94.4 → bec_widgets-0.94.5}/bec_widgets/assets/toolbar_icons/rectangle_mode.svg +0 -0
  74. {bec_widgets-0.94.4 → bec_widgets-0.94.5}/bec_widgets/assets/toolbar_icons/remove.svg +0 -0
  75. {bec_widgets-0.94.4 → bec_widgets-0.94.5}/bec_widgets/assets/toolbar_icons/reset_settings.svg +0 -0
  76. {bec_widgets-0.94.4 → bec_widgets-0.94.5}/bec_widgets/assets/toolbar_icons/restore_state.svg +0 -0
  77. {bec_widgets-0.94.4 → bec_widgets-0.94.5}/bec_widgets/assets/toolbar_icons/ring_progress.svg +0 -0
  78. {bec_widgets-0.94.4 → bec_widgets-0.94.5}/bec_widgets/assets/toolbar_icons/rotate_left.svg +0 -0
  79. {bec_widgets-0.94.4 → bec_widgets-0.94.5}/bec_widgets/assets/toolbar_icons/rotate_right.svg +0 -0
  80. {bec_widgets-0.94.4 → bec_widgets-0.94.5}/bec_widgets/assets/toolbar_icons/save.svg +0 -0
  81. {bec_widgets-0.94.4 → bec_widgets-0.94.5}/bec_widgets/assets/toolbar_icons/save_state.svg +0 -0
  82. {bec_widgets-0.94.4 → bec_widgets-0.94.5}/bec_widgets/assets/toolbar_icons/scan_control.svg +0 -0
  83. {bec_widgets-0.94.4 → bec_widgets-0.94.5}/bec_widgets/assets/toolbar_icons/settings.svg +0 -0
  84. {bec_widgets-0.94.4 → bec_widgets-0.94.5}/bec_widgets/assets/toolbar_icons/status.svg +0 -0
  85. {bec_widgets-0.94.4 → bec_widgets-0.94.5}/bec_widgets/assets/toolbar_icons/terminal.svg +0 -0
  86. {bec_widgets-0.94.4 → bec_widgets-0.94.5}/bec_widgets/assets/toolbar_icons/transform.svg +0 -0
  87. {bec_widgets-0.94.4 → bec_widgets-0.94.5}/bec_widgets/assets/toolbar_icons/waveform.svg +0 -0
  88. {bec_widgets-0.94.4 → bec_widgets-0.94.5}/bec_widgets/cli/__init__.py +0 -0
  89. {bec_widgets-0.94.4 → bec_widgets-0.94.5}/bec_widgets/cli/client.py +0 -0
  90. {bec_widgets-0.94.4 → bec_widgets-0.94.5}/bec_widgets/cli/generate_cli.py +0 -0
  91. {bec_widgets-0.94.4 → bec_widgets-0.94.5}/bec_widgets/cli/rpc_register.py +0 -0
  92. {bec_widgets-0.94.4 → bec_widgets-0.94.5}/bec_widgets/cli/rpc_wigdet_handler.py +0 -0
  93. {bec_widgets-0.94.4 → bec_widgets-0.94.5}/bec_widgets/cli/server.py +0 -0
  94. {bec_widgets-0.94.4 → bec_widgets-0.94.5}/bec_widgets/examples/__init__.py +0 -0
  95. {bec_widgets-0.94.4 → bec_widgets-0.94.5}/bec_widgets/examples/general_app/__init__.py +0 -0
  96. {bec_widgets-0.94.4 → bec_widgets-0.94.5}/bec_widgets/examples/general_app/general_app.py +0 -0
  97. {bec_widgets-0.94.4 → bec_widgets-0.94.5}/bec_widgets/examples/general_app/general_app.ui +0 -0
  98. {bec_widgets-0.94.4 → bec_widgets-0.94.5}/bec_widgets/examples/general_app/web_links.py +0 -0
  99. {bec_widgets-0.94.4 → bec_widgets-0.94.5}/bec_widgets/examples/jupyter_console/__init__.py +0 -0
  100. {bec_widgets-0.94.4 → bec_widgets-0.94.5}/bec_widgets/examples/jupyter_console/jupyter_console_window.py +0 -0
  101. {bec_widgets-0.94.4 → bec_widgets-0.94.5}/bec_widgets/examples/plugin_example_pyside/__init__.py +0 -0
  102. {bec_widgets-0.94.4 → bec_widgets-0.94.5}/bec_widgets/examples/plugin_example_pyside/main.py +0 -0
  103. {bec_widgets-0.94.4 → bec_widgets-0.94.5}/bec_widgets/examples/plugin_example_pyside/registertictactoe.py +0 -0
  104. {bec_widgets-0.94.4 → bec_widgets-0.94.5}/bec_widgets/examples/plugin_example_pyside/taskmenuextension.pyproject +0 -0
  105. {bec_widgets-0.94.4 → bec_widgets-0.94.5}/bec_widgets/examples/plugin_example_pyside/tictactoe.py +0 -0
  106. {bec_widgets-0.94.4 → bec_widgets-0.94.5}/bec_widgets/examples/plugin_example_pyside/tictactoeplugin.py +0 -0
  107. {bec_widgets-0.94.4 → bec_widgets-0.94.5}/bec_widgets/examples/plugin_example_pyside/tictactoetaskmenu.py +0 -0
  108. {bec_widgets-0.94.4 → bec_widgets-0.94.5}/bec_widgets/qt_utils/__init__.py +0 -0
  109. {bec_widgets-0.94.4 → bec_widgets-0.94.5}/bec_widgets/qt_utils/error_popups.py +0 -0
  110. {bec_widgets-0.94.4 → bec_widgets-0.94.5}/bec_widgets/qt_utils/settings_dialog.py +0 -0
  111. {bec_widgets-0.94.4 → bec_widgets-0.94.5}/bec_widgets/qt_utils/toolbar.py +0 -0
  112. {bec_widgets-0.94.4 → bec_widgets-0.94.5}/bec_widgets/utils/__init__.py +0 -0
  113. {bec_widgets-0.94.4 → bec_widgets-0.94.5}/bec_widgets/utils/bec_connector.py +0 -0
  114. {bec_widgets-0.94.4 → bec_widgets-0.94.5}/bec_widgets/utils/bec_designer.py +0 -0
  115. {bec_widgets-0.94.4 → bec_widgets-0.94.5}/bec_widgets/utils/bec_table.py +0 -0
  116. {bec_widgets-0.94.4 → bec_widgets-0.94.5}/bec_widgets/utils/bec_widget.py +0 -0
  117. {bec_widgets-0.94.4 → bec_widgets-0.94.5}/bec_widgets/utils/colors.py +0 -0
  118. {bec_widgets-0.94.4 → bec_widgets-0.94.5}/bec_widgets/utils/container_utils.py +0 -0
  119. {bec_widgets-0.94.4 → bec_widgets-0.94.5}/bec_widgets/utils/crosshair.py +0 -0
  120. {bec_widgets-0.94.4 → bec_widgets-0.94.5}/bec_widgets/utils/entry_validator.py +0 -0
  121. {bec_widgets-0.94.4 → bec_widgets-0.94.5}/bec_widgets/utils/generate_designer_plugin.py +0 -0
  122. {bec_widgets-0.94.4 → bec_widgets-0.94.5}/bec_widgets/utils/layout_manager.py +0 -0
  123. {bec_widgets-0.94.4 → bec_widgets-0.94.5}/bec_widgets/utils/plugin_templates/plugin.template +0 -0
  124. {bec_widgets-0.94.4 → bec_widgets-0.94.5}/bec_widgets/utils/plugin_templates/register.template +0 -0
  125. {bec_widgets-0.94.4 → bec_widgets-0.94.5}/bec_widgets/utils/plugin_utils.py +0 -0
  126. {bec_widgets-0.94.4 → bec_widgets-0.94.5}/bec_widgets/utils/reference_utils.py +0 -0
  127. {bec_widgets-0.94.4 → bec_widgets-0.94.5}/bec_widgets/utils/rpc_decorator.py +0 -0
  128. {bec_widgets-0.94.4 → bec_widgets-0.94.5}/bec_widgets/utils/thread_checker.py +0 -0
  129. {bec_widgets-0.94.4 → bec_widgets-0.94.5}/bec_widgets/utils/ui_loader.py +0 -0
  130. {bec_widgets-0.94.4 → bec_widgets-0.94.5}/bec_widgets/utils/validator_delegate.py +0 -0
  131. {bec_widgets-0.94.4 → bec_widgets-0.94.5}/bec_widgets/utils/widget_io.py +0 -0
  132. {bec_widgets-0.94.4 → bec_widgets-0.94.5}/bec_widgets/utils/yaml_dialog.py +0 -0
  133. {bec_widgets-0.94.4 → bec_widgets-0.94.5}/bec_widgets/widgets/__init__.py +0 -0
  134. {bec_widgets-0.94.4 → bec_widgets-0.94.5}/bec_widgets/widgets/base_classes/__init__.py +0 -0
  135. {bec_widgets-0.94.4 → bec_widgets-0.94.5}/bec_widgets/widgets/base_classes/device_input_base.py +0 -0
  136. {bec_widgets-0.94.4 → bec_widgets-0.94.5}/bec_widgets/widgets/bec_queue/__init__.py +0 -0
  137. {bec_widgets-0.94.4 → bec_widgets-0.94.5}/bec_widgets/widgets/bec_queue/bec_queue.py +0 -0
  138. {bec_widgets-0.94.4 → bec_widgets-0.94.5}/bec_widgets/widgets/bec_queue/bec_queue.pyproject +0 -0
  139. {bec_widgets-0.94.4 → bec_widgets-0.94.5}/bec_widgets/widgets/bec_queue/bec_queue_plugin.py +0 -0
  140. {bec_widgets-0.94.4 → bec_widgets-0.94.5}/bec_widgets/widgets/bec_queue/register_bec_queue.py +0 -0
  141. {bec_widgets-0.94.4 → bec_widgets-0.94.5}/bec_widgets/widgets/bec_status_box/__init__.py +0 -0
  142. {bec_widgets-0.94.4 → bec_widgets-0.94.5}/bec_widgets/widgets/bec_status_box/bec_status_box.py +0 -0
  143. {bec_widgets-0.94.4 → bec_widgets-0.94.5}/bec_widgets/widgets/bec_status_box/bec_status_box.pyproject +0 -0
  144. {bec_widgets-0.94.4 → bec_widgets-0.94.5}/bec_widgets/widgets/bec_status_box/bec_status_box_plugin.py +0 -0
  145. {bec_widgets-0.94.4 → bec_widgets-0.94.5}/bec_widgets/widgets/bec_status_box/register_bec_status_box.py +0 -0
  146. {bec_widgets-0.94.4 → bec_widgets-0.94.5}/bec_widgets/widgets/bec_status_box/status_item.py +0 -0
  147. {bec_widgets-0.94.4 → bec_widgets-0.94.5}/bec_widgets/widgets/color_button/__init__.py +0 -0
  148. {bec_widgets-0.94.4 → bec_widgets-0.94.5}/bec_widgets/widgets/color_button/color_button.py +0 -0
  149. {bec_widgets-0.94.4 → bec_widgets-0.94.5}/bec_widgets/widgets/color_button/color_button.pyproject +0 -0
  150. {bec_widgets-0.94.4 → bec_widgets-0.94.5}/bec_widgets/widgets/color_button/color_button_plugin.py +0 -0
  151. {bec_widgets-0.94.4 → bec_widgets-0.94.5}/bec_widgets/widgets/color_button/register_color_button.py +0 -0
  152. {bec_widgets-0.94.4 → bec_widgets-0.94.5}/bec_widgets/widgets/colormap_selector/__init__.py +0 -0
  153. {bec_widgets-0.94.4 → bec_widgets-0.94.5}/bec_widgets/widgets/colormap_selector/colormap_selector.py +0 -0
  154. {bec_widgets-0.94.4 → bec_widgets-0.94.5}/bec_widgets/widgets/colormap_selector/colormap_selector.pyproject +0 -0
  155. {bec_widgets-0.94.4 → bec_widgets-0.94.5}/bec_widgets/widgets/colormap_selector/colormap_selector_plugin.py +0 -0
  156. {bec_widgets-0.94.4 → bec_widgets-0.94.5}/bec_widgets/widgets/colormap_selector/register_colormap_selector.py +0 -0
  157. {bec_widgets-0.94.4 → bec_widgets-0.94.5}/bec_widgets/widgets/console/console.py +0 -0
  158. {bec_widgets-0.94.4 → bec_widgets-0.94.5}/bec_widgets/widgets/device_combobox/__init__.py +0 -0
  159. {bec_widgets-0.94.4 → bec_widgets-0.94.5}/bec_widgets/widgets/device_combobox/device_combo_box.pyproject +0 -0
  160. {bec_widgets-0.94.4 → bec_widgets-0.94.5}/bec_widgets/widgets/device_combobox/device_combo_box_plugin.py +0 -0
  161. {bec_widgets-0.94.4 → bec_widgets-0.94.5}/bec_widgets/widgets/device_combobox/device_combobox.py +0 -0
  162. {bec_widgets-0.94.4 → bec_widgets-0.94.5}/bec_widgets/widgets/device_combobox/register_device_combo_box.py +0 -0
  163. {bec_widgets-0.94.4 → bec_widgets-0.94.5}/bec_widgets/widgets/device_line_edit/__init__.py +0 -0
  164. {bec_widgets-0.94.4 → bec_widgets-0.94.5}/bec_widgets/widgets/device_line_edit/device_line_edit.py +0 -0
  165. {bec_widgets-0.94.4 → bec_widgets-0.94.5}/bec_widgets/widgets/device_line_edit/device_line_edit.pyproject +0 -0
  166. {bec_widgets-0.94.4 → bec_widgets-0.94.5}/bec_widgets/widgets/device_line_edit/device_line_edit_plugin.py +0 -0
  167. {bec_widgets-0.94.4 → bec_widgets-0.94.5}/bec_widgets/widgets/device_line_edit/register_device_line_edit.py +0 -0
  168. {bec_widgets-0.94.4 → bec_widgets-0.94.5}/bec_widgets/widgets/dock/__init__.py +0 -0
  169. {bec_widgets-0.94.4 → bec_widgets-0.94.5}/bec_widgets/widgets/dock/dock.py +0 -0
  170. {bec_widgets-0.94.4 → bec_widgets-0.94.5}/bec_widgets/widgets/dock/dock_area.py +0 -0
  171. {bec_widgets-0.94.4 → bec_widgets-0.94.5}/bec_widgets/widgets/dock/dock_area.pyproject +0 -0
  172. {bec_widgets-0.94.4 → bec_widgets-0.94.5}/bec_widgets/widgets/dock/dock_area_plugin.py +0 -0
  173. {bec_widgets-0.94.4 → bec_widgets-0.94.5}/bec_widgets/widgets/dock/register_dock_area.py +0 -0
  174. {bec_widgets-0.94.4 → bec_widgets-0.94.5}/bec_widgets/widgets/figure/__init__.py +0 -0
  175. {bec_widgets-0.94.4 → bec_widgets-0.94.5}/bec_widgets/widgets/figure/figure.py +0 -0
  176. {bec_widgets-0.94.4 → bec_widgets-0.94.5}/bec_widgets/widgets/figure/plots/__init__.py +0 -0
  177. {bec_widgets-0.94.4 → bec_widgets-0.94.5}/bec_widgets/widgets/figure/plots/axis_settings.py +0 -0
  178. {bec_widgets-0.94.4 → bec_widgets-0.94.5}/bec_widgets/widgets/figure/plots/axis_settings.ui +0 -0
  179. {bec_widgets-0.94.4 → bec_widgets-0.94.5}/bec_widgets/widgets/figure/plots/image/__init__.py +0 -0
  180. {bec_widgets-0.94.4 → bec_widgets-0.94.5}/bec_widgets/widgets/figure/plots/image/image.py +0 -0
  181. {bec_widgets-0.94.4 → bec_widgets-0.94.5}/bec_widgets/widgets/figure/plots/image/image_item.py +0 -0
  182. {bec_widgets-0.94.4 → bec_widgets-0.94.5}/bec_widgets/widgets/figure/plots/image/image_processor.py +0 -0
  183. {bec_widgets-0.94.4 → bec_widgets-0.94.5}/bec_widgets/widgets/figure/plots/motor_map/__init__.py +0 -0
  184. {bec_widgets-0.94.4 → bec_widgets-0.94.5}/bec_widgets/widgets/figure/plots/motor_map/motor_map.py +0 -0
  185. {bec_widgets-0.94.4 → bec_widgets-0.94.5}/bec_widgets/widgets/figure/plots/plot_base.py +0 -0
  186. {bec_widgets-0.94.4 → bec_widgets-0.94.5}/bec_widgets/widgets/figure/plots/waveform/__init__.py +0 -0
  187. {bec_widgets-0.94.4 → bec_widgets-0.94.5}/bec_widgets/widgets/figure/plots/waveform/waveform.py +0 -0
  188. {bec_widgets-0.94.4 → bec_widgets-0.94.5}/bec_widgets/widgets/figure/plots/waveform/waveform_curve.py +0 -0
  189. {bec_widgets-0.94.4 → bec_widgets-0.94.5}/bec_widgets/widgets/image/__init__.py +0 -0
  190. {bec_widgets-0.94.4 → bec_widgets-0.94.5}/bec_widgets/widgets/image/bec_image_widget.pyproject +0 -0
  191. {bec_widgets-0.94.4 → bec_widgets-0.94.5}/bec_widgets/widgets/image/bec_image_widget_plugin.py +0 -0
  192. {bec_widgets-0.94.4 → bec_widgets-0.94.5}/bec_widgets/widgets/image/image_widget.py +0 -0
  193. {bec_widgets-0.94.4 → bec_widgets-0.94.5}/bec_widgets/widgets/image/register_bec_image_widget.py +0 -0
  194. {bec_widgets-0.94.4 → bec_widgets-0.94.5}/bec_widgets/widgets/jupyter_console/__init__.py +0 -0
  195. {bec_widgets-0.94.4 → bec_widgets-0.94.5}/bec_widgets/widgets/jupyter_console/jupyter_console.py +0 -0
  196. {bec_widgets-0.94.4 → bec_widgets-0.94.5}/bec_widgets/widgets/motor_map/__init__.py +0 -0
  197. {bec_widgets-0.94.4 → bec_widgets-0.94.5}/bec_widgets/widgets/motor_map/bec_motor_map_widget.pyproject +0 -0
  198. {bec_widgets-0.94.4 → bec_widgets-0.94.5}/bec_widgets/widgets/motor_map/bec_motor_map_widget_plugin.py +0 -0
  199. {bec_widgets-0.94.4 → bec_widgets-0.94.5}/bec_widgets/widgets/motor_map/motor_map_dialog/__init__.py +0 -0
  200. {bec_widgets-0.94.4 → bec_widgets-0.94.5}/bec_widgets/widgets/motor_map/motor_map_dialog/motor_map_settings.py +0 -0
  201. {bec_widgets-0.94.4 → bec_widgets-0.94.5}/bec_widgets/widgets/motor_map/motor_map_dialog/motor_map_settings.ui +0 -0
  202. {bec_widgets-0.94.4 → bec_widgets-0.94.5}/bec_widgets/widgets/motor_map/motor_map_widget.py +0 -0
  203. {bec_widgets-0.94.4 → bec_widgets-0.94.5}/bec_widgets/widgets/motor_map/register_bec_motor_map_widget.py +0 -0
  204. {bec_widgets-0.94.4 → bec_widgets-0.94.5}/bec_widgets/widgets/position_indicator/__init__.py +0 -0
  205. {bec_widgets-0.94.4 → bec_widgets-0.94.5}/bec_widgets/widgets/position_indicator/position_indicator.py +0 -0
  206. {bec_widgets-0.94.4 → bec_widgets-0.94.5}/bec_widgets/widgets/position_indicator/position_indicator.pyproject +0 -0
  207. {bec_widgets-0.94.4 → bec_widgets-0.94.5}/bec_widgets/widgets/position_indicator/position_indicator_plugin.py +0 -0
  208. {bec_widgets-0.94.4 → bec_widgets-0.94.5}/bec_widgets/widgets/position_indicator/register_position_indicator.py +0 -0
  209. {bec_widgets-0.94.4 → bec_widgets-0.94.5}/bec_widgets/widgets/positioner_box/__init__.py +0 -0
  210. {bec_widgets-0.94.4 → bec_widgets-0.94.5}/bec_widgets/widgets/positioner_box/positioner_box.py +0 -0
  211. {bec_widgets-0.94.4 → bec_widgets-0.94.5}/bec_widgets/widgets/positioner_box/positioner_box.pyproject +0 -0
  212. {bec_widgets-0.94.4 → bec_widgets-0.94.5}/bec_widgets/widgets/positioner_box/positioner_box.ui +0 -0
  213. {bec_widgets-0.94.4 → bec_widgets-0.94.5}/bec_widgets/widgets/positioner_box/positioner_box_plugin.py +0 -0
  214. {bec_widgets-0.94.4 → bec_widgets-0.94.5}/bec_widgets/widgets/positioner_box/positioner_control_line.py +0 -0
  215. {bec_widgets-0.94.4 → bec_widgets-0.94.5}/bec_widgets/widgets/positioner_box/positioner_control_line.pyproject +0 -0
  216. {bec_widgets-0.94.4 → bec_widgets-0.94.5}/bec_widgets/widgets/positioner_box/positioner_control_line.ui +0 -0
  217. {bec_widgets-0.94.4 → bec_widgets-0.94.5}/bec_widgets/widgets/positioner_box/positioner_control_line_plugin.py +0 -0
  218. {bec_widgets-0.94.4 → bec_widgets-0.94.5}/bec_widgets/widgets/positioner_box/register_positioner_box.py +0 -0
  219. {bec_widgets-0.94.4 → bec_widgets-0.94.5}/bec_widgets/widgets/positioner_box/register_positioner_control_line.py +0 -0
  220. {bec_widgets-0.94.4 → bec_widgets-0.94.5}/bec_widgets/widgets/ring_progress_bar/__init__.py +0 -0
  221. {bec_widgets-0.94.4 → bec_widgets-0.94.5}/bec_widgets/widgets/ring_progress_bar/register_ring_progress_bar.py +0 -0
  222. {bec_widgets-0.94.4 → bec_widgets-0.94.5}/bec_widgets/widgets/ring_progress_bar/ring.py +0 -0
  223. {bec_widgets-0.94.4 → bec_widgets-0.94.5}/bec_widgets/widgets/ring_progress_bar/ring_progress_bar.py +0 -0
  224. {bec_widgets-0.94.4 → bec_widgets-0.94.5}/bec_widgets/widgets/ring_progress_bar/ring_progress_bar.pyproject +0 -0
  225. {bec_widgets-0.94.4 → bec_widgets-0.94.5}/bec_widgets/widgets/ring_progress_bar/ring_progress_bar_plugin.py +0 -0
  226. {bec_widgets-0.94.4 → bec_widgets-0.94.5}/bec_widgets/widgets/scan_control/__init__.py +0 -0
  227. {bec_widgets-0.94.4 → bec_widgets-0.94.5}/bec_widgets/widgets/scan_control/register_scan_control.py +0 -0
  228. {bec_widgets-0.94.4 → bec_widgets-0.94.5}/bec_widgets/widgets/scan_control/scan_control.py +0 -0
  229. {bec_widgets-0.94.4 → bec_widgets-0.94.5}/bec_widgets/widgets/scan_control/scan_control.pyproject +0 -0
  230. {bec_widgets-0.94.4 → bec_widgets-0.94.5}/bec_widgets/widgets/scan_control/scan_control_plugin.py +0 -0
  231. {bec_widgets-0.94.4 → bec_widgets-0.94.5}/bec_widgets/widgets/scan_control/scan_group_box.py +0 -0
  232. {bec_widgets-0.94.4 → bec_widgets-0.94.5}/bec_widgets/widgets/spinner/__init__.py +0 -0
  233. {bec_widgets-0.94.4 → bec_widgets-0.94.5}/bec_widgets/widgets/spinner/register_spinner_widget.py +0 -0
  234. {bec_widgets-0.94.4 → bec_widgets-0.94.5}/bec_widgets/widgets/spinner/spinner.py +0 -0
  235. {bec_widgets-0.94.4 → bec_widgets-0.94.5}/bec_widgets/widgets/spinner/spinner_widget.pyproject +0 -0
  236. {bec_widgets-0.94.4 → bec_widgets-0.94.5}/bec_widgets/widgets/spinner/spinner_widget_plugin.py +0 -0
  237. {bec_widgets-0.94.4 → bec_widgets-0.94.5}/bec_widgets/widgets/stop_button/__init__.py +0 -0
  238. {bec_widgets-0.94.4 → bec_widgets-0.94.5}/bec_widgets/widgets/stop_button/register_stop_button.py +0 -0
  239. {bec_widgets-0.94.4 → bec_widgets-0.94.5}/bec_widgets/widgets/stop_button/stop_button.py +0 -0
  240. {bec_widgets-0.94.4 → bec_widgets-0.94.5}/bec_widgets/widgets/stop_button/stop_button.pyproject +0 -0
  241. {bec_widgets-0.94.4 → bec_widgets-0.94.5}/bec_widgets/widgets/stop_button/stop_button_plugin.py +0 -0
  242. {bec_widgets-0.94.4 → bec_widgets-0.94.5}/bec_widgets/widgets/text_box/__init__.py +0 -0
  243. {bec_widgets-0.94.4 → bec_widgets-0.94.5}/bec_widgets/widgets/text_box/register_text_box.py +0 -0
  244. {bec_widgets-0.94.4 → bec_widgets-0.94.5}/bec_widgets/widgets/text_box/text_box.py +0 -0
  245. {bec_widgets-0.94.4 → bec_widgets-0.94.5}/bec_widgets/widgets/text_box/text_box.pyproject +0 -0
  246. {bec_widgets-0.94.4 → bec_widgets-0.94.5}/bec_widgets/widgets/text_box/text_box_plugin.py +0 -0
  247. {bec_widgets-0.94.4 → bec_widgets-0.94.5}/bec_widgets/widgets/toggle/__init__.py +0 -0
  248. {bec_widgets-0.94.4 → bec_widgets-0.94.5}/bec_widgets/widgets/toggle/register_toggle_switch.py +0 -0
  249. {bec_widgets-0.94.4 → bec_widgets-0.94.5}/bec_widgets/widgets/toggle/toggle.py +0 -0
  250. {bec_widgets-0.94.4 → bec_widgets-0.94.5}/bec_widgets/widgets/toggle/toggle_switch.pyproject +0 -0
  251. {bec_widgets-0.94.4 → bec_widgets-0.94.5}/bec_widgets/widgets/toggle/toggle_switch_plugin.py +0 -0
  252. {bec_widgets-0.94.4 → bec_widgets-0.94.5}/bec_widgets/widgets/vscode/__init__.py +0 -0
  253. {bec_widgets-0.94.4 → bec_widgets-0.94.5}/bec_widgets/widgets/vscode/register_vs_code_editor.py +0 -0
  254. {bec_widgets-0.94.4 → bec_widgets-0.94.5}/bec_widgets/widgets/vscode/vs_code_editor.pyproject +0 -0
  255. {bec_widgets-0.94.4 → bec_widgets-0.94.5}/bec_widgets/widgets/vscode/vs_code_editor_plugin.py +0 -0
  256. {bec_widgets-0.94.4 → bec_widgets-0.94.5}/bec_widgets/widgets/vscode/vscode.py +0 -0
  257. {bec_widgets-0.94.4 → bec_widgets-0.94.5}/bec_widgets/widgets/waveform/__init__.py +0 -0
  258. {bec_widgets-0.94.4 → bec_widgets-0.94.5}/bec_widgets/widgets/waveform/bec_waveform_widget.pyproject +0 -0
  259. {bec_widgets-0.94.4 → bec_widgets-0.94.5}/bec_widgets/widgets/waveform/bec_waveform_widget_plugin.py +0 -0
  260. {bec_widgets-0.94.4 → bec_widgets-0.94.5}/bec_widgets/widgets/waveform/register_bec_waveform_widget.py +0 -0
  261. {bec_widgets-0.94.4 → bec_widgets-0.94.5}/bec_widgets/widgets/waveform/waveform_popups/__init__.py +0 -0
  262. {bec_widgets-0.94.4 → bec_widgets-0.94.5}/bec_widgets/widgets/waveform/waveform_popups/curve_dialog/__init__.py +0 -0
  263. {bec_widgets-0.94.4 → bec_widgets-0.94.5}/bec_widgets/widgets/waveform/waveform_popups/curve_dialog/curve_dialog.py +0 -0
  264. {bec_widgets-0.94.4 → bec_widgets-0.94.5}/bec_widgets/widgets/waveform/waveform_popups/curve_dialog/curve_dialog.ui +0 -0
  265. {bec_widgets-0.94.4 → bec_widgets-0.94.5}/bec_widgets/widgets/waveform/waveform_popups/dap_summary_dialog/__init__.py +0 -0
  266. {bec_widgets-0.94.4 → bec_widgets-0.94.5}/bec_widgets/widgets/waveform/waveform_popups/dap_summary_dialog/dap_summary.ui +0 -0
  267. {bec_widgets-0.94.4 → bec_widgets-0.94.5}/bec_widgets/widgets/waveform/waveform_popups/dap_summary_dialog/dap_summary_dialog.py +0 -0
  268. {bec_widgets-0.94.4 → bec_widgets-0.94.5}/bec_widgets/widgets/waveform/waveform_widget.py +0 -0
  269. {bec_widgets-0.94.4 → bec_widgets-0.94.5}/bec_widgets/widgets/website/__init__.py +0 -0
  270. {bec_widgets-0.94.4 → bec_widgets-0.94.5}/bec_widgets/widgets/website/register_website_widget.py +0 -0
  271. {bec_widgets-0.94.4 → bec_widgets-0.94.5}/bec_widgets/widgets/website/website.py +0 -0
  272. {bec_widgets-0.94.4 → bec_widgets-0.94.5}/bec_widgets/widgets/website/website_widget.pyproject +0 -0
  273. {bec_widgets-0.94.4 → bec_widgets-0.94.5}/bec_widgets/widgets/website/website_widget_plugin.py +0 -0
  274. {bec_widgets-0.94.4 → bec_widgets-0.94.5}/docs/Makefile +0 -0
  275. {bec_widgets-0.94.4 → bec_widgets-0.94.5}/docs/_static/custom.css +0 -0
  276. {bec_widgets-0.94.4 → bec_widgets-0.94.5}/docs/_templates/custom-class-template.rst +0 -0
  277. {bec_widgets-0.94.4 → bec_widgets-0.94.5}/docs/_templates/custom-module-template.rst +0 -0
  278. {bec_widgets-0.94.4 → bec_widgets-0.94.5}/docs/api_reference/api_reference.md +0 -0
  279. {bec_widgets-0.94.4 → bec_widgets-0.94.5}/docs/assets/apps_48dp.svg +0 -0
  280. {bec_widgets-0.94.4 → bec_widgets-0.94.5}/docs/assets/display_settings_48dp.svg +0 -0
  281. {bec_widgets-0.94.4 → bec_widgets-0.94.5}/docs/assets/index_api.svg +0 -0
  282. {bec_widgets-0.94.4 → bec_widgets-0.94.5}/docs/assets/index_contribute.svg +0 -0
  283. {bec_widgets-0.94.4 → bec_widgets-0.94.5}/docs/assets/index_getting_started.svg +0 -0
  284. {bec_widgets-0.94.4 → bec_widgets-0.94.5}/docs/assets/index_user_guide.svg +0 -0
  285. {bec_widgets-0.94.4 → bec_widgets-0.94.5}/docs/assets/rocket_launch_48dp.svg +0 -0
  286. {bec_widgets-0.94.4 → bec_widgets-0.94.5}/docs/conf.py +0 -0
  287. {bec_widgets-0.94.4 → bec_widgets-0.94.5}/docs/developer/developer.md +0 -0
  288. {bec_widgets-0.94.4 → bec_widgets-0.94.5}/docs/developer/introduction/concepts.md +0 -0
  289. {bec_widgets-0.94.4 → bec_widgets-0.94.5}/docs/developer/introduction/contributing.md +0 -0
  290. {bec_widgets-0.94.4 → bec_widgets-0.94.5}/docs/developer/introduction/introduction.md +0 -0
  291. {bec_widgets-0.94.4 → bec_widgets-0.94.5}/docs/developer/widget_development/widget_development.md +0 -0
  292. {bec_widgets-0.94.4 → bec_widgets-0.94.5}/docs/index.md +0 -0
  293. {bec_widgets-0.94.4 → bec_widgets-0.94.5}/docs/introduction/introduction.md +0 -0
  294. {bec_widgets-0.94.4 → bec_widgets-0.94.5}/docs/make.bat +0 -0
  295. {bec_widgets-0.94.4 → bec_widgets-0.94.5}/docs/requirements.txt +0 -0
  296. {bec_widgets-0.94.4 → bec_widgets-0.94.5}/docs/user/api_reference/api_reference.md +0 -0
  297. {bec_widgets-0.94.4 → bec_widgets-0.94.5}/docs/user/applications/applications.md +0 -0
  298. {bec_widgets-0.94.4 → bec_widgets-0.94.5}/docs/user/customisation.md +0 -0
  299. {bec_widgets-0.94.4 → bec_widgets-0.94.5}/docs/user/getting_started/BECDockArea.png +0 -0
  300. {bec_widgets-0.94.4 → bec_widgets-0.94.5}/docs/user/getting_started/auto_updates.md +0 -0
  301. {bec_widgets-0.94.4 → bec_widgets-0.94.5}/docs/user/getting_started/getting_started.md +0 -0
  302. {bec_widgets-0.94.4 → bec_widgets-0.94.5}/docs/user/getting_started/gui_complex_gui.gif +0 -0
  303. {bec_widgets-0.94.4 → bec_widgets-0.94.5}/docs/user/getting_started/installation.md +0 -0
  304. {bec_widgets-0.94.4 → bec_widgets-0.94.5}/docs/user/getting_started/quick_start.md +0 -0
  305. {bec_widgets-0.94.4 → bec_widgets-0.94.5}/docs/user/getting_started/video_tutorials.md +0 -0
  306. {bec_widgets-0.94.4 → bec_widgets-0.94.5}/docs/user/user.md +0 -0
  307. {bec_widgets-0.94.4 → bec_widgets-0.94.5}/docs/user/widgets/BECFigure.png +0 -0
  308. {bec_widgets-0.94.4 → bec_widgets-0.94.5}/docs/user/widgets/bec_figure.md +0 -0
  309. {bec_widgets-0.94.4 → bec_widgets-0.94.5}/docs/user/widgets/bec_figure_dap.gif +0 -0
  310. {bec_widgets-0.94.4 → bec_widgets-0.94.5}/docs/user/widgets/bec_status_box.gif +0 -0
  311. {bec_widgets-0.94.4 → bec_widgets-0.94.5}/docs/user/widgets/bec_status_box.md +0 -0
  312. {bec_widgets-0.94.4 → bec_widgets-0.94.5}/docs/user/widgets/buttons.md +0 -0
  313. {bec_widgets-0.94.4 → bec_widgets-0.94.5}/docs/user/widgets/image_plot.gif +0 -0
  314. {bec_widgets-0.94.4 → bec_widgets-0.94.5}/docs/user/widgets/motor.gif +0 -0
  315. {bec_widgets-0.94.4 → bec_widgets-0.94.5}/docs/user/widgets/progress_bar.gif +0 -0
  316. {bec_widgets-0.94.4 → bec_widgets-0.94.5}/docs/user/widgets/ring_progress_bar.md +0 -0
  317. {bec_widgets-0.94.4 → bec_widgets-0.94.5}/docs/user/widgets/scan_control.gif +0 -0
  318. {bec_widgets-0.94.4 → bec_widgets-0.94.5}/docs/user/widgets/scan_control.md +0 -0
  319. {bec_widgets-0.94.4 → bec_widgets-0.94.5}/docs/user/widgets/scatter_2D.gif +0 -0
  320. {bec_widgets-0.94.4 → bec_widgets-0.94.5}/docs/user/widgets/text_box.md +0 -0
  321. {bec_widgets-0.94.4 → bec_widgets-0.94.5}/docs/user/widgets/w1D.gif +0 -0
  322. {bec_widgets-0.94.4 → bec_widgets-0.94.5}/docs/user/widgets/website.md +0 -0
  323. {bec_widgets-0.94.4 → bec_widgets-0.94.5}/docs/user/widgets/widgets.md +0 -0
  324. {bec_widgets-0.94.4 → bec_widgets-0.94.5}/tests/__init__.py +0 -0
  325. {bec_widgets-0.94.4 → bec_widgets-0.94.5}/tests/end-2-end/__init__.py +0 -0
  326. {bec_widgets-0.94.4 → bec_widgets-0.94.5}/tests/end-2-end/conftest.py +0 -0
  327. {bec_widgets-0.94.4 → bec_widgets-0.94.5}/tests/end-2-end/test_bec_figure_rpc_e2e.py +0 -0
  328. {bec_widgets-0.94.4 → bec_widgets-0.94.5}/tests/end-2-end/test_rpc_register_e2e.py +0 -0
  329. {bec_widgets-0.94.4 → bec_widgets-0.94.5}/tests/end-2-end/test_scan_control_e2e.py +0 -0
  330. {bec_widgets-0.94.4 → bec_widgets-0.94.5}/tests/references/SpinnerWidget/SpinnerWidget_darwin.png +0 -0
  331. {bec_widgets-0.94.4 → bec_widgets-0.94.5}/tests/references/SpinnerWidget/SpinnerWidget_linux.png +0 -0
  332. {bec_widgets-0.94.4 → bec_widgets-0.94.5}/tests/references/SpinnerWidget/SpinnerWidget_started_darwin.png +0 -0
  333. {bec_widgets-0.94.4 → bec_widgets-0.94.5}/tests/references/SpinnerWidget/SpinnerWidget_started_linux.png +0 -0
  334. {bec_widgets-0.94.4 → bec_widgets-0.94.5}/tests/unit_tests/__init__.py +0 -0
  335. {bec_widgets-0.94.4 → bec_widgets-0.94.5}/tests/unit_tests/client_mocks.py +0 -0
  336. {bec_widgets-0.94.4 → bec_widgets-0.94.5}/tests/unit_tests/conftest.py +0 -0
  337. {bec_widgets-0.94.4 → bec_widgets-0.94.5}/tests/unit_tests/test_bec_connector.py +0 -0
  338. {bec_widgets-0.94.4 → bec_widgets-0.94.5}/tests/unit_tests/test_bec_dispatcher.py +0 -0
  339. {bec_widgets-0.94.4 → bec_widgets-0.94.5}/tests/unit_tests/test_bec_dock.py +0 -0
  340. {bec_widgets-0.94.4 → bec_widgets-0.94.5}/tests/unit_tests/test_bec_figure.py +0 -0
  341. {bec_widgets-0.94.4 → bec_widgets-0.94.5}/tests/unit_tests/test_bec_image.py +0 -0
  342. {bec_widgets-0.94.4 → bec_widgets-0.94.5}/tests/unit_tests/test_bec_image_widget.py +0 -0
  343. {bec_widgets-0.94.4 → bec_widgets-0.94.5}/tests/unit_tests/test_bec_motor_map.py +0 -0
  344. {bec_widgets-0.94.4 → bec_widgets-0.94.5}/tests/unit_tests/test_bec_queue.py +0 -0
  345. {bec_widgets-0.94.4 → bec_widgets-0.94.5}/tests/unit_tests/test_bec_status_box.py +0 -0
  346. {bec_widgets-0.94.4 → bec_widgets-0.94.5}/tests/unit_tests/test_client_utils.py +0 -0
  347. {bec_widgets-0.94.4 → bec_widgets-0.94.5}/tests/unit_tests/test_color_map_selector.py +0 -0
  348. {bec_widgets-0.94.4 → bec_widgets-0.94.5}/tests/unit_tests/test_color_validation.py +0 -0
  349. {bec_widgets-0.94.4 → bec_widgets-0.94.5}/tests/unit_tests/test_configs/config_device.yaml +0 -0
  350. {bec_widgets-0.94.4 → bec_widgets-0.94.5}/tests/unit_tests/test_configs/config_device_no_entry.yaml +0 -0
  351. {bec_widgets-0.94.4 → bec_widgets-0.94.5}/tests/unit_tests/test_configs/config_scan.yaml +0 -0
  352. {bec_widgets-0.94.4 → bec_widgets-0.94.5}/tests/unit_tests/test_crosshair.py +0 -0
  353. {bec_widgets-0.94.4 → bec_widgets-0.94.5}/tests/unit_tests/test_device_input_base.py +0 -0
  354. {bec_widgets-0.94.4 → bec_widgets-0.94.5}/tests/unit_tests/test_device_input_widgets.py +0 -0
  355. {bec_widgets-0.94.4 → bec_widgets-0.94.5}/tests/unit_tests/test_error_utils.py +0 -0
  356. {bec_widgets-0.94.4 → bec_widgets-0.94.5}/tests/unit_tests/test_generate_cli_client.py +0 -0
  357. {bec_widgets-0.94.4 → bec_widgets-0.94.5}/tests/unit_tests/test_generate_plugin.py +0 -0
  358. {bec_widgets-0.94.4 → bec_widgets-0.94.5}/tests/unit_tests/test_motor_map_widget.py +0 -0
  359. {bec_widgets-0.94.4 → bec_widgets-0.94.5}/tests/unit_tests/test_msgs/__init__.py +0 -0
  360. {bec_widgets-0.94.4 → bec_widgets-0.94.5}/tests/unit_tests/test_msgs/available_scans_message.py +0 -0
  361. {bec_widgets-0.94.4 → bec_widgets-0.94.5}/tests/unit_tests/test_plot_base.py +0 -0
  362. {bec_widgets-0.94.4 → bec_widgets-0.94.5}/tests/unit_tests/test_plugin_utils.py +0 -0
  363. {bec_widgets-0.94.4 → bec_widgets-0.94.5}/tests/unit_tests/test_positioner_box.py +0 -0
  364. {bec_widgets-0.94.4 → bec_widgets-0.94.5}/tests/unit_tests/test_ring_progress_bar.py +0 -0
  365. {bec_widgets-0.94.4 → bec_widgets-0.94.5}/tests/unit_tests/test_rpc_register.py +0 -0
  366. {bec_widgets-0.94.4 → bec_widgets-0.94.5}/tests/unit_tests/test_rpc_server.py +0 -0
  367. {bec_widgets-0.94.4 → bec_widgets-0.94.5}/tests/unit_tests/test_rpc_widget_handler.py +0 -0
  368. {bec_widgets-0.94.4 → bec_widgets-0.94.5}/tests/unit_tests/test_scan_control.py +0 -0
  369. {bec_widgets-0.94.4 → bec_widgets-0.94.5}/tests/unit_tests/test_scan_control_group_box.py +0 -0
  370. {bec_widgets-0.94.4 → bec_widgets-0.94.5}/tests/unit_tests/test_setting_dialog.py +0 -0
  371. {bec_widgets-0.94.4 → bec_widgets-0.94.5}/tests/unit_tests/test_spinner.py +0 -0
  372. {bec_widgets-0.94.4 → bec_widgets-0.94.5}/tests/unit_tests/test_stop_button.py +0 -0
  373. {bec_widgets-0.94.4 → bec_widgets-0.94.5}/tests/unit_tests/test_text_box_widget.py +0 -0
  374. {bec_widgets-0.94.4 → bec_widgets-0.94.5}/tests/unit_tests/test_toggle.py +0 -0
  375. {bec_widgets-0.94.4 → bec_widgets-0.94.5}/tests/unit_tests/test_vscode_widget.py +0 -0
  376. {bec_widgets-0.94.4 → bec_widgets-0.94.5}/tests/unit_tests/test_waveform1d.py +0 -0
  377. {bec_widgets-0.94.4 → bec_widgets-0.94.5}/tests/unit_tests/test_waveform_widget.py +0 -0
  378. {bec_widgets-0.94.4 → bec_widgets-0.94.5}/tests/unit_tests/test_website_widget.py +0 -0
  379. {bec_widgets-0.94.4 → bec_widgets-0.94.5}/tests/unit_tests/test_widget_io.py +0 -0
  380. {bec_widgets-0.94.4 → bec_widgets-0.94.5}/tests/unit_tests/test_yaml_dialog.py +0 -0
@@ -1,5 +1,19 @@
1
1
  # CHANGELOG
2
2
 
3
+ ## v0.94.5 (2024-08-14)
4
+
5
+ ### Build
6
+
7
+ * build: increased min version of bec to 2.21.4
8
+
9
+ Since we now rely on reusing the BECClient singleton, we need the fix introduced with 2.21.4 in BEC. ([`4f96d0e`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/4f96d0e4a14edc4b2839c1dddeda384737dc7a8a))
10
+
11
+ ### Fix
12
+
13
+ * fix(rpc): use client singleton instead of dispatcher ([`ea9240d`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/ea9240d2f71931082f33fb6b68231469875c3d63))
14
+
15
+ * fix: removed qcoreapplication for polling events ([`4d02b42`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/4d02b42f11e9882b843317255a4975565c8a536f))
16
+
3
17
  ## v0.94.4 (2024-08-14)
4
18
 
5
19
  ### Documentation
@@ -141,15 +155,3 @@ This reverts commit fd6ae91993a23a7b8dbb2cf3c4b7c3eda6d2b0f6 ([`5aad401`](https:
141
155
  * fix: fix missmatch of signal/slot in image and motormap ([`dcc5fd7`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/dcc5fd71ee9f51767a7b2b1ed6200e89d1ef754c))
142
156
 
143
157
  ## v0.92.3 (2024-07-28)
144
-
145
- ### Fix
146
-
147
- * fix(docs): moved to pyside6 ([`71873dd`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/71873ddf359516ded8f74f4d2f73df4156aa1368))
148
-
149
- ## v0.92.2 (2024-07-28)
150
-
151
- ### Fix
152
-
153
- * fix(widgets): fixed import for tictactoe example ([`995a795`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/995a795060bebe25c17108d80ae0fa30463f03b1))
154
-
155
- ## v0.92.1 (2024-07-28)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: bec_widgets
3
- Version: 0.94.4
3
+ Version: 0.94.5
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
@@ -9,8 +9,8 @@ Classifier: Development Status :: 3 - Alpha
9
9
  Classifier: Programming Language :: Python :: 3
10
10
  Classifier: Topic :: Scientific/Engineering
11
11
  Requires-Python: >=3.10
12
- Requires-Dist: bec-ipython-client~=2.16
13
- Requires-Dist: bec-lib~=2.16
12
+ Requires-Dist: bec-ipython-client>=2.21.4,~=2.21
13
+ Requires-Dist: bec-lib>=2.21.4,~=2.21
14
14
  Requires-Dist: bec-qthemes~=0.0
15
15
  Requires-Dist: black~=24.0
16
16
  Requires-Dist: isort>=5.13.2,~=5.13
@@ -1,5 +1,7 @@
1
1
  from __future__ import annotations
2
2
 
3
+ import threading
4
+ from queue import Queue
3
5
  from typing import TYPE_CHECKING
4
6
 
5
7
  from pydantic import BaseModel
@@ -25,6 +27,17 @@ class AutoUpdates:
25
27
 
26
28
  def __init__(self, gui: BECDockArea):
27
29
  self.gui = gui
30
+ self.msg_queue = Queue()
31
+ self.auto_update_thread = None
32
+ self._shutdown_sentinel = object()
33
+ self.start()
34
+
35
+ def start(self):
36
+ """
37
+ Start the auto update thread.
38
+ """
39
+ self.auto_update_thread = threading.Thread(target=self.process_queue)
40
+ self.auto_update_thread.start()
28
41
 
29
42
  def start_default_dock(self):
30
43
  """
@@ -79,6 +92,16 @@ class AutoUpdates:
79
92
  info = self.get_scan_info(msg)
80
93
  self.handler(info)
81
94
 
95
+ def process_queue(self):
96
+ """
97
+ Process the message queue.
98
+ """
99
+ while True:
100
+ msg = self.msg_queue.get()
101
+ if msg is self._shutdown_sentinel:
102
+ break
103
+ self.run(msg)
104
+
82
105
  @staticmethod
83
106
  def get_selected_device(monitored_devices, selected_device):
84
107
  """
@@ -151,3 +174,11 @@ class AutoUpdates:
151
174
  fig.clear_all()
152
175
  plt = fig.plot(x_name=dev_x, y_name=dev_y, label=f"Scan {info.scan_number} - {dev_y}")
153
176
  plt.set(title=f"Scan {info.scan_number}", x_label=dev_x, y_label=dev_y)
177
+
178
+ def shutdown(self):
179
+ """
180
+ Shutdown the auto update thread.
181
+ """
182
+ self.msg_queue.put(self._shutdown_sentinel)
183
+ if self.auto_update_thread:
184
+ self.auto_update_thread.join()
@@ -6,17 +6,16 @@ import json
6
6
  import os
7
7
  import select
8
8
  import subprocess
9
- import sys
10
9
  import threading
11
10
  import time
12
11
  import uuid
13
12
  from functools import wraps
14
13
  from typing import TYPE_CHECKING
15
14
 
15
+ from bec_lib.client import BECClient
16
16
  from bec_lib.endpoints import MessageEndpoints
17
17
  from bec_lib.logger import bec_logger
18
18
  from bec_lib.utils.import_utils import isinstance_based_on_class_name, lazy_import, lazy_import_from
19
- from qtpy.QtCore import QEventLoop, QSocketNotifier, QTimer
20
19
 
21
20
  import bec_widgets.cli.client as client
22
21
  from bec_widgets.cli.auto_updates import AutoUpdates
@@ -24,10 +23,6 @@ from bec_widgets.cli.auto_updates import AutoUpdates
24
23
  if TYPE_CHECKING:
25
24
  from bec_lib.device import DeviceBase
26
25
 
27
- from bec_widgets.cli.client import BECDockArea, BECFigure
28
-
29
- from bec_lib.serialization import MsgpackSerialization
30
-
31
26
  messages = lazy_import("bec_lib.messages")
32
27
  # from bec_lib.connector import MessageObject
33
28
  MessageObject = lazy_import_from("bec_lib.connector", ("MessageObject",))
@@ -184,7 +179,7 @@ class BECGuiClientMixin:
184
179
  if isinstance(msg, messages.ScanStatusMessage):
185
180
  if not self.gui_is_alive():
186
181
  return
187
- self.auto_updates.run(msg)
182
+ self.auto_updates.msg_queue.put(msg)
188
183
 
189
184
  def show(self) -> None:
190
185
  """
@@ -213,6 +208,8 @@ class BECGuiClientMixin:
213
208
  self._process_output_processing_thread.join()
214
209
  self._process.wait()
215
210
  self._process = None
211
+ if self.auto_updates is not None:
212
+ self.auto_updates.shutdown()
216
213
 
217
214
 
218
215
  class RPCResponseTimeoutError(Exception):
@@ -224,54 +221,14 @@ class RPCResponseTimeoutError(Exception):
224
221
  )
225
222
 
226
223
 
227
- class QtRedisMessageWaiter:
228
- def __init__(self, redis_connector, message_to_wait):
229
- self.ev_loop = QEventLoop()
230
- self.response = None
231
- self.connector = redis_connector
232
- self.message_to_wait = message_to_wait
233
- self.pubsub = redis_connector._redis_conn.pubsub()
234
- self.pubsub.subscribe(self.message_to_wait.endpoint)
235
- fd = self.pubsub.connection._sock.fileno()
236
- self.notifier = QSocketNotifier(fd, QSocketNotifier.Read)
237
- self.notifier.activated.connect(self._pubsub_readable)
238
-
239
- def _msg_received(self, msg_obj):
240
- self.response = msg_obj.value
241
- self.ev_loop.quit()
242
-
243
- def wait(self, timeout=1):
244
- timer = QTimer()
245
- timer.singleShot(timeout * 1000, self.ev_loop.quit)
246
- self.ev_loop.exec_()
247
- timer.stop()
248
- self.notifier.setEnabled(False)
249
- self.pubsub.close()
250
- return self.response
251
-
252
- def _pubsub_readable(self, fd):
253
- while True:
254
- msg = self.pubsub.get_message()
255
- if msg:
256
- if msg["type"] == "subscribe":
257
- # get_message buffers, so we may already have the answer
258
- # let's check...
259
- continue
260
- else:
261
- break
262
- else:
263
- return
264
- channel = msg["channel"].decode()
265
- msg = MessageObject(topic=channel, value=MsgpackSerialization.loads(msg["data"]))
266
- self.connector._execute_callback(self._msg_received, msg, {})
267
-
268
-
269
224
  class RPCBase:
270
225
  def __init__(self, gui_id: str = None, config: dict = None, parent=None) -> None:
271
- self._client = BECDispatcher().client
226
+ self._client = BECClient() # BECClient is a singleton; here, we simply get the instance
272
227
  self._config = config if config is not None else {}
273
228
  self._gui_id = gui_id if gui_id is not None else str(uuid.uuid4())
274
229
  self._parent = parent
230
+ self._msg_wait_event = threading.Event()
231
+ self._rpc_response = None
275
232
  super().__init__()
276
233
  # print(f"RPCBase: {self._gui_id}")
277
234
 
@@ -315,24 +272,39 @@ class RPCBase:
315
272
  # pylint: disable=protected-access
316
273
  receiver = self._root._gui_id
317
274
  if wait_for_rpc_response:
318
- redis_msg = QtRedisMessageWaiter(
319
- self._client.connector, MessageEndpoints.gui_instruction_response(request_id)
275
+ self._rpc_response = None
276
+ self._msg_wait_event.clear()
277
+ self._client.connector.register(
278
+ MessageEndpoints.gui_instruction_response(request_id),
279
+ cb=self._on_rpc_response,
280
+ parent=self,
320
281
  )
321
282
 
322
283
  self._client.connector.set_and_publish(MessageEndpoints.gui_instructions(receiver), rpc_msg)
323
284
 
324
285
  if wait_for_rpc_response:
325
- response = redis_msg.wait(timeout)
326
-
327
- if response is None:
328
- raise RPCResponseTimeoutError(request_id, timeout)
329
-
286
+ try:
287
+ finished = self._msg_wait_event.wait(10)
288
+ if not finished:
289
+ raise RPCResponseTimeoutError(request_id, timeout)
290
+ finally:
291
+ self._msg_wait_event.clear()
292
+ self._client.connector.unregister(
293
+ MessageEndpoints.gui_instruction_response(request_id), cb=self._on_rpc_response
294
+ )
330
295
  # get class name
331
- if not response.accepted:
332
- raise ValueError(response.message["error"])
333
- msg_result = response.message.get("result")
296
+ if not self._rpc_response.accepted:
297
+ raise ValueError(self._rpc_response.message["error"])
298
+ msg_result = self._rpc_response.message.get("result")
299
+ self._rpc_response = None
334
300
  return self._create_widget_from_msg_result(msg_result)
335
301
 
302
+ @staticmethod
303
+ def _on_rpc_response(msg: MessageObject, parent: RPCBase) -> None:
304
+ msg = msg.value
305
+ parent._msg_wait_event.set()
306
+ parent._rpc_response = msg
307
+
336
308
  def _create_widget_from_msg_result(self, msg_result):
337
309
  if msg_result is None:
338
310
  return None
@@ -0,0 +1,47 @@
1
+ from bec_lib.serialization import MsgpackSerialization
2
+ from bec_lib.utils import lazy_import_from
3
+ from qtpy.QtCore import QEventLoop, QSocketNotifier, QTimer
4
+
5
+ MessageObject = lazy_import_from("bec_lib.connector", ("MessageObject",))
6
+
7
+
8
+ class QtRedisMessageWaiter:
9
+ def __init__(self, redis_connector, message_to_wait):
10
+ self.ev_loop = QEventLoop()
11
+ self.response = None
12
+ self.connector = redis_connector
13
+ self.message_to_wait = message_to_wait
14
+ self.pubsub = redis_connector._redis_conn.pubsub()
15
+ self.pubsub.subscribe(self.message_to_wait.endpoint)
16
+ fd = self.pubsub.connection._sock.fileno()
17
+ self.notifier = QSocketNotifier(fd, QSocketNotifier.Read)
18
+ self.notifier.activated.connect(self._pubsub_readable)
19
+
20
+ def _msg_received(self, msg_obj):
21
+ self.response = msg_obj.value
22
+ self.ev_loop.quit()
23
+
24
+ def wait(self, timeout=1):
25
+ timer = QTimer()
26
+ timer.singleShot(timeout * 1000, self.ev_loop.quit)
27
+ self.ev_loop.exec_()
28
+ timer.stop()
29
+ self.notifier.setEnabled(False)
30
+ self.pubsub.close()
31
+ return self.response
32
+
33
+ def _pubsub_readable(self, fd):
34
+ while True:
35
+ msg = self.pubsub.get_message()
36
+ if msg:
37
+ if msg["type"] == "subscribe":
38
+ # get_message buffers, so we may already have the answer
39
+ # let's check...
40
+ continue
41
+ else:
42
+ break
43
+ else:
44
+ return
45
+ channel = msg["channel"].decode()
46
+ msg = MessageObject(topic=channel, value=MsgpackSerialization.loads(msg["data"]))
47
+ self.connector._execute_callback(self._msg_received, msg, {})
@@ -8,7 +8,7 @@ import redis
8
8
  from bec_lib.client import BECClient
9
9
  from bec_lib.redis_connector import MessageObject, RedisConnector
10
10
  from bec_lib.service_config import ServiceConfig
11
- from qtpy.QtCore import PYQT6, PYSIDE6, QCoreApplication, QObject
11
+ from qtpy.QtCore import QObject
12
12
  from qtpy.QtCore import Signal as pyqtSignal
13
13
 
14
14
  if TYPE_CHECKING:
@@ -75,7 +75,6 @@ class BECDispatcher:
75
75
 
76
76
  _instance = None
77
77
  _initialized = False
78
- qapp = None
79
78
 
80
79
  def __new__(cls, client=None, config: str = None, *args, **kwargs):
81
80
  if cls._instance is None:
@@ -87,9 +86,6 @@ class BECDispatcher:
87
86
  if self._initialized:
88
87
  return
89
88
 
90
- if not QCoreApplication.instance():
91
- BECDispatcher.qapp = QCoreApplication([])
92
-
93
89
  self._slots = collections.defaultdict(set)
94
90
  self.client = client
95
91
 
@@ -123,16 +119,6 @@ class BECDispatcher:
123
119
  cls._instance = None
124
120
  cls._initialized = False
125
121
 
126
- if not cls.qapp:
127
- return
128
-
129
- # shutdown QCoreApp if it exists
130
- if PYQT6:
131
- cls.qapp.exit()
132
- elif PYSIDE6:
133
- cls.qapp.shutdown()
134
- cls.qapp = None
135
-
136
122
  def connect_slot(
137
123
  self,
138
124
  slot: Callable,
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
4
4
 
5
5
  [project]
6
6
  name = "bec_widgets"
7
- version = "0.94.4"
7
+ version = "0.94.5"
8
8
  description = "BEC Widgets"
9
9
  requires-python = ">=3.10"
10
10
  classifiers = [
@@ -13,16 +13,16 @@ classifiers = [
13
13
  "Topic :: Scientific/Engineering",
14
14
  ]
15
15
  dependencies = [
16
- "bec_ipython_client~=2.16", # needed for jupyter console
17
- "bec_lib~=2.16",
18
- "black~=24.0", # needed for bw-generate-cli
19
- "isort~=5.13, >=5.13.2", # needed for bw-generate-cli
16
+ "bec_ipython_client~=2.21, >=2.21.4", # needed for jupyter console
17
+ "bec_lib~=2.21, >=2.21.4",
18
+ "black~=24.0", # needed for bw-generate-cli
19
+ "isort~=5.13, >=5.13.2", # needed for bw-generate-cli
20
20
  "pydantic~=2.0",
21
21
  "pyqtgraph~=0.13",
22
22
  "bec_qthemes~=0.0",
23
- "qtconsole~=5.5, >=5.5.1", # needed for jupyter console
23
+ "qtconsole~=5.5, >=5.5.1", # needed for jupyter console
24
24
  "qtpy~=2.4",
25
- "pyte", # needed for vt100 console
25
+ "pyte", # needed for vt100 console
26
26
  ]
27
27
 
28
28
 
@@ -295,3 +295,4 @@ def test_auto_update(bec_client_lib, rpc_server_dock, qtbot):
295
295
  plt_data[f"Scan {status.scan.scan_number} - {dock.selected_device}"]["y"]
296
296
  == last_scan_data["samy"]["samy"].val
297
297
  )
298
+ dock.auto_updates.shutdown()
File without changes
File without changes
File without changes
File without changes