bec-widgets 1.5.2__tar.gz → 1.6.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 (315) hide show
  1. {bec_widgets-1.5.2 → bec_widgets-1.6.0}/.gitlab-ci.yml +6 -2
  2. {bec_widgets-1.5.2 → bec_widgets-1.6.0}/CHANGELOG.md +74 -80
  3. {bec_widgets-1.5.2 → bec_widgets-1.6.0}/PKG-INFO +1 -1
  4. {bec_widgets-1.5.2 → bec_widgets-1.6.0}/bec_widgets/applications/alignment/alignment_1d/alignment_1d.py +5 -3
  5. {bec_widgets-1.5.2 → bec_widgets-1.6.0}/bec_widgets/cli/client.py +166 -0
  6. {bec_widgets-1.5.2 → bec_widgets-1.6.0}/bec_widgets/cli/client_utils.py +77 -14
  7. {bec_widgets-1.5.2 → bec_widgets-1.6.0}/bec_widgets/cli/server.py +14 -12
  8. {bec_widgets-1.5.2 → bec_widgets-1.6.0}/bec_widgets/utils/bec_connector.py +1 -1
  9. {bec_widgets-1.5.2 → bec_widgets-1.6.0}/bec_widgets/widgets/containers/dock/dock_area.py +14 -0
  10. bec_widgets-1.6.0/bec_widgets/widgets/containers/main_window/main_window.py +9 -0
  11. {bec_widgets-1.5.2 → bec_widgets-1.6.0}/bec_widgets/widgets/services/device_browser/device_item/device_item.py +18 -6
  12. bec_widgets-1.6.0/bec_widgets/widgets/utility/visual/dark_mode_button/__init__.py +0 -0
  13. {bec_widgets-1.5.2 → bec_widgets-1.6.0}/pyproject.toml +1 -1
  14. {bec_widgets-1.5.2 → bec_widgets-1.6.0}/.git_hooks/pre-commit +0 -0
  15. {bec_widgets-1.5.2 → bec_widgets-1.6.0}/.gitignore +0 -0
  16. {bec_widgets-1.5.2 → bec_widgets-1.6.0}/.gitlab/issue_templates/bug_report_template.md +0 -0
  17. {bec_widgets-1.5.2 → bec_widgets-1.6.0}/.gitlab/issue_templates/documentation_update_template.md +0 -0
  18. {bec_widgets-1.5.2 → bec_widgets-1.6.0}/.gitlab/issue_templates/feature_request_template.md +0 -0
  19. {bec_widgets-1.5.2 → bec_widgets-1.6.0}/.gitlab/merge_request_templates/default.md +0 -0
  20. {bec_widgets-1.5.2 → bec_widgets-1.6.0}/.pylintrc +0 -0
  21. {bec_widgets-1.5.2 → bec_widgets-1.6.0}/.readthedocs.yaml +0 -0
  22. {bec_widgets-1.5.2 → bec_widgets-1.6.0}/LICENSE +0 -0
  23. {bec_widgets-1.5.2 → bec_widgets-1.6.0}/README.md +0 -0
  24. {bec_widgets-1.5.2 → bec_widgets-1.6.0}/bec_widgets/__init__.py +0 -0
  25. {bec_widgets-1.5.2 → bec_widgets-1.6.0}/bec_widgets/applications/__init__.py +0 -0
  26. {bec_widgets-1.5.2 → bec_widgets-1.6.0}/bec_widgets/applications/alignment/__init__.py +0 -0
  27. {bec_widgets-1.5.2 → bec_widgets-1.6.0}/bec_widgets/applications/alignment/alignment_1d/__init__.py +0 -0
  28. {bec_widgets-1.5.2 → bec_widgets-1.6.0}/bec_widgets/applications/alignment/alignment_1d/alignment_1d.ui +0 -0
  29. {bec_widgets-1.5.2 → bec_widgets-1.6.0}/bec_widgets/applications/bec_app.py +0 -0
  30. {bec_widgets-1.5.2 → bec_widgets-1.6.0}/bec_widgets/assets/app_icons/BEC-General-App.png +0 -0
  31. {bec_widgets-1.5.2 → bec_widgets-1.6.0}/bec_widgets/assets/app_icons/alignment_1d.png +0 -0
  32. {bec_widgets-1.5.2 → bec_widgets-1.6.0}/bec_widgets/assets/app_icons/bec_widgets_icon.png +0 -0
  33. {bec_widgets-1.5.2 → bec_widgets-1.6.0}/bec_widgets/cli/__init__.py +0 -0
  34. {bec_widgets-1.5.2 → bec_widgets-1.6.0}/bec_widgets/cli/auto_updates.py +0 -0
  35. {bec_widgets-1.5.2 → bec_widgets-1.6.0}/bec_widgets/cli/generate_cli.py +0 -0
  36. {bec_widgets-1.5.2 → bec_widgets-1.6.0}/bec_widgets/cli/rpc_register.py +0 -0
  37. {bec_widgets-1.5.2 → bec_widgets-1.6.0}/bec_widgets/cli/rpc_wigdet_handler.py +0 -0
  38. {bec_widgets-1.5.2 → bec_widgets-1.6.0}/bec_widgets/examples/__init__.py +0 -0
  39. {bec_widgets-1.5.2 → bec_widgets-1.6.0}/bec_widgets/examples/general_app/__init__.py +0 -0
  40. {bec_widgets-1.5.2 → bec_widgets-1.6.0}/bec_widgets/examples/general_app/general_app.py +0 -0
  41. {bec_widgets-1.5.2 → bec_widgets-1.6.0}/bec_widgets/examples/general_app/general_app.ui +0 -0
  42. {bec_widgets-1.5.2 → bec_widgets-1.6.0}/bec_widgets/examples/general_app/web_links.py +0 -0
  43. {bec_widgets-1.5.2 → bec_widgets-1.6.0}/bec_widgets/examples/jupyter_console/__init__.py +0 -0
  44. {bec_widgets-1.5.2 → bec_widgets-1.6.0}/bec_widgets/examples/jupyter_console/jupyter_console_window.py +0 -0
  45. {bec_widgets-1.5.2 → bec_widgets-1.6.0}/bec_widgets/examples/plugin_example_pyside/__init__.py +0 -0
  46. {bec_widgets-1.5.2 → bec_widgets-1.6.0}/bec_widgets/examples/plugin_example_pyside/main.py +0 -0
  47. {bec_widgets-1.5.2 → bec_widgets-1.6.0}/bec_widgets/examples/plugin_example_pyside/registertictactoe.py +0 -0
  48. {bec_widgets-1.5.2 → bec_widgets-1.6.0}/bec_widgets/examples/plugin_example_pyside/taskmenuextension.pyproject +0 -0
  49. {bec_widgets-1.5.2 → bec_widgets-1.6.0}/bec_widgets/examples/plugin_example_pyside/tictactoe.py +0 -0
  50. {bec_widgets-1.5.2 → bec_widgets-1.6.0}/bec_widgets/examples/plugin_example_pyside/tictactoeplugin.py +0 -0
  51. {bec_widgets-1.5.2 → bec_widgets-1.6.0}/bec_widgets/examples/plugin_example_pyside/tictactoetaskmenu.py +0 -0
  52. {bec_widgets-1.5.2 → bec_widgets-1.6.0}/bec_widgets/qt_utils/__init__.py +0 -0
  53. {bec_widgets-1.5.2 → bec_widgets-1.6.0}/bec_widgets/qt_utils/compact_popup.py +0 -0
  54. {bec_widgets-1.5.2 → bec_widgets-1.6.0}/bec_widgets/qt_utils/error_popups.py +0 -0
  55. {bec_widgets-1.5.2 → bec_widgets-1.6.0}/bec_widgets/qt_utils/palette_viewer.py +0 -0
  56. {bec_widgets-1.5.2 → bec_widgets-1.6.0}/bec_widgets/qt_utils/redis_message_waiter.py +0 -0
  57. {bec_widgets-1.5.2 → bec_widgets-1.6.0}/bec_widgets/qt_utils/settings_dialog.py +0 -0
  58. {bec_widgets-1.5.2 → bec_widgets-1.6.0}/bec_widgets/qt_utils/toolbar.py +0 -0
  59. {bec_widgets-1.5.2 → bec_widgets-1.6.0}/bec_widgets/tests/__init__.py +0 -0
  60. {bec_widgets-1.5.2 → bec_widgets-1.6.0}/bec_widgets/tests/utils.py +0 -0
  61. {bec_widgets-1.5.2 → bec_widgets-1.6.0}/bec_widgets/utils/__init__.py +0 -0
  62. {bec_widgets-1.5.2 → bec_widgets-1.6.0}/bec_widgets/utils/bec_designer.py +0 -0
  63. {bec_widgets-1.5.2 → bec_widgets-1.6.0}/bec_widgets/utils/bec_dispatcher.py +0 -0
  64. {bec_widgets-1.5.2 → bec_widgets-1.6.0}/bec_widgets/utils/bec_signal_proxy.py +0 -0
  65. {bec_widgets-1.5.2 → bec_widgets-1.6.0}/bec_widgets/utils/bec_table.py +0 -0
  66. {bec_widgets-1.5.2 → bec_widgets-1.6.0}/bec_widgets/utils/bec_widget.py +0 -0
  67. {bec_widgets-1.5.2 → bec_widgets-1.6.0}/bec_widgets/utils/colors.py +0 -0
  68. {bec_widgets-1.5.2 → bec_widgets-1.6.0}/bec_widgets/utils/container_utils.py +0 -0
  69. {bec_widgets-1.5.2 → bec_widgets-1.6.0}/bec_widgets/utils/crosshair.py +0 -0
  70. {bec_widgets-1.5.2 → bec_widgets-1.6.0}/bec_widgets/utils/entry_validator.py +0 -0
  71. {bec_widgets-1.5.2 → bec_widgets-1.6.0}/bec_widgets/utils/filter_io.py +0 -0
  72. {bec_widgets-1.5.2 → bec_widgets-1.6.0}/bec_widgets/utils/fps_counter.py +0 -0
  73. {bec_widgets-1.5.2 → bec_widgets-1.6.0}/bec_widgets/utils/generate_designer_plugin.py +0 -0
  74. {bec_widgets-1.5.2 → bec_widgets-1.6.0}/bec_widgets/utils/layout_manager.py +0 -0
  75. {bec_widgets-1.5.2 → bec_widgets-1.6.0}/bec_widgets/utils/linear_region_selector.py +0 -0
  76. {bec_widgets-1.5.2 → bec_widgets-1.6.0}/bec_widgets/utils/ophyd_kind_util.py +0 -0
  77. {bec_widgets-1.5.2 → bec_widgets-1.6.0}/bec_widgets/utils/plot_indicator_items.py +0 -0
  78. {bec_widgets-1.5.2 → bec_widgets-1.6.0}/bec_widgets/utils/plugin_templates/plugin.template +0 -0
  79. {bec_widgets-1.5.2 → bec_widgets-1.6.0}/bec_widgets/utils/plugin_templates/register.template +0 -0
  80. {bec_widgets-1.5.2 → bec_widgets-1.6.0}/bec_widgets/utils/plugin_utils.py +0 -0
  81. {bec_widgets-1.5.2 → bec_widgets-1.6.0}/bec_widgets/utils/reference_utils.py +0 -0
  82. {bec_widgets-1.5.2 → bec_widgets-1.6.0}/bec_widgets/utils/rpc_decorator.py +0 -0
  83. {bec_widgets-1.5.2 → bec_widgets-1.6.0}/bec_widgets/utils/thread_checker.py +0 -0
  84. {bec_widgets-1.5.2 → bec_widgets-1.6.0}/bec_widgets/utils/ui_loader.py +0 -0
  85. {bec_widgets-1.5.2 → bec_widgets-1.6.0}/bec_widgets/utils/validator_delegate.py +0 -0
  86. {bec_widgets-1.5.2 → bec_widgets-1.6.0}/bec_widgets/utils/widget_io.py +0 -0
  87. {bec_widgets-1.5.2 → bec_widgets-1.6.0}/bec_widgets/utils/yaml_dialog.py +0 -0
  88. {bec_widgets-1.5.2 → bec_widgets-1.6.0}/bec_widgets/widgets/__init__.py +0 -0
  89. {bec_widgets-1.5.2 → bec_widgets-1.6.0}/bec_widgets/widgets/containers/__init__.py +0 -0
  90. {bec_widgets-1.5.2 → bec_widgets-1.6.0}/bec_widgets/widgets/containers/dock/__init__.py +0 -0
  91. {bec_widgets-1.5.2 → bec_widgets-1.6.0}/bec_widgets/widgets/containers/dock/dock.py +0 -0
  92. {bec_widgets-1.5.2 → bec_widgets-1.6.0}/bec_widgets/widgets/containers/dock/dock_area.pyproject +0 -0
  93. {bec_widgets-1.5.2 → bec_widgets-1.6.0}/bec_widgets/widgets/containers/dock/dock_area_plugin.py +0 -0
  94. {bec_widgets-1.5.2 → bec_widgets-1.6.0}/bec_widgets/widgets/containers/dock/register_dock_area.py +0 -0
  95. {bec_widgets-1.5.2 → bec_widgets-1.6.0}/bec_widgets/widgets/containers/figure/__init__.py +0 -0
  96. {bec_widgets-1.5.2 → bec_widgets-1.6.0}/bec_widgets/widgets/containers/figure/figure.py +0 -0
  97. {bec_widgets-1.5.2 → bec_widgets-1.6.0}/bec_widgets/widgets/containers/figure/plots/__init__.py +0 -0
  98. {bec_widgets-1.5.2 → bec_widgets-1.6.0}/bec_widgets/widgets/containers/figure/plots/axis_settings.py +0 -0
  99. {bec_widgets-1.5.2 → bec_widgets-1.6.0}/bec_widgets/widgets/containers/figure/plots/axis_settings.ui +0 -0
  100. {bec_widgets-1.5.2 → bec_widgets-1.6.0}/bec_widgets/widgets/containers/figure/plots/image/__init__.py +0 -0
  101. {bec_widgets-1.5.2 → bec_widgets-1.6.0}/bec_widgets/widgets/containers/figure/plots/image/image.py +0 -0
  102. {bec_widgets-1.5.2 → bec_widgets-1.6.0}/bec_widgets/widgets/containers/figure/plots/image/image_item.py +0 -0
  103. {bec_widgets-1.5.2 → bec_widgets-1.6.0}/bec_widgets/widgets/containers/figure/plots/image/image_processor.py +0 -0
  104. {bec_widgets-1.5.2 → bec_widgets-1.6.0}/bec_widgets/widgets/containers/figure/plots/motor_map/__init__.py +0 -0
  105. {bec_widgets-1.5.2 → bec_widgets-1.6.0}/bec_widgets/widgets/containers/figure/plots/motor_map/motor_map.py +0 -0
  106. {bec_widgets-1.5.2 → bec_widgets-1.6.0}/bec_widgets/widgets/containers/figure/plots/multi_waveform/__init__.py +0 -0
  107. {bec_widgets-1.5.2 → bec_widgets-1.6.0}/bec_widgets/widgets/containers/figure/plots/multi_waveform/multi_waveform.py +0 -0
  108. {bec_widgets-1.5.2 → bec_widgets-1.6.0}/bec_widgets/widgets/containers/figure/plots/plot_base.py +0 -0
  109. {bec_widgets-1.5.2 → bec_widgets-1.6.0}/bec_widgets/widgets/containers/figure/plots/waveform/__init__.py +0 -0
  110. {bec_widgets-1.5.2 → bec_widgets-1.6.0}/bec_widgets/widgets/containers/figure/plots/waveform/waveform.py +0 -0
  111. {bec_widgets-1.5.2 → bec_widgets-1.6.0}/bec_widgets/widgets/containers/figure/plots/waveform/waveform_curve.py +0 -0
  112. {bec_widgets-1.5.2/bec_widgets/widgets/control → bec_widgets-1.6.0/bec_widgets/widgets/containers/main_window}/__init__.py +0 -0
  113. {bec_widgets-1.5.2/bec_widgets/widgets/control/buttons → bec_widgets-1.6.0/bec_widgets/widgets/control}/__init__.py +0 -0
  114. {bec_widgets-1.5.2/bec_widgets/widgets/control/buttons/button_abort → bec_widgets-1.6.0/bec_widgets/widgets/control/buttons}/__init__.py +0 -0
  115. {bec_widgets-1.5.2/bec_widgets/widgets/control/buttons/button_reset → bec_widgets-1.6.0/bec_widgets/widgets/control/buttons/button_abort}/__init__.py +0 -0
  116. {bec_widgets-1.5.2 → bec_widgets-1.6.0}/bec_widgets/widgets/control/buttons/button_abort/abort_button.pyproject +0 -0
  117. {bec_widgets-1.5.2 → bec_widgets-1.6.0}/bec_widgets/widgets/control/buttons/button_abort/abort_button_plugin.py +0 -0
  118. {bec_widgets-1.5.2 → bec_widgets-1.6.0}/bec_widgets/widgets/control/buttons/button_abort/button_abort.py +0 -0
  119. {bec_widgets-1.5.2 → bec_widgets-1.6.0}/bec_widgets/widgets/control/buttons/button_abort/register_abort_button.py +0 -0
  120. {bec_widgets-1.5.2/bec_widgets/widgets/control/buttons/button_resume → bec_widgets-1.6.0/bec_widgets/widgets/control/buttons/button_reset}/__init__.py +0 -0
  121. {bec_widgets-1.5.2 → bec_widgets-1.6.0}/bec_widgets/widgets/control/buttons/button_reset/button_reset.py +0 -0
  122. {bec_widgets-1.5.2 → bec_widgets-1.6.0}/bec_widgets/widgets/control/buttons/button_reset/register_reset_button.py +0 -0
  123. {bec_widgets-1.5.2 → bec_widgets-1.6.0}/bec_widgets/widgets/control/buttons/button_reset/reset_button.pyproject +0 -0
  124. {bec_widgets-1.5.2 → bec_widgets-1.6.0}/bec_widgets/widgets/control/buttons/button_reset/reset_button_plugin.py +0 -0
  125. {bec_widgets-1.5.2/bec_widgets/widgets/control/buttons/stop_button → bec_widgets-1.6.0/bec_widgets/widgets/control/buttons/button_resume}/__init__.py +0 -0
  126. {bec_widgets-1.5.2 → bec_widgets-1.6.0}/bec_widgets/widgets/control/buttons/button_resume/button_resume.py +0 -0
  127. {bec_widgets-1.5.2 → bec_widgets-1.6.0}/bec_widgets/widgets/control/buttons/button_resume/register_resume_button.py +0 -0
  128. {bec_widgets-1.5.2 → bec_widgets-1.6.0}/bec_widgets/widgets/control/buttons/button_resume/resume_button.pyproject +0 -0
  129. {bec_widgets-1.5.2 → bec_widgets-1.6.0}/bec_widgets/widgets/control/buttons/button_resume/resume_button_plugin.py +0 -0
  130. {bec_widgets-1.5.2/bec_widgets/widgets/control/device_control → bec_widgets-1.6.0/bec_widgets/widgets/control/buttons/stop_button}/__init__.py +0 -0
  131. {bec_widgets-1.5.2 → bec_widgets-1.6.0}/bec_widgets/widgets/control/buttons/stop_button/register_stop_button.py +0 -0
  132. {bec_widgets-1.5.2 → bec_widgets-1.6.0}/bec_widgets/widgets/control/buttons/stop_button/stop_button.py +0 -0
  133. {bec_widgets-1.5.2 → bec_widgets-1.6.0}/bec_widgets/widgets/control/buttons/stop_button/stop_button.pyproject +0 -0
  134. {bec_widgets-1.5.2 → bec_widgets-1.6.0}/bec_widgets/widgets/control/buttons/stop_button/stop_button_plugin.py +0 -0
  135. {bec_widgets-1.5.2/bec_widgets/widgets/control/device_control/position_indicator → bec_widgets-1.6.0/bec_widgets/widgets/control/device_control}/__init__.py +0 -0
  136. {bec_widgets-1.5.2/bec_widgets/widgets/control/device_control/positioner_box → bec_widgets-1.6.0/bec_widgets/widgets/control/device_control/position_indicator}/__init__.py +0 -0
  137. {bec_widgets-1.5.2 → bec_widgets-1.6.0}/bec_widgets/widgets/control/device_control/position_indicator/position_indicator.py +0 -0
  138. {bec_widgets-1.5.2 → bec_widgets-1.6.0}/bec_widgets/widgets/control/device_control/position_indicator/position_indicator.pyproject +0 -0
  139. {bec_widgets-1.5.2 → bec_widgets-1.6.0}/bec_widgets/widgets/control/device_control/position_indicator/position_indicator_plugin.py +0 -0
  140. {bec_widgets-1.5.2 → bec_widgets-1.6.0}/bec_widgets/widgets/control/device_control/position_indicator/register_position_indicator.py +0 -0
  141. {bec_widgets-1.5.2/bec_widgets/widgets/control/device_control/positioner_group → bec_widgets-1.6.0/bec_widgets/widgets/control/device_control/positioner_box}/__init__.py +0 -0
  142. {bec_widgets-1.5.2 → bec_widgets-1.6.0}/bec_widgets/widgets/control/device_control/positioner_box/positioner_box.py +0 -0
  143. {bec_widgets-1.5.2 → bec_widgets-1.6.0}/bec_widgets/widgets/control/device_control/positioner_box/positioner_box.pyproject +0 -0
  144. {bec_widgets-1.5.2 → bec_widgets-1.6.0}/bec_widgets/widgets/control/device_control/positioner_box/positioner_box.ui +0 -0
  145. {bec_widgets-1.5.2 → bec_widgets-1.6.0}/bec_widgets/widgets/control/device_control/positioner_box/positioner_box_plugin.py +0 -0
  146. {bec_widgets-1.5.2 → bec_widgets-1.6.0}/bec_widgets/widgets/control/device_control/positioner_box/positioner_control_line.py +0 -0
  147. {bec_widgets-1.5.2 → bec_widgets-1.6.0}/bec_widgets/widgets/control/device_control/positioner_box/positioner_control_line.pyproject +0 -0
  148. {bec_widgets-1.5.2 → bec_widgets-1.6.0}/bec_widgets/widgets/control/device_control/positioner_box/positioner_control_line.ui +0 -0
  149. {bec_widgets-1.5.2 → bec_widgets-1.6.0}/bec_widgets/widgets/control/device_control/positioner_box/positioner_control_line_plugin.py +0 -0
  150. {bec_widgets-1.5.2 → bec_widgets-1.6.0}/bec_widgets/widgets/control/device_control/positioner_box/register_positioner_box.py +0 -0
  151. {bec_widgets-1.5.2 → bec_widgets-1.6.0}/bec_widgets/widgets/control/device_control/positioner_box/register_positioner_control_line.py +0 -0
  152. {bec_widgets-1.5.2/bec_widgets/widgets/control/device_input → bec_widgets-1.6.0/bec_widgets/widgets/control/device_control/positioner_group}/__init__.py +0 -0
  153. {bec_widgets-1.5.2 → bec_widgets-1.6.0}/bec_widgets/widgets/control/device_control/positioner_group/positioner_group.py +0 -0
  154. {bec_widgets-1.5.2 → bec_widgets-1.6.0}/bec_widgets/widgets/control/device_control/positioner_group/positioner_group.pyproject +0 -0
  155. {bec_widgets-1.5.2 → bec_widgets-1.6.0}/bec_widgets/widgets/control/device_control/positioner_group/positioner_group_plugin.py +0 -0
  156. {bec_widgets-1.5.2 → bec_widgets-1.6.0}/bec_widgets/widgets/control/device_control/positioner_group/register_positioner_group.py +0 -0
  157. {bec_widgets-1.5.2/bec_widgets/widgets/control/device_input/base_classes → bec_widgets-1.6.0/bec_widgets/widgets/control/device_input}/__init__.py +0 -0
  158. {bec_widgets-1.5.2/bec_widgets/widgets/control/device_input/device_combobox → bec_widgets-1.6.0/bec_widgets/widgets/control/device_input/base_classes}/__init__.py +0 -0
  159. {bec_widgets-1.5.2 → bec_widgets-1.6.0}/bec_widgets/widgets/control/device_input/base_classes/device_input_base.py +0 -0
  160. {bec_widgets-1.5.2 → bec_widgets-1.6.0}/bec_widgets/widgets/control/device_input/base_classes/device_signal_input_base.py +0 -0
  161. {bec_widgets-1.5.2/bec_widgets/widgets/control/device_input/device_line_edit → bec_widgets-1.6.0/bec_widgets/widgets/control/device_input/device_combobox}/__init__.py +0 -0
  162. {bec_widgets-1.5.2 → bec_widgets-1.6.0}/bec_widgets/widgets/control/device_input/device_combobox/device_combo_box.pyproject +0 -0
  163. {bec_widgets-1.5.2 → bec_widgets-1.6.0}/bec_widgets/widgets/control/device_input/device_combobox/device_combo_box_plugin.py +0 -0
  164. {bec_widgets-1.5.2 → bec_widgets-1.6.0}/bec_widgets/widgets/control/device_input/device_combobox/device_combobox.py +0 -0
  165. {bec_widgets-1.5.2 → bec_widgets-1.6.0}/bec_widgets/widgets/control/device_input/device_combobox/register_device_combo_box.py +0 -0
  166. {bec_widgets-1.5.2/bec_widgets/widgets/control/device_input/signal_combobox → bec_widgets-1.6.0/bec_widgets/widgets/control/device_input/device_line_edit}/__init__.py +0 -0
  167. {bec_widgets-1.5.2 → bec_widgets-1.6.0}/bec_widgets/widgets/control/device_input/device_line_edit/device_line_edit.py +0 -0
  168. {bec_widgets-1.5.2 → bec_widgets-1.6.0}/bec_widgets/widgets/control/device_input/device_line_edit/device_line_edit.pyproject +0 -0
  169. {bec_widgets-1.5.2 → bec_widgets-1.6.0}/bec_widgets/widgets/control/device_input/device_line_edit/device_line_edit_plugin.py +0 -0
  170. {bec_widgets-1.5.2 → bec_widgets-1.6.0}/bec_widgets/widgets/control/device_input/device_line_edit/register_device_line_edit.py +0 -0
  171. {bec_widgets-1.5.2/bec_widgets/widgets/control/device_input/signal_line_edit → bec_widgets-1.6.0/bec_widgets/widgets/control/device_input/signal_combobox}/__init__.py +0 -0
  172. {bec_widgets-1.5.2 → bec_widgets-1.6.0}/bec_widgets/widgets/control/device_input/signal_combobox/register_signal_combobox.py +0 -0
  173. {bec_widgets-1.5.2 → bec_widgets-1.6.0}/bec_widgets/widgets/control/device_input/signal_combobox/signal_combobox.py +0 -0
  174. {bec_widgets-1.5.2 → bec_widgets-1.6.0}/bec_widgets/widgets/control/device_input/signal_combobox/signal_combobox.pyproject +0 -0
  175. {bec_widgets-1.5.2 → bec_widgets-1.6.0}/bec_widgets/widgets/control/device_input/signal_combobox/signal_combobox_plugin.py +0 -0
  176. {bec_widgets-1.5.2/bec_widgets/widgets/dap → bec_widgets-1.6.0/bec_widgets/widgets/control/device_input/signal_line_edit}/__init__.py +0 -0
  177. {bec_widgets-1.5.2 → bec_widgets-1.6.0}/bec_widgets/widgets/control/device_input/signal_line_edit/register_signal_line_edit.py +0 -0
  178. {bec_widgets-1.5.2 → bec_widgets-1.6.0}/bec_widgets/widgets/control/device_input/signal_line_edit/signal_line_edit.py +0 -0
  179. {bec_widgets-1.5.2 → bec_widgets-1.6.0}/bec_widgets/widgets/control/device_input/signal_line_edit/signal_line_edit.pyproject +0 -0
  180. {bec_widgets-1.5.2 → bec_widgets-1.6.0}/bec_widgets/widgets/control/device_input/signal_line_edit/signal_line_edit_plugin.py +0 -0
  181. {bec_widgets-1.5.2 → bec_widgets-1.6.0}/bec_widgets/widgets/control/scan_control/__init__.py +0 -0
  182. {bec_widgets-1.5.2 → bec_widgets-1.6.0}/bec_widgets/widgets/control/scan_control/register_scan_control.py +0 -0
  183. {bec_widgets-1.5.2 → bec_widgets-1.6.0}/bec_widgets/widgets/control/scan_control/scan_control.py +0 -0
  184. {bec_widgets-1.5.2 → bec_widgets-1.6.0}/bec_widgets/widgets/control/scan_control/scan_control.pyproject +0 -0
  185. {bec_widgets-1.5.2 → bec_widgets-1.6.0}/bec_widgets/widgets/control/scan_control/scan_control_plugin.py +0 -0
  186. {bec_widgets-1.5.2 → bec_widgets-1.6.0}/bec_widgets/widgets/control/scan_control/scan_group_box.py +0 -0
  187. {bec_widgets-1.5.2/bec_widgets/widgets/dap/dap_combo_box → bec_widgets-1.6.0/bec_widgets/widgets/dap}/__init__.py +0 -0
  188. {bec_widgets-1.5.2/bec_widgets/widgets/dap/lmfit_dialog → bec_widgets-1.6.0/bec_widgets/widgets/dap/dap_combo_box}/__init__.py +0 -0
  189. {bec_widgets-1.5.2 → bec_widgets-1.6.0}/bec_widgets/widgets/dap/dap_combo_box/dap_combo_box.py +0 -0
  190. {bec_widgets-1.5.2 → bec_widgets-1.6.0}/bec_widgets/widgets/dap/dap_combo_box/dap_combo_box.pyproject +0 -0
  191. {bec_widgets-1.5.2 → bec_widgets-1.6.0}/bec_widgets/widgets/dap/dap_combo_box/dap_combo_box_plugin.py +0 -0
  192. {bec_widgets-1.5.2 → bec_widgets-1.6.0}/bec_widgets/widgets/dap/dap_combo_box/register_dap_combo_box.py +0 -0
  193. {bec_widgets-1.5.2/bec_widgets/widgets/editors → bec_widgets-1.6.0/bec_widgets/widgets/dap/lmfit_dialog}/__init__.py +0 -0
  194. {bec_widgets-1.5.2 → bec_widgets-1.6.0}/bec_widgets/widgets/dap/lmfit_dialog/lm_fit_dialog.pyproject +0 -0
  195. {bec_widgets-1.5.2 → bec_widgets-1.6.0}/bec_widgets/widgets/dap/lmfit_dialog/lm_fit_dialog_plugin.py +0 -0
  196. {bec_widgets-1.5.2 → bec_widgets-1.6.0}/bec_widgets/widgets/dap/lmfit_dialog/lmfit_dialog.py +0 -0
  197. {bec_widgets-1.5.2 → bec_widgets-1.6.0}/bec_widgets/widgets/dap/lmfit_dialog/lmfit_dialog_compact.ui +0 -0
  198. {bec_widgets-1.5.2 → bec_widgets-1.6.0}/bec_widgets/widgets/dap/lmfit_dialog/lmfit_dialog_vertical.ui +0 -0
  199. {bec_widgets-1.5.2 → bec_widgets-1.6.0}/bec_widgets/widgets/dap/lmfit_dialog/register_lm_fit_dialog.py +0 -0
  200. {bec_widgets-1.5.2/bec_widgets/widgets/editors/console → bec_widgets-1.6.0/bec_widgets/widgets/editors}/__init__.py +0 -0
  201. {bec_widgets-1.5.2/bec_widgets/widgets/editors/jupyter_console → bec_widgets-1.6.0/bec_widgets/widgets/editors/console}/__init__.py +0 -0
  202. {bec_widgets-1.5.2 → bec_widgets-1.6.0}/bec_widgets/widgets/editors/console/console.py +0 -0
  203. {bec_widgets-1.5.2 → bec_widgets-1.6.0}/bec_widgets/widgets/editors/console/console.pyproject +0 -0
  204. {bec_widgets-1.5.2 → bec_widgets-1.6.0}/bec_widgets/widgets/editors/console/console_plugin.py +0 -0
  205. {bec_widgets-1.5.2 → bec_widgets-1.6.0}/bec_widgets/widgets/editors/console/register_console.py +0 -0
  206. {bec_widgets-1.5.2/bec_widgets/widgets/editors/text_box → bec_widgets-1.6.0/bec_widgets/widgets/editors/jupyter_console}/__init__.py +0 -0
  207. {bec_widgets-1.5.2 → bec_widgets-1.6.0}/bec_widgets/widgets/editors/jupyter_console/jupyter_console.py +0 -0
  208. {bec_widgets-1.5.2/bec_widgets/widgets/editors/vscode → bec_widgets-1.6.0/bec_widgets/widgets/editors/text_box}/__init__.py +0 -0
  209. {bec_widgets-1.5.2 → bec_widgets-1.6.0}/bec_widgets/widgets/editors/text_box/register_text_box.py +0 -0
  210. {bec_widgets-1.5.2 → bec_widgets-1.6.0}/bec_widgets/widgets/editors/text_box/text_box.py +0 -0
  211. {bec_widgets-1.5.2 → bec_widgets-1.6.0}/bec_widgets/widgets/editors/text_box/text_box.pyproject +0 -0
  212. {bec_widgets-1.5.2 → bec_widgets-1.6.0}/bec_widgets/widgets/editors/text_box/text_box_plugin.py +0 -0
  213. {bec_widgets-1.5.2/bec_widgets/widgets/editors/website → bec_widgets-1.6.0/bec_widgets/widgets/editors/vscode}/__init__.py +0 -0
  214. {bec_widgets-1.5.2 → bec_widgets-1.6.0}/bec_widgets/widgets/editors/vscode/register_vs_code_editor.py +0 -0
  215. {bec_widgets-1.5.2 → bec_widgets-1.6.0}/bec_widgets/widgets/editors/vscode/vs_code_editor.pyproject +0 -0
  216. {bec_widgets-1.5.2 → bec_widgets-1.6.0}/bec_widgets/widgets/editors/vscode/vs_code_editor_plugin.py +0 -0
  217. {bec_widgets-1.5.2 → bec_widgets-1.6.0}/bec_widgets/widgets/editors/vscode/vscode.py +0 -0
  218. {bec_widgets-1.5.2/bec_widgets/widgets/plots → bec_widgets-1.6.0/bec_widgets/widgets/editors/website}/__init__.py +0 -0
  219. {bec_widgets-1.5.2 → bec_widgets-1.6.0}/bec_widgets/widgets/editors/website/register_website_widget.py +0 -0
  220. {bec_widgets-1.5.2 → bec_widgets-1.6.0}/bec_widgets/widgets/editors/website/website.py +0 -0
  221. {bec_widgets-1.5.2 → bec_widgets-1.6.0}/bec_widgets/widgets/editors/website/website_widget.pyproject +0 -0
  222. {bec_widgets-1.5.2 → bec_widgets-1.6.0}/bec_widgets/widgets/editors/website/website_widget_plugin.py +0 -0
  223. {bec_widgets-1.5.2/bec_widgets/widgets/plots/image → bec_widgets-1.6.0/bec_widgets/widgets/plots}/__init__.py +0 -0
  224. {bec_widgets-1.5.2/bec_widgets/widgets/plots/motor_map → bec_widgets-1.6.0/bec_widgets/widgets/plots/image}/__init__.py +0 -0
  225. {bec_widgets-1.5.2 → bec_widgets-1.6.0}/bec_widgets/widgets/plots/image/bec_image_widget.pyproject +0 -0
  226. {bec_widgets-1.5.2 → bec_widgets-1.6.0}/bec_widgets/widgets/plots/image/bec_image_widget_plugin.py +0 -0
  227. {bec_widgets-1.5.2 → bec_widgets-1.6.0}/bec_widgets/widgets/plots/image/image_widget.py +0 -0
  228. {bec_widgets-1.5.2 → bec_widgets-1.6.0}/bec_widgets/widgets/plots/image/register_bec_image_widget.py +0 -0
  229. {bec_widgets-1.5.2/bec_widgets/widgets/plots/motor_map/motor_map_dialog → bec_widgets-1.6.0/bec_widgets/widgets/plots/motor_map}/__init__.py +0 -0
  230. {bec_widgets-1.5.2 → bec_widgets-1.6.0}/bec_widgets/widgets/plots/motor_map/bec_motor_map_widget.pyproject +0 -0
  231. {bec_widgets-1.5.2 → bec_widgets-1.6.0}/bec_widgets/widgets/plots/motor_map/bec_motor_map_widget_plugin.py +0 -0
  232. {bec_widgets-1.5.2/bec_widgets/widgets/plots/multi_waveform → bec_widgets-1.6.0/bec_widgets/widgets/plots/motor_map/motor_map_dialog}/__init__.py +0 -0
  233. {bec_widgets-1.5.2 → bec_widgets-1.6.0}/bec_widgets/widgets/plots/motor_map/motor_map_dialog/motor_map_settings.py +0 -0
  234. {bec_widgets-1.5.2 → bec_widgets-1.6.0}/bec_widgets/widgets/plots/motor_map/motor_map_dialog/motor_map_settings.ui +0 -0
  235. {bec_widgets-1.5.2 → bec_widgets-1.6.0}/bec_widgets/widgets/plots/motor_map/motor_map_widget.py +0 -0
  236. {bec_widgets-1.5.2 → bec_widgets-1.6.0}/bec_widgets/widgets/plots/motor_map/register_bec_motor_map_widget.py +0 -0
  237. {bec_widgets-1.5.2/bec_widgets/widgets/plots/waveform → bec_widgets-1.6.0/bec_widgets/widgets/plots/multi_waveform}/__init__.py +0 -0
  238. {bec_widgets-1.5.2 → bec_widgets-1.6.0}/bec_widgets/widgets/plots/multi_waveform/bec_multi_waveform_widget.pyproject +0 -0
  239. {bec_widgets-1.5.2 → bec_widgets-1.6.0}/bec_widgets/widgets/plots/multi_waveform/bec_multi_waveform_widget_plugin.py +0 -0
  240. {bec_widgets-1.5.2 → bec_widgets-1.6.0}/bec_widgets/widgets/plots/multi_waveform/multi_waveform_controls.ui +0 -0
  241. {bec_widgets-1.5.2 → bec_widgets-1.6.0}/bec_widgets/widgets/plots/multi_waveform/multi_waveform_widget.py +0 -0
  242. {bec_widgets-1.5.2 → bec_widgets-1.6.0}/bec_widgets/widgets/plots/multi_waveform/register_bec_multi_waveform_widget.py +0 -0
  243. {bec_widgets-1.5.2/bec_widgets/widgets/plots/waveform/waveform_popups → bec_widgets-1.6.0/bec_widgets/widgets/plots/waveform}/__init__.py +0 -0
  244. {bec_widgets-1.5.2 → bec_widgets-1.6.0}/bec_widgets/widgets/plots/waveform/bec_waveform_widget.pyproject +0 -0
  245. {bec_widgets-1.5.2 → bec_widgets-1.6.0}/bec_widgets/widgets/plots/waveform/bec_waveform_widget_plugin.py +0 -0
  246. {bec_widgets-1.5.2 → bec_widgets-1.6.0}/bec_widgets/widgets/plots/waveform/register_bec_waveform_widget.py +0 -0
  247. {bec_widgets-1.5.2/bec_widgets/widgets/plots/waveform/waveform_popups/curve_dialog → bec_widgets-1.6.0/bec_widgets/widgets/plots/waveform/waveform_popups}/__init__.py +0 -0
  248. {bec_widgets-1.5.2/bec_widgets/widgets/plots/waveform/waveform_popups/dap_summary_dialog → bec_widgets-1.6.0/bec_widgets/widgets/plots/waveform/waveform_popups/curve_dialog}/__init__.py +0 -0
  249. {bec_widgets-1.5.2 → bec_widgets-1.6.0}/bec_widgets/widgets/plots/waveform/waveform_popups/curve_dialog/curve_dialog.py +0 -0
  250. {bec_widgets-1.5.2 → bec_widgets-1.6.0}/bec_widgets/widgets/plots/waveform/waveform_popups/curve_dialog/curve_dialog.ui +0 -0
  251. {bec_widgets-1.5.2/bec_widgets/widgets/progress → bec_widgets-1.6.0/bec_widgets/widgets/plots/waveform/waveform_popups/dap_summary_dialog}/__init__.py +0 -0
  252. {bec_widgets-1.5.2 → bec_widgets-1.6.0}/bec_widgets/widgets/plots/waveform/waveform_popups/dap_summary_dialog/dap_summary_dialog.py +0 -0
  253. {bec_widgets-1.5.2 → bec_widgets-1.6.0}/bec_widgets/widgets/plots/waveform/waveform_widget.py +0 -0
  254. {bec_widgets-1.5.2/bec_widgets/widgets/progress/bec_progressbar → bec_widgets-1.6.0/bec_widgets/widgets/progress}/__init__.py +0 -0
  255. {bec_widgets-1.5.2/bec_widgets/widgets/services → bec_widgets-1.6.0/bec_widgets/widgets/progress/bec_progressbar}/__init__.py +0 -0
  256. {bec_widgets-1.5.2 → bec_widgets-1.6.0}/bec_widgets/widgets/progress/bec_progressbar/bec_progress_bar.pyproject +0 -0
  257. {bec_widgets-1.5.2 → bec_widgets-1.6.0}/bec_widgets/widgets/progress/bec_progressbar/bec_progress_bar_plugin.py +0 -0
  258. {bec_widgets-1.5.2 → bec_widgets-1.6.0}/bec_widgets/widgets/progress/bec_progressbar/bec_progressbar.py +0 -0
  259. {bec_widgets-1.5.2 → bec_widgets-1.6.0}/bec_widgets/widgets/progress/bec_progressbar/register_bec_progress_bar.py +0 -0
  260. {bec_widgets-1.5.2 → bec_widgets-1.6.0}/bec_widgets/widgets/progress/ring_progress_bar/__init__.py +0 -0
  261. {bec_widgets-1.5.2 → bec_widgets-1.6.0}/bec_widgets/widgets/progress/ring_progress_bar/register_ring_progress_bar.py +0 -0
  262. {bec_widgets-1.5.2 → bec_widgets-1.6.0}/bec_widgets/widgets/progress/ring_progress_bar/ring.py +0 -0
  263. {bec_widgets-1.5.2 → bec_widgets-1.6.0}/bec_widgets/widgets/progress/ring_progress_bar/ring_progress_bar.py +0 -0
  264. {bec_widgets-1.5.2 → bec_widgets-1.6.0}/bec_widgets/widgets/progress/ring_progress_bar/ring_progress_bar.pyproject +0 -0
  265. {bec_widgets-1.5.2 → bec_widgets-1.6.0}/bec_widgets/widgets/progress/ring_progress_bar/ring_progress_bar_plugin.py +0 -0
  266. {bec_widgets-1.5.2/bec_widgets/widgets/services/bec_queue → bec_widgets-1.6.0/bec_widgets/widgets/services}/__init__.py +0 -0
  267. {bec_widgets-1.5.2/bec_widgets/widgets/services/bec_status_box → bec_widgets-1.6.0/bec_widgets/widgets/services/bec_queue}/__init__.py +0 -0
  268. {bec_widgets-1.5.2 → bec_widgets-1.6.0}/bec_widgets/widgets/services/bec_queue/bec_queue.py +0 -0
  269. {bec_widgets-1.5.2 → bec_widgets-1.6.0}/bec_widgets/widgets/services/bec_queue/bec_queue.pyproject +0 -0
  270. {bec_widgets-1.5.2 → bec_widgets-1.6.0}/bec_widgets/widgets/services/bec_queue/bec_queue_plugin.py +0 -0
  271. {bec_widgets-1.5.2 → bec_widgets-1.6.0}/bec_widgets/widgets/services/bec_queue/register_bec_queue.py +0 -0
  272. {bec_widgets-1.5.2/bec_widgets/widgets/services/device_browser → bec_widgets-1.6.0/bec_widgets/widgets/services/bec_status_box}/__init__.py +0 -0
  273. {bec_widgets-1.5.2 → bec_widgets-1.6.0}/bec_widgets/widgets/services/bec_status_box/bec_status_box.py +0 -0
  274. {bec_widgets-1.5.2 → bec_widgets-1.6.0}/bec_widgets/widgets/services/bec_status_box/bec_status_box.pyproject +0 -0
  275. {bec_widgets-1.5.2 → bec_widgets-1.6.0}/bec_widgets/widgets/services/bec_status_box/bec_status_box_plugin.py +0 -0
  276. {bec_widgets-1.5.2 → bec_widgets-1.6.0}/bec_widgets/widgets/services/bec_status_box/register_bec_status_box.py +0 -0
  277. {bec_widgets-1.5.2 → bec_widgets-1.6.0}/bec_widgets/widgets/services/bec_status_box/status_item.py +0 -0
  278. {bec_widgets-1.5.2/bec_widgets/widgets/utility → bec_widgets-1.6.0/bec_widgets/widgets/services/device_browser}/__init__.py +0 -0
  279. {bec_widgets-1.5.2 → bec_widgets-1.6.0}/bec_widgets/widgets/services/device_browser/device_browser.py +0 -0
  280. {bec_widgets-1.5.2 → bec_widgets-1.6.0}/bec_widgets/widgets/services/device_browser/device_browser.pyproject +0 -0
  281. {bec_widgets-1.5.2 → bec_widgets-1.6.0}/bec_widgets/widgets/services/device_browser/device_browser.ui +0 -0
  282. {bec_widgets-1.5.2 → bec_widgets-1.6.0}/bec_widgets/widgets/services/device_browser/device_browser_plugin.py +0 -0
  283. {bec_widgets-1.5.2 → bec_widgets-1.6.0}/bec_widgets/widgets/services/device_browser/device_item/__init__.py +0 -0
  284. {bec_widgets-1.5.2 → bec_widgets-1.6.0}/bec_widgets/widgets/services/device_browser/register_device_browser.py +0 -0
  285. {bec_widgets-1.5.2/bec_widgets/widgets/utility/spinner → bec_widgets-1.6.0/bec_widgets/widgets/utility}/__init__.py +0 -0
  286. {bec_widgets-1.5.2/bec_widgets/widgets/utility/toggle → bec_widgets-1.6.0/bec_widgets/widgets/utility/spinner}/__init__.py +0 -0
  287. {bec_widgets-1.5.2 → bec_widgets-1.6.0}/bec_widgets/widgets/utility/spinner/register_spinner_widget.py +0 -0
  288. {bec_widgets-1.5.2 → bec_widgets-1.6.0}/bec_widgets/widgets/utility/spinner/spinner.py +0 -0
  289. {bec_widgets-1.5.2 → bec_widgets-1.6.0}/bec_widgets/widgets/utility/spinner/spinner_widget.pyproject +0 -0
  290. {bec_widgets-1.5.2 → bec_widgets-1.6.0}/bec_widgets/widgets/utility/spinner/spinner_widget_plugin.py +0 -0
  291. {bec_widgets-1.5.2/bec_widgets/widgets/utility/visual → bec_widgets-1.6.0/bec_widgets/widgets/utility/toggle}/__init__.py +0 -0
  292. {bec_widgets-1.5.2 → bec_widgets-1.6.0}/bec_widgets/widgets/utility/toggle/register_toggle_switch.py +0 -0
  293. {bec_widgets-1.5.2 → bec_widgets-1.6.0}/bec_widgets/widgets/utility/toggle/toggle.py +0 -0
  294. {bec_widgets-1.5.2 → bec_widgets-1.6.0}/bec_widgets/widgets/utility/toggle/toggle_switch.pyproject +0 -0
  295. {bec_widgets-1.5.2 → bec_widgets-1.6.0}/bec_widgets/widgets/utility/toggle/toggle_switch_plugin.py +0 -0
  296. {bec_widgets-1.5.2/bec_widgets/widgets/utility/visual/color_button → bec_widgets-1.6.0/bec_widgets/widgets/utility/visual}/__init__.py +0 -0
  297. {bec_widgets-1.5.2/bec_widgets/widgets/utility/visual/colormap_selector → bec_widgets-1.6.0/bec_widgets/widgets/utility/visual/color_button}/__init__.py +0 -0
  298. {bec_widgets-1.5.2 → bec_widgets-1.6.0}/bec_widgets/widgets/utility/visual/color_button/color_button.py +0 -0
  299. {bec_widgets-1.5.2 → bec_widgets-1.6.0}/bec_widgets/widgets/utility/visual/color_button/color_button.pyproject +0 -0
  300. {bec_widgets-1.5.2 → bec_widgets-1.6.0}/bec_widgets/widgets/utility/visual/color_button/color_button_plugin.py +0 -0
  301. {bec_widgets-1.5.2 → bec_widgets-1.6.0}/bec_widgets/widgets/utility/visual/color_button/register_color_button.py +0 -0
  302. {bec_widgets-1.5.2/bec_widgets/widgets/utility/visual/colormap_widget → bec_widgets-1.6.0/bec_widgets/widgets/utility/visual/colormap_selector}/__init__.py +0 -0
  303. {bec_widgets-1.5.2 → bec_widgets-1.6.0}/bec_widgets/widgets/utility/visual/colormap_selector/colormap_selector.py +0 -0
  304. {bec_widgets-1.5.2 → bec_widgets-1.6.0}/bec_widgets/widgets/utility/visual/colormap_selector/colormap_selector.pyproject +0 -0
  305. {bec_widgets-1.5.2 → bec_widgets-1.6.0}/bec_widgets/widgets/utility/visual/colormap_selector/colormap_selector_plugin.py +0 -0
  306. {bec_widgets-1.5.2 → bec_widgets-1.6.0}/bec_widgets/widgets/utility/visual/colormap_selector/register_colormap_selector.py +0 -0
  307. {bec_widgets-1.5.2/bec_widgets/widgets/utility/visual/dark_mode_button → bec_widgets-1.6.0/bec_widgets/widgets/utility/visual/colormap_widget}/__init__.py +0 -0
  308. {bec_widgets-1.5.2 → bec_widgets-1.6.0}/bec_widgets/widgets/utility/visual/colormap_widget/bec_color_map_widget.pyproject +0 -0
  309. {bec_widgets-1.5.2 → bec_widgets-1.6.0}/bec_widgets/widgets/utility/visual/colormap_widget/bec_color_map_widget_plugin.py +0 -0
  310. {bec_widgets-1.5.2 → bec_widgets-1.6.0}/bec_widgets/widgets/utility/visual/colormap_widget/colormap_widget.py +0 -0
  311. {bec_widgets-1.5.2 → bec_widgets-1.6.0}/bec_widgets/widgets/utility/visual/colormap_widget/register_bec_color_map_widget.py +0 -0
  312. {bec_widgets-1.5.2 → bec_widgets-1.6.0}/bec_widgets/widgets/utility/visual/dark_mode_button/dark_mode_button.py +0 -0
  313. {bec_widgets-1.5.2 → bec_widgets-1.6.0}/bec_widgets/widgets/utility/visual/dark_mode_button/dark_mode_button.pyproject +0 -0
  314. {bec_widgets-1.5.2 → bec_widgets-1.6.0}/bec_widgets/widgets/utility/visual/dark_mode_button/dark_mode_button_plugin.py +0 -0
  315. {bec_widgets-1.5.2 → bec_widgets-1.6.0}/bec_widgets/widgets/utility/visual/dark_mode_button/register_dark_mode_button.py +0 -0
@@ -12,6 +12,9 @@ variables:
12
12
  description: ophyd_devices branch
13
13
  value: main
14
14
  CHILD_PIPELINE_BRANCH: $CI_DEFAULT_BRANCH
15
+ CHECK_PKG_VERSIONS:
16
+ description: Whether to run additional tests against min/max/random selection of dependencies. Set to 1 for running.
17
+ value: 0
15
18
 
16
19
  workflow:
17
20
  rules:
@@ -31,8 +34,9 @@ include:
31
34
  inputs:
32
35
  stage: test
33
36
  path: "."
34
- pytest_args: "-v --random-order tests/"
35
- exclude_packages: ""
37
+ pytest_args: "-v,--random-order,tests/unit_tests"
38
+ ignore_dep_group: "pyqt6"
39
+ pip_args: ".[dev,pyside6]"
36
40
 
37
41
  # different stages in the pipeline
38
42
  stages:
@@ -1,6 +1,80 @@
1
1
  # CHANGELOG
2
2
 
3
3
 
4
+ ## v1.6.0 (2024-11-27)
5
+
6
+ ### Bug Fixes
7
+
8
+ - **tests**: Make use of BECDockArea with client mixin to start server and use it in tests
9
+ ([`da18c2c`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/da18c2ceecf9aeaf0e0ea9b78f4c867b27b9c314))
10
+
11
+ Depending on the test, auto-updates are enabled or not.
12
+
13
+ - Differentiate click and drag for DeviceItem, adapt tests accordingly
14
+ ([`cffcdf2`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/cffcdf292363249bcc7efa9d130431d0bc727fda))
15
+
16
+ This fixes the blocking "QDrag.exec_()" on Linux, indeed before the drag'n'drop operation was
17
+ started with a simple click and it was waiting for drop forever. Now there are 2 different cases,
18
+ click or drag'n'drop - the drag'n'drop test actually moves the mouse and releases the button.
19
+
20
+ - **server**: Use dock area by default
21
+ ([`2fe7f5e`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/2fe7f5e1510a5ea72676045e6ea3485e6b11c220))
22
+
23
+ - **rpc**: Gui hide/show also hide/show all floating docks
24
+ ([`c27d058`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/c27d058b01fe604eccec76454e39360122e48515))
25
+
26
+ - Do not quit automatically when last window is "closed"
27
+ ([`96e255e`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/96e255e4ef394eb79006a66d13e06775ae235667))
28
+
29
+ Qt confuses closed and hidden
30
+
31
+ - No need to call inspect.signature - it can fail on methods coming from C (like Qt methods)
32
+ ([`6029246`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/60292465e9e52d3248ae681c68c07298b9b3ce14))
33
+
34
+ - Add back accidentally removed variables
35
+ ([`e998352`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/e9983521ed2a1c04af048a55ece70a1943a84313))
36
+
37
+ ### Features
38
+
39
+ - '._auto_updates_enabled' attribute can be used to activate auto updates installation in
40
+ BECDockArea
41
+ ([`31d8703`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/31d87036c9801e639a7ca6fc003c90e0c4edb19d))
42
+
43
+ - Add rpc_id member to client objects
44
+ ([`3ba0b1d`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/3ba0b1daf5b83da840e90fbbc063ed7b86ebe99b))
45
+
46
+ - **client**: Add show()/hide() methods to "gui" object
47
+ ([`e68e2b5`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/e68e2b5978339475b97555c3e20795807932fbc9))
48
+
49
+ - **server**: Add main window, with proper gui_id derived from given id
50
+ ([`daf6ea0`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/daf6ea0159c9ffc7b53bb7ae6b9abc16a302972c))
51
+
52
+ - Add main window container widget
53
+ ([`f80ec33`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/f80ec33ae5a261dbcab901ae30f4cc802316e554))
54
+
55
+ - Asynchronous .start() for GUI
56
+ ([`2047e48`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/2047e484d5a4b2f5ea494a1e49035b35b1bbde35))
57
+
58
+ - Do not take focus when GUI is loaded
59
+ ([`1f71d8e`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/1f71d8e5eded9952f9b34bfc427e2ff44cf5fc18))
60
+
61
+ - Add '--hide' argument to BEC GUI server
62
+ ([`1f60fec`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/1f60fec7201ed252d7e49bf16f2166ee7f6bed6a))
63
+
64
+
65
+ ## v1.5.3 (2024-11-21)
66
+
67
+ ### Bug Fixes
68
+
69
+ - **alignment_1d**: Fix imports after widget module refactor
70
+ ([`e71e3b2`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/e71e3b2956feb3f3051e538432133f6e85bbd5a8))
71
+
72
+ ### Continuous Integration
73
+
74
+ - Fix ci syntax for package-dep-job
75
+ ([`6e39bdb`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/6e39bdbf53b147c8ff163527b45691835ce9a2eb))
76
+
77
+
4
78
  ## v1.5.2 (2024-11-18)
5
79
 
6
80
  ### Bug Fixes
@@ -134,83 +208,3 @@
134
208
 
135
209
 
136
210
  ## v1.1.0 (2024-10-25)
137
-
138
- ### Features
139
-
140
- - Add filter i/o utility class
141
- ([`0350833`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/0350833f36e0a7cadce4173f9b1d1fbfdf985375))
142
-
143
- ### Refactoring
144
-
145
- - Do not flush selection upon receiving config update; allow widgetIO to receive kwargs to be able
146
- to use get_value to receive string instead of int for QComboBox
147
- ([`91959e8`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/91959e82de8586934af3ebb5aaa0923930effc51))
148
-
149
- - Allow to set selection in DeviceInput; automatic update of selection on device config update;
150
- cleanup
151
- ([`5eb15b7`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/5eb15b785f12e30eb8ccbc56d4ad9e759a4cf5eb))
152
-
153
- - Cleanup, added device_signal for signal inputs
154
- ([`6fb2055`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/6fb20552ff57978f4aeb79fd7f062f8d6b5581e7))
155
-
156
- ### Testing
157
-
158
- - **scan_control**: Tests added for grid_scan to ensure scan_args signal validity
159
- ([`acb7902`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/acb79020d4be546efc001ff47b6f5cdba2ee9375))
160
-
161
-
162
- ## v1.0.2 (2024-10-22)
163
-
164
- ### Bug Fixes
165
-
166
- - **scan_control**: Scan args signal fixed to emit list instead of hardcoded structure
167
- ([`4f5448c`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/4f5448cf51a204e077af162c7f0aed1f1a60e57a))
168
-
169
-
170
- ## v1.0.1 (2024-10-22)
171
-
172
- ### Bug Fixes
173
-
174
- - **waveform**: Added support for live_data and data access
175
- ([`7469c89`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/7469c892c8076fc09e61f173df6920c551241cec))
176
-
177
-
178
- ## v1.0.0 (2024-10-18)
179
-
180
- ### Bug Fixes
181
-
182
- - **crosshair**: Downsample clear markers
183
- ([`f9a889f`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/f9a889fc6d380b9e587edcb465203122ea0bffc1))
184
-
185
- ### Features
186
-
187
- - Ability to disable scatter from waveform & compatible crosshair with down sampling
188
- ([`2ab12ed`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/2ab12ed60abb995abc381d9330fdcf399796d9e5))
189
-
190
-
191
- ## v0.119.0 (2024-10-17)
192
-
193
- ### Bug Fixes
194
-
195
- - Fix syntax due to change of api for simulated devices
196
- ([`19f4e40`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/19f4e407e00ee242973ca4c3f90e4e41a4d3e315))
197
-
198
- - Remove wrongly scoped test
199
- ([`a23841b`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/a23841b2553dc7162da943715d58275c7dc39ed9))
200
-
201
- - Rename 'compact' property -> 'compact_view'
202
- ([`6982711`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/6982711fea5fb8a73845ed7c0692e3ec53ef7871))
203
-
204
- - Alignment 1D update, make app window a main window (in .ui file)
205
- ([`0015f0e`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/0015f0e2d62adc02d3ef334e1f6dbb2d0288fec6))
206
-
207
- ### Features
208
-
209
- - New PositionerGroup widget
210
- ([`af9655d`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/af9655de0c541092437accfbaa779628a2f48ccb))
211
-
212
- - Add 'expand_popup' property to CompactPopupWidget
213
- ([`e4121a0`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/e4121a01cb6b8d496e630cd43bc642b994b8f310))
214
-
215
- This property tells if expand should show a popup (by default), or if the widget should expand
216
- in-place
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: bec_widgets
3
- Version: 1.5.2
3
+ Version: 1.6.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
@@ -18,9 +18,11 @@ from bec_widgets.utils import UILoader
18
18
  from bec_widgets.utils.bec_dispatcher import BECDispatcher
19
19
  from bec_widgets.utils.colors import get_accent_colors
20
20
  from bec_widgets.widgets.control.buttons.stop_button.stop_button import StopButton
21
- from bec_widgets.widgets.control.device_control.positioner_group import PositionerGroup
22
- from bec_widgets.widgets.dap.lmfit_dialog import LMFitDialog
23
- from bec_widgets.widgets.plots.waveform import BECWaveformWidget
21
+ from bec_widgets.widgets.control.device_control.positioner_group.positioner_group import (
22
+ PositionerGroup,
23
+ )
24
+ from bec_widgets.widgets.dap.lmfit_dialog.lmfit_dialog import LMFitDialog
25
+ from bec_widgets.widgets.plots.waveform.waveform_widget import BECWaveformWidget
24
26
  from bec_widgets.widgets.progress.bec_progressbar.bec_progressbar import BECProgressBar
25
27
 
26
28
  MODULE_PATH = os.path.dirname(bec_widgets.__file__)
@@ -15,6 +15,37 @@ class Widgets(str, enum.Enum):
15
15
  Enum for the available widgets.
16
16
  """
17
17
 
18
+ AbortButton = "AbortButton"
19
+ BECColorMapWidget = "BECColorMapWidget"
20
+ BECDockArea = "BECDockArea"
21
+ BECImageWidget = "BECImageWidget"
22
+ BECMainWindow = "BECMainWindow"
23
+ BECMotorMapWidget = "BECMotorMapWidget"
24
+ BECMultiWaveformWidget = "BECMultiWaveformWidget"
25
+ BECProgressBar = "BECProgressBar"
26
+ BECQueue = "BECQueue"
27
+ BECStatusBox = "BECStatusBox"
28
+ BECWaveformWidget = "BECWaveformWidget"
29
+ DapComboBox = "DapComboBox"
30
+ DarkModeButton = "DarkModeButton"
31
+ DeviceBrowser = "DeviceBrowser"
32
+ DeviceComboBox = "DeviceComboBox"
33
+ DeviceLineEdit = "DeviceLineEdit"
34
+ LMFitDialog = "LMFitDialog"
35
+ PositionIndicator = "PositionIndicator"
36
+ PositionerBox = "PositionerBox"
37
+ PositionerControlLine = "PositionerControlLine"
38
+ ResetButton = "ResetButton"
39
+ ResumeButton = "ResumeButton"
40
+ RingProgressBar = "RingProgressBar"
41
+ ScanControl = "ScanControl"
42
+ SignalComboBox = "SignalComboBox"
43
+ SignalLineEdit = "SignalLineEdit"
44
+ StopButton = "StopButton"
45
+ TextBox = "TextBox"
46
+ VSCodeEditor = "VSCodeEditor"
47
+ WebsiteWidget = "WebsiteWidget"
48
+
18
49
 
19
50
  class AbortButton(RPCBase):
20
51
  @property
@@ -431,6 +462,18 @@ class BECDockArea(RPCBase, BECGuiClientMixin):
431
462
  list: The temporary areas in the dock area.
432
463
  """
433
464
 
465
+ @rpc_call
466
+ def show(self):
467
+ """
468
+ Show all windows including floating docks.
469
+ """
470
+
471
+ @rpc_call
472
+ def hide(self):
473
+ """
474
+ Hide all windows including floating docks.
475
+ """
476
+
434
477
 
435
478
  class BECFigure(RPCBase):
436
479
  @property
@@ -1343,6 +1386,31 @@ class BECImageWidget(RPCBase):
1343
1386
  """
1344
1387
 
1345
1388
 
1389
+ class BECMainWindow(RPCBase):
1390
+ @property
1391
+ @rpc_call
1392
+ def _config_dict(self) -> "dict":
1393
+ """
1394
+ Get the configuration of the widget.
1395
+
1396
+ Returns:
1397
+ dict: The configuration of the widget.
1398
+ """
1399
+
1400
+ @rpc_call
1401
+ def _get_all_rpc(self) -> "dict":
1402
+ """
1403
+ Get all registered RPC objects.
1404
+ """
1405
+
1406
+ @property
1407
+ @rpc_call
1408
+ def _rpc_id(self) -> "str":
1409
+ """
1410
+ Get the RPC ID of the widget.
1411
+ """
1412
+
1413
+
1346
1414
  class BECMotorMap(RPCBase):
1347
1415
  @property
1348
1416
  @rpc_call
@@ -2207,6 +2275,13 @@ class BECQueue(RPCBase):
2207
2275
  Get all registered RPC objects.
2208
2276
  """
2209
2277
 
2278
+ @property
2279
+ @rpc_call
2280
+ def _rpc_id(self) -> "str":
2281
+ """
2282
+ Get the RPC ID of the widget.
2283
+ """
2284
+
2210
2285
 
2211
2286
  class BECStatusBox(RPCBase):
2212
2287
  @property
@@ -2225,6 +2300,13 @@ class BECStatusBox(RPCBase):
2225
2300
  Get all registered RPC objects.
2226
2301
  """
2227
2302
 
2303
+ @property
2304
+ @rpc_call
2305
+ def _rpc_id(self) -> "str":
2306
+ """
2307
+ Get the RPC ID of the widget.
2308
+ """
2309
+
2228
2310
 
2229
2311
  class BECWaveform(RPCBase):
2230
2312
  @property
@@ -2947,6 +3029,13 @@ class DeviceBrowser(RPCBase):
2947
3029
  Get all registered RPC objects.
2948
3030
  """
2949
3031
 
3032
+ @property
3033
+ @rpc_call
3034
+ def _rpc_id(self) -> "str":
3035
+ """
3036
+ Get the RPC ID of the widget.
3037
+ """
3038
+
2950
3039
 
2951
3040
  class DeviceComboBox(RPCBase):
2952
3041
  @property
@@ -2965,6 +3054,13 @@ class DeviceComboBox(RPCBase):
2965
3054
  Get all registered RPC objects.
2966
3055
  """
2967
3056
 
3057
+ @property
3058
+ @rpc_call
3059
+ def _rpc_id(self) -> "str":
3060
+ """
3061
+ Get the RPC ID of the widget.
3062
+ """
3063
+
2968
3064
 
2969
3065
  class DeviceInputBase(RPCBase):
2970
3066
  @property
@@ -2983,6 +3079,13 @@ class DeviceInputBase(RPCBase):
2983
3079
  Get all registered RPC objects.
2984
3080
  """
2985
3081
 
3082
+ @property
3083
+ @rpc_call
3084
+ def _rpc_id(self) -> "str":
3085
+ """
3086
+ Get the RPC ID of the widget.
3087
+ """
3088
+
2986
3089
 
2987
3090
  class DeviceLineEdit(RPCBase):
2988
3091
  @property
@@ -3001,6 +3104,13 @@ class DeviceLineEdit(RPCBase):
3001
3104
  Get all registered RPC objects.
3002
3105
  """
3003
3106
 
3107
+ @property
3108
+ @rpc_call
3109
+ def _rpc_id(self) -> "str":
3110
+ """
3111
+ Get the RPC ID of the widget.
3112
+ """
3113
+
3004
3114
 
3005
3115
  class DeviceSignalInputBase(RPCBase):
3006
3116
  @property
@@ -3019,6 +3129,13 @@ class DeviceSignalInputBase(RPCBase):
3019
3129
  Get all registered RPC objects.
3020
3130
  """
3021
3131
 
3132
+ @property
3133
+ @rpc_call
3134
+ def _rpc_id(self) -> "str":
3135
+ """
3136
+ Get the RPC ID of the widget.
3137
+ """
3138
+
3022
3139
 
3023
3140
  class LMFitDialog(RPCBase):
3024
3141
  @property
@@ -3037,6 +3154,13 @@ class LMFitDialog(RPCBase):
3037
3154
  Get all registered RPC objects.
3038
3155
  """
3039
3156
 
3157
+ @property
3158
+ @rpc_call
3159
+ def _rpc_id(self) -> "str":
3160
+ """
3161
+ Get the RPC ID of the widget.
3162
+ """
3163
+
3040
3164
 
3041
3165
  class PositionIndicator(RPCBase):
3042
3166
  @rpc_call
@@ -3126,6 +3250,13 @@ class ResetButton(RPCBase):
3126
3250
  Get all registered RPC objects.
3127
3251
  """
3128
3252
 
3253
+ @property
3254
+ @rpc_call
3255
+ def _rpc_id(self) -> "str":
3256
+ """
3257
+ Get the RPC ID of the widget.
3258
+ """
3259
+
3129
3260
 
3130
3261
  class ResumeButton(RPCBase):
3131
3262
  @property
@@ -3144,6 +3275,13 @@ class ResumeButton(RPCBase):
3144
3275
  Get all registered RPC objects.
3145
3276
  """
3146
3277
 
3278
+ @property
3279
+ @rpc_call
3280
+ def _rpc_id(self) -> "str":
3281
+ """
3282
+ Get the RPC ID of the widget.
3283
+ """
3284
+
3147
3285
 
3148
3286
  class Ring(RPCBase):
3149
3287
  @rpc_call
@@ -3441,6 +3579,13 @@ class ScanControl(RPCBase):
3441
3579
  Get all registered RPC objects.
3442
3580
  """
3443
3581
 
3582
+ @property
3583
+ @rpc_call
3584
+ def _rpc_id(self) -> "str":
3585
+ """
3586
+ Get the RPC ID of the widget.
3587
+ """
3588
+
3444
3589
 
3445
3590
  class SignalComboBox(RPCBase):
3446
3591
  @property
@@ -3459,6 +3604,13 @@ class SignalComboBox(RPCBase):
3459
3604
  Get all registered RPC objects.
3460
3605
  """
3461
3606
 
3607
+ @property
3608
+ @rpc_call
3609
+ def _rpc_id(self) -> "str":
3610
+ """
3611
+ Get the RPC ID of the widget.
3612
+ """
3613
+
3462
3614
 
3463
3615
  class SignalLineEdit(RPCBase):
3464
3616
  @property
@@ -3477,6 +3629,13 @@ class SignalLineEdit(RPCBase):
3477
3629
  Get all registered RPC objects.
3478
3630
  """
3479
3631
 
3632
+ @property
3633
+ @rpc_call
3634
+ def _rpc_id(self) -> "str":
3635
+ """
3636
+ Get the RPC ID of the widget.
3637
+ """
3638
+
3480
3639
 
3481
3640
  class StopButton(RPCBase):
3482
3641
  @property
@@ -3495,6 +3654,13 @@ class StopButton(RPCBase):
3495
3654
  Get all registered RPC objects.
3496
3655
  """
3497
3656
 
3657
+ @property
3658
+ @rpc_call
3659
+ def _rpc_id(self) -> "str":
3660
+ """
3661
+ Get the RPC ID of the widget.
3662
+ """
3663
+
3498
3664
 
3499
3665
  class TextBox(RPCBase):
3500
3666
  @rpc_call
@@ -92,11 +92,11 @@ def _start_plot_process(gui_id: str, gui_class: type, config: dict | str, logger
92
92
  process will not be captured.
93
93
  """
94
94
  # pylint: disable=subprocess-run-check
95
- command = ["bec-gui-server", "--id", gui_id, "--gui_class", gui_class.__name__]
95
+ command = ["bec-gui-server", "--id", gui_id, "--gui_class", gui_class.__name__, "--hide"]
96
96
  if config:
97
97
  if isinstance(config, dict):
98
98
  config = json.dumps(config)
99
- command.extend(["--config", config])
99
+ command.extend(["--config", str(config)])
100
100
 
101
101
  env_dict = os.environ.copy()
102
102
  env_dict["PYTHONUNBUFFERED"] = "1"
@@ -126,15 +126,36 @@ def _start_plot_process(gui_id: str, gui_class: type, config: dict | str, logger
126
126
  return process, process_output_processing_thread
127
127
 
128
128
 
129
+ class RepeatTimer(threading.Timer):
130
+ def run(self):
131
+ while not self.finished.wait(self.interval):
132
+ self.function(*self.args, **self.kwargs)
133
+
134
+
129
135
  class BECGuiClientMixin:
130
136
  def __init__(self, **kwargs) -> None:
131
137
  super().__init__(**kwargs)
138
+ self._auto_updates_enabled = True
139
+ self._auto_updates = None
140
+ self._gui_started_timer = None
141
+ self._gui_started_event = threading.Event()
132
142
  self._process = None
133
143
  self._process_output_processing_thread = None
134
- self.auto_updates = self._get_update_script()
135
144
  self._target_endpoint = MessageEndpoints.scan_status()
136
145
  self._selected_device = None
137
146
 
147
+ @property
148
+ def auto_updates(self):
149
+ if self._auto_updates_enabled:
150
+ self._gui_started_event.wait()
151
+ return self._auto_updates
152
+
153
+ def shutdown_auto_updates(self):
154
+ if self._auto_updates_enabled:
155
+ if self._auto_updates is not None:
156
+ self._auto_updates.shutdown()
157
+ self._auto_updates = None
158
+
138
159
  def _get_update_script(self) -> AutoUpdates | None:
139
160
  eps = imd.entry_points(group="bec.widgets.auto_updates")
140
161
  for ep in eps:
@@ -180,38 +201,80 @@ class BECGuiClientMixin:
180
201
  if isinstance(msg, messages.ScanStatusMessage):
181
202
  if not self.gui_is_alive():
182
203
  return
183
- self.auto_updates.msg_queue.put(msg)
184
-
185
- def show(self) -> None:
204
+ if self._auto_updates_enabled:
205
+ self.auto_updates.msg_queue.put(msg)
206
+
207
+ def _gui_post_startup(self):
208
+ if self._auto_updates_enabled:
209
+ if self._auto_updates is None:
210
+ auto_updates = self._get_update_script()
211
+ if auto_updates is None:
212
+ AutoUpdates.create_default_dock = True
213
+ AutoUpdates.enabled = True
214
+ auto_updates = AutoUpdates(gui=self)
215
+ if auto_updates.create_default_dock:
216
+ auto_updates.start_default_dock()
217
+ # fig = auto_updates.get_default_figure()
218
+ self._auto_updates = auto_updates
219
+ self._gui_started_event.set()
220
+ self.show_all()
221
+
222
+ def start_server(self, wait=False) -> None:
186
223
  """
187
- Show the figure.
224
+ Start the GUI server, and execute callback when it is launched
188
225
  """
189
226
  if self._process is None or self._process.poll() is not None:
227
+ logger.success("GUI starting...")
228
+ self._gui_started_event.clear()
190
229
  self._start_update_script()
191
230
  self._process, self._process_output_processing_thread = _start_plot_process(
192
231
  self._gui_id, self.__class__, self._client._service_config.config, logger=logger
193
232
  )
194
- while not self.gui_is_alive():
195
- print("Waiting for GUI to start...")
196
- time.sleep(1)
197
- logger.success(f"GUI started with id: {self._gui_id}")
233
+
234
+ def gui_started_callback(callback):
235
+ try:
236
+ if callable(callback):
237
+ callback()
238
+ finally:
239
+ threading.current_thread().cancel()
240
+
241
+ self._gui_started_timer = RepeatTimer(
242
+ 1, lambda: self.gui_is_alive() and gui_started_callback(self._gui_post_startup)
243
+ )
244
+ self._gui_started_timer.start()
245
+
246
+ if wait:
247
+ self._gui_started_event.wait()
248
+
249
+ def show_all(self):
250
+ self._gui_started_event.wait()
251
+ rpc_client = RPCBase(gui_id=f"{self._gui_id}:window", parent=self)
252
+ rpc_client._run_rpc("show")
253
+
254
+ def hide_all(self):
255
+ self._gui_started_event.wait()
256
+ rpc_client = RPCBase(gui_id=f"{self._gui_id}:window", parent=self)
257
+ rpc_client._run_rpc("hide")
198
258
 
199
259
  def close(self) -> None:
200
260
  """
201
261
  Close the gui window.
202
262
  """
263
+ if self._gui_started_timer is not None:
264
+ self._gui_started_timer.cancel()
265
+ self._gui_started_timer.join()
266
+
203
267
  if self._process is None:
204
268
  return
205
269
 
206
- self._client.shutdown()
207
270
  if self._process:
271
+ logger.success("Stopping GUI...")
208
272
  self._process.terminate()
209
273
  if self._process_output_processing_thread:
210
274
  self._process_output_processing_thread.join()
211
275
  self._process.wait()
212
276
  self._process = None
213
- if self.auto_updates is not None:
214
- self.auto_updates.shutdown()
277
+ self.shutdown_auto_updates()
215
278
 
216
279
 
217
280
  class RPCResponseTimeoutError(Exception):