bec-widgets 2.1.1__tar.gz → 2.1.3__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 (379) hide show
  1. {bec_widgets-2.1.1 → bec_widgets-2.1.3}/.gitlab-ci.yml +1 -1
  2. {bec_widgets-2.1.1 → bec_widgets-2.1.3}/CHANGELOG.md +30 -0
  3. {bec_widgets-2.1.1 → bec_widgets-2.1.3}/PKG-INFO +1 -1
  4. {bec_widgets-2.1.1 → bec_widgets-2.1.3}/bec_widgets/cli/client.py +12 -0
  5. {bec_widgets-2.1.1 → bec_widgets-2.1.3}/bec_widgets/utils/bec_dispatcher.py +50 -17
  6. {bec_widgets-2.1.1 → bec_widgets-2.1.3}/bec_widgets/widgets/plots/waveform/waveform.py +11 -1
  7. {bec_widgets-2.1.1 → bec_widgets-2.1.3}/bec_widgets/widgets/progress/bec_progressbar/bec_progressbar.py +5 -0
  8. {bec_widgets-2.1.1 → bec_widgets-2.1.3}/bec_widgets/widgets/services/bec_status_box/bec_status_box.py +5 -0
  9. {bec_widgets-2.1.1 → bec_widgets-2.1.3}/pyproject.toml +1 -1
  10. {bec_widgets-2.1.1 → bec_widgets-2.1.3}/.git_hooks/pre-commit +0 -0
  11. {bec_widgets-2.1.1 → bec_widgets-2.1.3}/.gitignore +0 -0
  12. {bec_widgets-2.1.1 → bec_widgets-2.1.3}/.gitlab/issue_templates/bug_report_template.md +0 -0
  13. {bec_widgets-2.1.1 → bec_widgets-2.1.3}/.gitlab/issue_templates/documentation_update_template.md +0 -0
  14. {bec_widgets-2.1.1 → bec_widgets-2.1.3}/.gitlab/issue_templates/feature_request_template.md +0 -0
  15. {bec_widgets-2.1.1 → bec_widgets-2.1.3}/.gitlab/merge_request_templates/default.md +0 -0
  16. {bec_widgets-2.1.1 → bec_widgets-2.1.3}/.pylintrc +0 -0
  17. {bec_widgets-2.1.1 → bec_widgets-2.1.3}/.readthedocs.yaml +0 -0
  18. {bec_widgets-2.1.1 → bec_widgets-2.1.3}/LICENSE +0 -0
  19. {bec_widgets-2.1.1 → bec_widgets-2.1.3}/README.md +0 -0
  20. {bec_widgets-2.1.1 → bec_widgets-2.1.3}/bec_widgets/__init__.py +0 -0
  21. {bec_widgets-2.1.1 → bec_widgets-2.1.3}/bec_widgets/applications/__init__.py +0 -0
  22. {bec_widgets-2.1.1 → bec_widgets-2.1.3}/bec_widgets/applications/bw_launch.py +0 -0
  23. {bec_widgets-2.1.1 → bec_widgets-2.1.3}/bec_widgets/applications/launch_window.py +0 -0
  24. {bec_widgets-2.1.1 → bec_widgets-2.1.3}/bec_widgets/assets/app_icons/BEC-General-App.png +0 -0
  25. {bec_widgets-2.1.1 → bec_widgets-2.1.3}/bec_widgets/assets/app_icons/alignment_1d.png +0 -0
  26. {bec_widgets-2.1.1 → bec_widgets-2.1.3}/bec_widgets/assets/app_icons/auto_update.png +0 -0
  27. {bec_widgets-2.1.1 → bec_widgets-2.1.3}/bec_widgets/assets/app_icons/bec_widgets_icon.png +0 -0
  28. {bec_widgets-2.1.1 → bec_widgets-2.1.3}/bec_widgets/assets/app_icons/ui_loader_tile.png +0 -0
  29. {bec_widgets-2.1.1 → bec_widgets-2.1.3}/bec_widgets/cli/__init__.py +0 -0
  30. {bec_widgets-2.1.1 → bec_widgets-2.1.3}/bec_widgets/cli/client_utils.py +0 -0
  31. {bec_widgets-2.1.1 → bec_widgets-2.1.3}/bec_widgets/cli/generate_cli.py +0 -0
  32. {bec_widgets-2.1.1 → bec_widgets-2.1.3}/bec_widgets/cli/rpc/__init__.py +0 -0
  33. {bec_widgets-2.1.1 → bec_widgets-2.1.3}/bec_widgets/cli/rpc/rpc_base.py +0 -0
  34. {bec_widgets-2.1.1 → bec_widgets-2.1.3}/bec_widgets/cli/rpc/rpc_register.py +0 -0
  35. {bec_widgets-2.1.1 → bec_widgets-2.1.3}/bec_widgets/cli/rpc/rpc_widget_handler.py +0 -0
  36. {bec_widgets-2.1.1 → bec_widgets-2.1.3}/bec_widgets/cli/server.py +0 -0
  37. {bec_widgets-2.1.1 → bec_widgets-2.1.3}/bec_widgets/examples/__init__.py +0 -0
  38. {bec_widgets-2.1.1 → bec_widgets-2.1.3}/bec_widgets/examples/general_app/__init__.py +0 -0
  39. {bec_widgets-2.1.1 → bec_widgets-2.1.3}/bec_widgets/examples/general_app/general_app.py +0 -0
  40. {bec_widgets-2.1.1 → bec_widgets-2.1.3}/bec_widgets/examples/general_app/general_app.ui +0 -0
  41. {bec_widgets-2.1.1 → bec_widgets-2.1.3}/bec_widgets/examples/general_app/web_links.py +0 -0
  42. {bec_widgets-2.1.1 → bec_widgets-2.1.3}/bec_widgets/examples/jupyter_console/__init__.py +0 -0
  43. {bec_widgets-2.1.1 → bec_widgets-2.1.3}/bec_widgets/examples/jupyter_console/jupyter_console_window.py +0 -0
  44. {bec_widgets-2.1.1 → bec_widgets-2.1.3}/bec_widgets/examples/plugin_example_pyside/__init__.py +0 -0
  45. {bec_widgets-2.1.1 → bec_widgets-2.1.3}/bec_widgets/examples/plugin_example_pyside/main.py +0 -0
  46. {bec_widgets-2.1.1 → bec_widgets-2.1.3}/bec_widgets/examples/plugin_example_pyside/registertictactoe.py +0 -0
  47. {bec_widgets-2.1.1 → bec_widgets-2.1.3}/bec_widgets/examples/plugin_example_pyside/taskmenuextension.pyproject +0 -0
  48. {bec_widgets-2.1.1 → bec_widgets-2.1.3}/bec_widgets/examples/plugin_example_pyside/tictactoe.py +0 -0
  49. {bec_widgets-2.1.1 → bec_widgets-2.1.3}/bec_widgets/examples/plugin_example_pyside/tictactoeplugin.py +0 -0
  50. {bec_widgets-2.1.1 → bec_widgets-2.1.3}/bec_widgets/examples/plugin_example_pyside/tictactoetaskmenu.py +0 -0
  51. {bec_widgets-2.1.1 → bec_widgets-2.1.3}/bec_widgets/tests/__init__.py +0 -0
  52. {bec_widgets-2.1.1 → bec_widgets-2.1.3}/bec_widgets/tests/utils.py +0 -0
  53. {bec_widgets-2.1.1 → bec_widgets-2.1.3}/bec_widgets/utils/__init__.py +0 -0
  54. {bec_widgets-2.1.1 → bec_widgets-2.1.3}/bec_widgets/utils/bec_connector.py +0 -0
  55. {bec_widgets-2.1.1 → bec_widgets-2.1.3}/bec_widgets/utils/bec_designer.py +0 -0
  56. {bec_widgets-2.1.1 → bec_widgets-2.1.3}/bec_widgets/utils/bec_plugin_helper.py +0 -0
  57. {bec_widgets-2.1.1 → bec_widgets-2.1.3}/bec_widgets/utils/bec_signal_proxy.py +0 -0
  58. {bec_widgets-2.1.1 → bec_widgets-2.1.3}/bec_widgets/utils/bec_table.py +0 -0
  59. {bec_widgets-2.1.1 → bec_widgets-2.1.3}/bec_widgets/utils/bec_widget.py +0 -0
  60. {bec_widgets-2.1.1 → bec_widgets-2.1.3}/bec_widgets/utils/collapsible_panel_manager.py +0 -0
  61. {bec_widgets-2.1.1 → bec_widgets-2.1.3}/bec_widgets/utils/colors.py +0 -0
  62. {bec_widgets-2.1.1 → bec_widgets-2.1.3}/bec_widgets/utils/compact_popup.py +0 -0
  63. {bec_widgets-2.1.1 → bec_widgets-2.1.3}/bec_widgets/utils/container_utils.py +0 -0
  64. {bec_widgets-2.1.1 → bec_widgets-2.1.3}/bec_widgets/utils/crosshair.py +0 -0
  65. {bec_widgets-2.1.1 → bec_widgets-2.1.3}/bec_widgets/utils/entry_validator.py +0 -0
  66. {bec_widgets-2.1.1 → bec_widgets-2.1.3}/bec_widgets/utils/error_popups.py +0 -0
  67. {bec_widgets-2.1.1 → bec_widgets-2.1.3}/bec_widgets/utils/expandable_frame.py +0 -0
  68. {bec_widgets-2.1.1 → bec_widgets-2.1.3}/bec_widgets/utils/filter_io.py +0 -0
  69. {bec_widgets-2.1.1 → bec_widgets-2.1.3}/bec_widgets/utils/forms_from_types/__init__.py +0 -0
  70. {bec_widgets-2.1.1 → bec_widgets-2.1.3}/bec_widgets/utils/forms_from_types/forms.py +0 -0
  71. {bec_widgets-2.1.1 → bec_widgets-2.1.3}/bec_widgets/utils/forms_from_types/items.py +0 -0
  72. {bec_widgets-2.1.1 → bec_widgets-2.1.3}/bec_widgets/utils/fps_counter.py +0 -0
  73. {bec_widgets-2.1.1 → bec_widgets-2.1.3}/bec_widgets/utils/generate_designer_plugin.py +0 -0
  74. {bec_widgets-2.1.1 → bec_widgets-2.1.3}/bec_widgets/utils/layout_manager.py +0 -0
  75. {bec_widgets-2.1.1 → bec_widgets-2.1.3}/bec_widgets/utils/linear_region_selector.py +0 -0
  76. {bec_widgets-2.1.1 → bec_widgets-2.1.3}/bec_widgets/utils/name_utils.py +0 -0
  77. {bec_widgets-2.1.1 → bec_widgets-2.1.3}/bec_widgets/utils/ophyd_kind_util.py +0 -0
  78. {bec_widgets-2.1.1 → bec_widgets-2.1.3}/bec_widgets/utils/palette_viewer.py +0 -0
  79. {bec_widgets-2.1.1 → bec_widgets-2.1.3}/bec_widgets/utils/plot_indicator_items.py +0 -0
  80. {bec_widgets-2.1.1 → bec_widgets-2.1.3}/bec_widgets/utils/plugin_templates/plugin.template +0 -0
  81. {bec_widgets-2.1.1 → bec_widgets-2.1.3}/bec_widgets/utils/plugin_templates/register.template +0 -0
  82. {bec_widgets-2.1.1 → bec_widgets-2.1.3}/bec_widgets/utils/plugin_utils.py +0 -0
  83. {bec_widgets-2.1.1 → bec_widgets-2.1.3}/bec_widgets/utils/redis_message_waiter.py +0 -0
  84. {bec_widgets-2.1.1 → bec_widgets-2.1.3}/bec_widgets/utils/reference_utils.py +0 -0
  85. {bec_widgets-2.1.1 → bec_widgets-2.1.3}/bec_widgets/utils/round_frame.py +0 -0
  86. {bec_widgets-2.1.1 → bec_widgets-2.1.3}/bec_widgets/utils/rpc_decorator.py +0 -0
  87. {bec_widgets-2.1.1 → bec_widgets-2.1.3}/bec_widgets/utils/rpc_server.py +0 -0
  88. {bec_widgets-2.1.1 → bec_widgets-2.1.3}/bec_widgets/utils/serialization.py +0 -0
  89. {bec_widgets-2.1.1 → bec_widgets-2.1.3}/bec_widgets/utils/settings_dialog.py +0 -0
  90. {bec_widgets-2.1.1 → bec_widgets-2.1.3}/bec_widgets/utils/side_panel.py +0 -0
  91. {bec_widgets-2.1.1 → bec_widgets-2.1.3}/bec_widgets/utils/thread_checker.py +0 -0
  92. {bec_widgets-2.1.1 → bec_widgets-2.1.3}/bec_widgets/utils/toolbar.py +0 -0
  93. {bec_widgets-2.1.1 → bec_widgets-2.1.3}/bec_widgets/utils/ui_loader.py +0 -0
  94. {bec_widgets-2.1.1 → bec_widgets-2.1.3}/bec_widgets/utils/validator_delegate.py +0 -0
  95. {bec_widgets-2.1.1 → bec_widgets-2.1.3}/bec_widgets/utils/widget_io.py +0 -0
  96. {bec_widgets-2.1.1 → bec_widgets-2.1.3}/bec_widgets/utils/widget_state_manager.py +0 -0
  97. {bec_widgets-2.1.1 → bec_widgets-2.1.3}/bec_widgets/utils/yaml_dialog.py +0 -0
  98. {bec_widgets-2.1.1 → bec_widgets-2.1.3}/bec_widgets/widgets/__init__.py +0 -0
  99. {bec_widgets-2.1.1 → bec_widgets-2.1.3}/bec_widgets/widgets/containers/__init__.py +0 -0
  100. {bec_widgets-2.1.1 → bec_widgets-2.1.3}/bec_widgets/widgets/containers/auto_update/__init__.py +0 -0
  101. {bec_widgets-2.1.1 → bec_widgets-2.1.3}/bec_widgets/widgets/containers/auto_update/auto_updates.py +0 -0
  102. {bec_widgets-2.1.1 → bec_widgets-2.1.3}/bec_widgets/widgets/containers/dock/__init__.py +0 -0
  103. {bec_widgets-2.1.1 → bec_widgets-2.1.3}/bec_widgets/widgets/containers/dock/dock.py +0 -0
  104. {bec_widgets-2.1.1 → bec_widgets-2.1.3}/bec_widgets/widgets/containers/dock/dock_area.py +0 -0
  105. {bec_widgets-2.1.1 → bec_widgets-2.1.3}/bec_widgets/widgets/containers/dock/dock_area.pyproject +0 -0
  106. {bec_widgets-2.1.1 → bec_widgets-2.1.3}/bec_widgets/widgets/containers/dock/dock_area_plugin.py +0 -0
  107. {bec_widgets-2.1.1 → bec_widgets-2.1.3}/bec_widgets/widgets/containers/dock/register_dock_area.py +0 -0
  108. {bec_widgets-2.1.1 → bec_widgets-2.1.3}/bec_widgets/widgets/containers/layout_manager/__init__.py +0 -0
  109. {bec_widgets-2.1.1 → bec_widgets-2.1.3}/bec_widgets/widgets/containers/layout_manager/layout_manager.py +0 -0
  110. {bec_widgets-2.1.1 → bec_widgets-2.1.3}/bec_widgets/widgets/containers/main_window/__init__.py +0 -0
  111. {bec_widgets-2.1.1 → bec_widgets-2.1.3}/bec_widgets/widgets/containers/main_window/addons/__init__.py +0 -0
  112. {bec_widgets-2.1.1 → bec_widgets-2.1.3}/bec_widgets/widgets/containers/main_window/addons/web_links.py +0 -0
  113. {bec_widgets-2.1.1 → bec_widgets-2.1.3}/bec_widgets/widgets/containers/main_window/main_window.py +0 -0
  114. {bec_widgets-2.1.1 → bec_widgets-2.1.3}/bec_widgets/widgets/control/__init__.py +0 -0
  115. {bec_widgets-2.1.1 → bec_widgets-2.1.3}/bec_widgets/widgets/control/buttons/__init__.py +0 -0
  116. {bec_widgets-2.1.1 → bec_widgets-2.1.3}/bec_widgets/widgets/control/buttons/button_abort/__init__.py +0 -0
  117. {bec_widgets-2.1.1 → bec_widgets-2.1.3}/bec_widgets/widgets/control/buttons/button_abort/abort_button.pyproject +0 -0
  118. {bec_widgets-2.1.1 → bec_widgets-2.1.3}/bec_widgets/widgets/control/buttons/button_abort/abort_button_plugin.py +0 -0
  119. {bec_widgets-2.1.1 → bec_widgets-2.1.3}/bec_widgets/widgets/control/buttons/button_abort/button_abort.py +0 -0
  120. {bec_widgets-2.1.1 → bec_widgets-2.1.3}/bec_widgets/widgets/control/buttons/button_abort/register_abort_button.py +0 -0
  121. {bec_widgets-2.1.1 → bec_widgets-2.1.3}/bec_widgets/widgets/control/buttons/button_reset/__init__.py +0 -0
  122. {bec_widgets-2.1.1 → bec_widgets-2.1.3}/bec_widgets/widgets/control/buttons/button_reset/button_reset.py +0 -0
  123. {bec_widgets-2.1.1 → bec_widgets-2.1.3}/bec_widgets/widgets/control/buttons/button_reset/register_reset_button.py +0 -0
  124. {bec_widgets-2.1.1 → bec_widgets-2.1.3}/bec_widgets/widgets/control/buttons/button_reset/reset_button.pyproject +0 -0
  125. {bec_widgets-2.1.1 → bec_widgets-2.1.3}/bec_widgets/widgets/control/buttons/button_reset/reset_button_plugin.py +0 -0
  126. {bec_widgets-2.1.1 → bec_widgets-2.1.3}/bec_widgets/widgets/control/buttons/button_resume/__init__.py +0 -0
  127. {bec_widgets-2.1.1 → bec_widgets-2.1.3}/bec_widgets/widgets/control/buttons/button_resume/button_resume.py +0 -0
  128. {bec_widgets-2.1.1 → bec_widgets-2.1.3}/bec_widgets/widgets/control/buttons/button_resume/register_resume_button.py +0 -0
  129. {bec_widgets-2.1.1 → bec_widgets-2.1.3}/bec_widgets/widgets/control/buttons/button_resume/resume_button.pyproject +0 -0
  130. {bec_widgets-2.1.1 → bec_widgets-2.1.3}/bec_widgets/widgets/control/buttons/button_resume/resume_button_plugin.py +0 -0
  131. {bec_widgets-2.1.1 → bec_widgets-2.1.3}/bec_widgets/widgets/control/buttons/stop_button/__init__.py +0 -0
  132. {bec_widgets-2.1.1 → bec_widgets-2.1.3}/bec_widgets/widgets/control/buttons/stop_button/register_stop_button.py +0 -0
  133. {bec_widgets-2.1.1 → bec_widgets-2.1.3}/bec_widgets/widgets/control/buttons/stop_button/stop_button.py +0 -0
  134. {bec_widgets-2.1.1 → bec_widgets-2.1.3}/bec_widgets/widgets/control/buttons/stop_button/stop_button.pyproject +0 -0
  135. {bec_widgets-2.1.1 → bec_widgets-2.1.3}/bec_widgets/widgets/control/buttons/stop_button/stop_button_plugin.py +0 -0
  136. {bec_widgets-2.1.1 → bec_widgets-2.1.3}/bec_widgets/widgets/control/device_control/__init__.py +0 -0
  137. {bec_widgets-2.1.1 → bec_widgets-2.1.3}/bec_widgets/widgets/control/device_control/position_indicator/__init__.py +0 -0
  138. {bec_widgets-2.1.1 → bec_widgets-2.1.3}/bec_widgets/widgets/control/device_control/position_indicator/position_indicator.py +0 -0
  139. {bec_widgets-2.1.1 → bec_widgets-2.1.3}/bec_widgets/widgets/control/device_control/position_indicator/position_indicator.pyproject +0 -0
  140. {bec_widgets-2.1.1 → bec_widgets-2.1.3}/bec_widgets/widgets/control/device_control/position_indicator/position_indicator_plugin.py +0 -0
  141. {bec_widgets-2.1.1 → bec_widgets-2.1.3}/bec_widgets/widgets/control/device_control/position_indicator/register_position_indicator.py +0 -0
  142. {bec_widgets-2.1.1 → bec_widgets-2.1.3}/bec_widgets/widgets/control/device_control/positioner_box/__init__.py +0 -0
  143. {bec_widgets-2.1.1 → bec_widgets-2.1.3}/bec_widgets/widgets/control/device_control/positioner_box/_base/__init__.py +0 -0
  144. {bec_widgets-2.1.1 → bec_widgets-2.1.3}/bec_widgets/widgets/control/device_control/positioner_box/_base/positioner_box_base.py +0 -0
  145. {bec_widgets-2.1.1 → bec_widgets-2.1.3}/bec_widgets/widgets/control/device_control/positioner_box/positioner_box/__init__.py +0 -0
  146. {bec_widgets-2.1.1 → bec_widgets-2.1.3}/bec_widgets/widgets/control/device_control/positioner_box/positioner_box/positioner_box.py +0 -0
  147. {bec_widgets-2.1.1 → bec_widgets-2.1.3}/bec_widgets/widgets/control/device_control/positioner_box/positioner_box/positioner_box.pyproject +0 -0
  148. {bec_widgets-2.1.1 → bec_widgets-2.1.3}/bec_widgets/widgets/control/device_control/positioner_box/positioner_box/positioner_box.ui +0 -0
  149. {bec_widgets-2.1.1 → bec_widgets-2.1.3}/bec_widgets/widgets/control/device_control/positioner_box/positioner_box/positioner_box_plugin.py +0 -0
  150. {bec_widgets-2.1.1 → bec_widgets-2.1.3}/bec_widgets/widgets/control/device_control/positioner_box/positioner_box/register_positioner_box.py +0 -0
  151. {bec_widgets-2.1.1 → bec_widgets-2.1.3}/bec_widgets/widgets/control/device_control/positioner_box/positioner_box_2d/__init__.py +0 -0
  152. {bec_widgets-2.1.1 → bec_widgets-2.1.3}/bec_widgets/widgets/control/device_control/positioner_box/positioner_box_2d/positioner_box2_d.pyproject +0 -0
  153. {bec_widgets-2.1.1 → bec_widgets-2.1.3}/bec_widgets/widgets/control/device_control/positioner_box/positioner_box_2d/positioner_box2_d_plugin.py +0 -0
  154. {bec_widgets-2.1.1 → bec_widgets-2.1.3}/bec_widgets/widgets/control/device_control/positioner_box/positioner_box_2d/positioner_box_2d.py +0 -0
  155. {bec_widgets-2.1.1 → bec_widgets-2.1.3}/bec_widgets/widgets/control/device_control/positioner_box/positioner_box_2d/positioner_box_2d.ui +0 -0
  156. {bec_widgets-2.1.1 → bec_widgets-2.1.3}/bec_widgets/widgets/control/device_control/positioner_box/positioner_box_2d/register_positioner_box2_d.py +0 -0
  157. {bec_widgets-2.1.1 → bec_widgets-2.1.3}/bec_widgets/widgets/control/device_control/positioner_box/positioner_control_line/positioner_control_line.py +0 -0
  158. {bec_widgets-2.1.1 → bec_widgets-2.1.3}/bec_widgets/widgets/control/device_control/positioner_box/positioner_control_line/positioner_control_line.pyproject +0 -0
  159. {bec_widgets-2.1.1 → bec_widgets-2.1.3}/bec_widgets/widgets/control/device_control/positioner_box/positioner_control_line/positioner_control_line.ui +0 -0
  160. {bec_widgets-2.1.1 → bec_widgets-2.1.3}/bec_widgets/widgets/control/device_control/positioner_box/positioner_control_line/positioner_control_line_plugin.py +0 -0
  161. {bec_widgets-2.1.1 → bec_widgets-2.1.3}/bec_widgets/widgets/control/device_control/positioner_box/positioner_control_line/register_positioner_control_line.py +0 -0
  162. {bec_widgets-2.1.1 → bec_widgets-2.1.3}/bec_widgets/widgets/control/device_control/positioner_group/__init__.py +0 -0
  163. {bec_widgets-2.1.1 → bec_widgets-2.1.3}/bec_widgets/widgets/control/device_control/positioner_group/positioner_group.py +0 -0
  164. {bec_widgets-2.1.1 → bec_widgets-2.1.3}/bec_widgets/widgets/control/device_control/positioner_group/positioner_group.pyproject +0 -0
  165. {bec_widgets-2.1.1 → bec_widgets-2.1.3}/bec_widgets/widgets/control/device_control/positioner_group/positioner_group_plugin.py +0 -0
  166. {bec_widgets-2.1.1 → bec_widgets-2.1.3}/bec_widgets/widgets/control/device_control/positioner_group/register_positioner_group.py +0 -0
  167. {bec_widgets-2.1.1 → bec_widgets-2.1.3}/bec_widgets/widgets/control/device_input/__init__.py +0 -0
  168. {bec_widgets-2.1.1 → bec_widgets-2.1.3}/bec_widgets/widgets/control/device_input/base_classes/__init__.py +0 -0
  169. {bec_widgets-2.1.1 → bec_widgets-2.1.3}/bec_widgets/widgets/control/device_input/base_classes/device_input_base.py +0 -0
  170. {bec_widgets-2.1.1 → bec_widgets-2.1.3}/bec_widgets/widgets/control/device_input/base_classes/device_signal_input_base.py +0 -0
  171. {bec_widgets-2.1.1 → bec_widgets-2.1.3}/bec_widgets/widgets/control/device_input/device_combobox/__init__.py +0 -0
  172. {bec_widgets-2.1.1 → bec_widgets-2.1.3}/bec_widgets/widgets/control/device_input/device_combobox/device_combo_box.pyproject +0 -0
  173. {bec_widgets-2.1.1 → bec_widgets-2.1.3}/bec_widgets/widgets/control/device_input/device_combobox/device_combo_box_plugin.py +0 -0
  174. {bec_widgets-2.1.1 → bec_widgets-2.1.3}/bec_widgets/widgets/control/device_input/device_combobox/device_combobox.py +0 -0
  175. {bec_widgets-2.1.1 → bec_widgets-2.1.3}/bec_widgets/widgets/control/device_input/device_combobox/register_device_combo_box.py +0 -0
  176. {bec_widgets-2.1.1 → bec_widgets-2.1.3}/bec_widgets/widgets/control/device_input/device_line_edit/__init__.py +0 -0
  177. {bec_widgets-2.1.1 → bec_widgets-2.1.3}/bec_widgets/widgets/control/device_input/device_line_edit/device_line_edit.py +0 -0
  178. {bec_widgets-2.1.1 → bec_widgets-2.1.3}/bec_widgets/widgets/control/device_input/device_line_edit/device_line_edit.pyproject +0 -0
  179. {bec_widgets-2.1.1 → bec_widgets-2.1.3}/bec_widgets/widgets/control/device_input/device_line_edit/device_line_edit_plugin.py +0 -0
  180. {bec_widgets-2.1.1 → bec_widgets-2.1.3}/bec_widgets/widgets/control/device_input/device_line_edit/register_device_line_edit.py +0 -0
  181. {bec_widgets-2.1.1 → bec_widgets-2.1.3}/bec_widgets/widgets/control/device_input/signal_combobox/__init__.py +0 -0
  182. {bec_widgets-2.1.1 → bec_widgets-2.1.3}/bec_widgets/widgets/control/device_input/signal_combobox/register_signal_combo_box.py +0 -0
  183. {bec_widgets-2.1.1 → bec_widgets-2.1.3}/bec_widgets/widgets/control/device_input/signal_combobox/signal_combo_box.pyproject +0 -0
  184. {bec_widgets-2.1.1 → bec_widgets-2.1.3}/bec_widgets/widgets/control/device_input/signal_combobox/signal_combo_box_plugin.py +0 -0
  185. {bec_widgets-2.1.1 → bec_widgets-2.1.3}/bec_widgets/widgets/control/device_input/signal_combobox/signal_combobox.py +0 -0
  186. {bec_widgets-2.1.1 → bec_widgets-2.1.3}/bec_widgets/widgets/control/device_input/signal_line_edit/__init__.py +0 -0
  187. {bec_widgets-2.1.1 → bec_widgets-2.1.3}/bec_widgets/widgets/control/device_input/signal_line_edit/register_signal_line_edit.py +0 -0
  188. {bec_widgets-2.1.1 → bec_widgets-2.1.3}/bec_widgets/widgets/control/device_input/signal_line_edit/signal_line_edit.py +0 -0
  189. {bec_widgets-2.1.1 → bec_widgets-2.1.3}/bec_widgets/widgets/control/device_input/signal_line_edit/signal_line_edit.pyproject +0 -0
  190. {bec_widgets-2.1.1 → bec_widgets-2.1.3}/bec_widgets/widgets/control/device_input/signal_line_edit/signal_line_edit_plugin.py +0 -0
  191. {bec_widgets-2.1.1 → bec_widgets-2.1.3}/bec_widgets/widgets/control/scan_control/__init__.py +0 -0
  192. {bec_widgets-2.1.1 → bec_widgets-2.1.3}/bec_widgets/widgets/control/scan_control/register_scan_control.py +0 -0
  193. {bec_widgets-2.1.1 → bec_widgets-2.1.3}/bec_widgets/widgets/control/scan_control/scan_control.py +0 -0
  194. {bec_widgets-2.1.1 → bec_widgets-2.1.3}/bec_widgets/widgets/control/scan_control/scan_control.pyproject +0 -0
  195. {bec_widgets-2.1.1 → bec_widgets-2.1.3}/bec_widgets/widgets/control/scan_control/scan_control_plugin.py +0 -0
  196. {bec_widgets-2.1.1 → bec_widgets-2.1.3}/bec_widgets/widgets/control/scan_control/scan_group_box.py +0 -0
  197. {bec_widgets-2.1.1 → bec_widgets-2.1.3}/bec_widgets/widgets/dap/__init__.py +0 -0
  198. {bec_widgets-2.1.1 → bec_widgets-2.1.3}/bec_widgets/widgets/dap/dap_combo_box/__init__.py +0 -0
  199. {bec_widgets-2.1.1 → bec_widgets-2.1.3}/bec_widgets/widgets/dap/dap_combo_box/dap_combo_box.py +0 -0
  200. {bec_widgets-2.1.1 → bec_widgets-2.1.3}/bec_widgets/widgets/dap/dap_combo_box/dap_combo_box.pyproject +0 -0
  201. {bec_widgets-2.1.1 → bec_widgets-2.1.3}/bec_widgets/widgets/dap/dap_combo_box/dap_combo_box_plugin.py +0 -0
  202. {bec_widgets-2.1.1 → bec_widgets-2.1.3}/bec_widgets/widgets/dap/dap_combo_box/register_dap_combo_box.py +0 -0
  203. {bec_widgets-2.1.1 → bec_widgets-2.1.3}/bec_widgets/widgets/dap/lmfit_dialog/__init__.py +0 -0
  204. {bec_widgets-2.1.1 → bec_widgets-2.1.3}/bec_widgets/widgets/dap/lmfit_dialog/lm_fit_dialog.pyproject +0 -0
  205. {bec_widgets-2.1.1 → bec_widgets-2.1.3}/bec_widgets/widgets/dap/lmfit_dialog/lm_fit_dialog_plugin.py +0 -0
  206. {bec_widgets-2.1.1 → bec_widgets-2.1.3}/bec_widgets/widgets/dap/lmfit_dialog/lmfit_dialog.py +0 -0
  207. {bec_widgets-2.1.1 → bec_widgets-2.1.3}/bec_widgets/widgets/dap/lmfit_dialog/lmfit_dialog_compact.ui +0 -0
  208. {bec_widgets-2.1.1 → bec_widgets-2.1.3}/bec_widgets/widgets/dap/lmfit_dialog/lmfit_dialog_vertical.ui +0 -0
  209. {bec_widgets-2.1.1 → bec_widgets-2.1.3}/bec_widgets/widgets/dap/lmfit_dialog/register_lm_fit_dialog.py +0 -0
  210. {bec_widgets-2.1.1 → bec_widgets-2.1.3}/bec_widgets/widgets/editors/__init__.py +0 -0
  211. {bec_widgets-2.1.1 → bec_widgets-2.1.3}/bec_widgets/widgets/editors/console/__init__.py +0 -0
  212. {bec_widgets-2.1.1 → bec_widgets-2.1.3}/bec_widgets/widgets/editors/console/console.py +0 -0
  213. {bec_widgets-2.1.1 → bec_widgets-2.1.3}/bec_widgets/widgets/editors/console/console.pyproject +0 -0
  214. {bec_widgets-2.1.1 → bec_widgets-2.1.3}/bec_widgets/widgets/editors/console/console_plugin.py +0 -0
  215. {bec_widgets-2.1.1 → bec_widgets-2.1.3}/bec_widgets/widgets/editors/console/register_console.py +0 -0
  216. {bec_widgets-2.1.1 → bec_widgets-2.1.3}/bec_widgets/widgets/editors/dict_backed_table.py +0 -0
  217. {bec_widgets-2.1.1 → bec_widgets-2.1.3}/bec_widgets/widgets/editors/jupyter_console/__init__.py +0 -0
  218. {bec_widgets-2.1.1 → bec_widgets-2.1.3}/bec_widgets/widgets/editors/jupyter_console/jupyter_console.py +0 -0
  219. {bec_widgets-2.1.1 → bec_widgets-2.1.3}/bec_widgets/widgets/editors/scan_metadata/__init__.py +0 -0
  220. {bec_widgets-2.1.1 → bec_widgets-2.1.3}/bec_widgets/widgets/editors/scan_metadata/_util.py +0 -0
  221. {bec_widgets-2.1.1 → bec_widgets-2.1.3}/bec_widgets/widgets/editors/scan_metadata/register_scan_metadata.py +0 -0
  222. {bec_widgets-2.1.1 → bec_widgets-2.1.3}/bec_widgets/widgets/editors/scan_metadata/scan_metadata.py +0 -0
  223. {bec_widgets-2.1.1 → bec_widgets-2.1.3}/bec_widgets/widgets/editors/scan_metadata/scan_metadata.pyproject +0 -0
  224. {bec_widgets-2.1.1 → bec_widgets-2.1.3}/bec_widgets/widgets/editors/scan_metadata/scan_metadata_plugin.py +0 -0
  225. {bec_widgets-2.1.1 → bec_widgets-2.1.3}/bec_widgets/widgets/editors/text_box/__init__.py +0 -0
  226. {bec_widgets-2.1.1 → bec_widgets-2.1.3}/bec_widgets/widgets/editors/text_box/register_text_box.py +0 -0
  227. {bec_widgets-2.1.1 → bec_widgets-2.1.3}/bec_widgets/widgets/editors/text_box/text_box.py +0 -0
  228. {bec_widgets-2.1.1 → bec_widgets-2.1.3}/bec_widgets/widgets/editors/text_box/text_box.pyproject +0 -0
  229. {bec_widgets-2.1.1 → bec_widgets-2.1.3}/bec_widgets/widgets/editors/text_box/text_box_plugin.py +0 -0
  230. {bec_widgets-2.1.1 → bec_widgets-2.1.3}/bec_widgets/widgets/editors/vscode/__init__.py +0 -0
  231. {bec_widgets-2.1.1 → bec_widgets-2.1.3}/bec_widgets/widgets/editors/vscode/register_vs_code_editor.py +0 -0
  232. {bec_widgets-2.1.1 → bec_widgets-2.1.3}/bec_widgets/widgets/editors/vscode/vs_code_editor.pyproject +0 -0
  233. {bec_widgets-2.1.1 → bec_widgets-2.1.3}/bec_widgets/widgets/editors/vscode/vs_code_editor_plugin.py +0 -0
  234. {bec_widgets-2.1.1 → bec_widgets-2.1.3}/bec_widgets/widgets/editors/vscode/vscode.py +0 -0
  235. {bec_widgets-2.1.1 → bec_widgets-2.1.3}/bec_widgets/widgets/editors/website/__init__.py +0 -0
  236. {bec_widgets-2.1.1 → bec_widgets-2.1.3}/bec_widgets/widgets/editors/website/register_website_widget.py +0 -0
  237. {bec_widgets-2.1.1 → bec_widgets-2.1.3}/bec_widgets/widgets/editors/website/website.py +0 -0
  238. {bec_widgets-2.1.1 → bec_widgets-2.1.3}/bec_widgets/widgets/editors/website/website_widget.pyproject +0 -0
  239. {bec_widgets-2.1.1 → bec_widgets-2.1.3}/bec_widgets/widgets/editors/website/website_widget_plugin.py +0 -0
  240. {bec_widgets-2.1.1 → bec_widgets-2.1.3}/bec_widgets/widgets/games/__init__.py +0 -0
  241. {bec_widgets-2.1.1 → bec_widgets-2.1.3}/bec_widgets/widgets/games/minesweeper.py +0 -0
  242. {bec_widgets-2.1.1 → bec_widgets-2.1.3}/bec_widgets/widgets/games/minesweeper.pyproject +0 -0
  243. {bec_widgets-2.1.1 → bec_widgets-2.1.3}/bec_widgets/widgets/games/minesweeper_plugin.py +0 -0
  244. {bec_widgets-2.1.1 → bec_widgets-2.1.3}/bec_widgets/widgets/games/register_minesweeper.py +0 -0
  245. {bec_widgets-2.1.1 → bec_widgets-2.1.3}/bec_widgets/widgets/plots/__init__.py +0 -0
  246. {bec_widgets-2.1.1 → bec_widgets-2.1.3}/bec_widgets/widgets/plots/image/__init__.py +0 -0
  247. {bec_widgets-2.1.1 → bec_widgets-2.1.3}/bec_widgets/widgets/plots/image/image.py +0 -0
  248. {bec_widgets-2.1.1 → bec_widgets-2.1.3}/bec_widgets/widgets/plots/image/image.pyproject +0 -0
  249. {bec_widgets-2.1.1 → bec_widgets-2.1.3}/bec_widgets/widgets/plots/image/image_item.py +0 -0
  250. {bec_widgets-2.1.1 → bec_widgets-2.1.3}/bec_widgets/widgets/plots/image/image_plugin.py +0 -0
  251. {bec_widgets-2.1.1 → bec_widgets-2.1.3}/bec_widgets/widgets/plots/image/image_processor.py +0 -0
  252. {bec_widgets-2.1.1 → bec_widgets-2.1.3}/bec_widgets/widgets/plots/image/register_image.py +0 -0
  253. {bec_widgets-2.1.1 → bec_widgets-2.1.3}/bec_widgets/widgets/plots/image/toolbar_bundles/__init__.py +0 -0
  254. {bec_widgets-2.1.1 → bec_widgets-2.1.3}/bec_widgets/widgets/plots/image/toolbar_bundles/image_selection.py +0 -0
  255. {bec_widgets-2.1.1 → bec_widgets-2.1.3}/bec_widgets/widgets/plots/image/toolbar_bundles/processing.py +0 -0
  256. {bec_widgets-2.1.1 → bec_widgets-2.1.3}/bec_widgets/widgets/plots/motor_map/__init__.py +0 -0
  257. {bec_widgets-2.1.1 → bec_widgets-2.1.3}/bec_widgets/widgets/plots/motor_map/motor_map.py +0 -0
  258. {bec_widgets-2.1.1 → bec_widgets-2.1.3}/bec_widgets/widgets/plots/motor_map/motor_map.pyproject +0 -0
  259. {bec_widgets-2.1.1 → bec_widgets-2.1.3}/bec_widgets/widgets/plots/motor_map/motor_map_plugin.py +0 -0
  260. {bec_widgets-2.1.1 → bec_widgets-2.1.3}/bec_widgets/widgets/plots/motor_map/register_motor_map.py +0 -0
  261. {bec_widgets-2.1.1 → bec_widgets-2.1.3}/bec_widgets/widgets/plots/motor_map/settings/__init__.py +0 -0
  262. {bec_widgets-2.1.1 → bec_widgets-2.1.3}/bec_widgets/widgets/plots/motor_map/settings/motor_map_settings.py +0 -0
  263. {bec_widgets-2.1.1 → bec_widgets-2.1.3}/bec_widgets/widgets/plots/motor_map/settings/motor_map_settings.ui +0 -0
  264. {bec_widgets-2.1.1 → bec_widgets-2.1.3}/bec_widgets/widgets/plots/motor_map/toolbar_bundles/__init__.py +0 -0
  265. {bec_widgets-2.1.1 → bec_widgets-2.1.3}/bec_widgets/widgets/plots/motor_map/toolbar_bundles/motor_selection.py +0 -0
  266. {bec_widgets-2.1.1 → bec_widgets-2.1.3}/bec_widgets/widgets/plots/multi_waveform/__init__.py +0 -0
  267. {bec_widgets-2.1.1 → bec_widgets-2.1.3}/bec_widgets/widgets/plots/multi_waveform/multi_waveform.py +0 -0
  268. {bec_widgets-2.1.1 → bec_widgets-2.1.3}/bec_widgets/widgets/plots/multi_waveform/multi_waveform.pyproject +0 -0
  269. {bec_widgets-2.1.1 → bec_widgets-2.1.3}/bec_widgets/widgets/plots/multi_waveform/multi_waveform_plugin.py +0 -0
  270. {bec_widgets-2.1.1 → bec_widgets-2.1.3}/bec_widgets/widgets/plots/multi_waveform/register_multi_waveform.py +0 -0
  271. {bec_widgets-2.1.1 → bec_widgets-2.1.3}/bec_widgets/widgets/plots/multi_waveform/settings/__init__.py +0 -0
  272. {bec_widgets-2.1.1 → bec_widgets-2.1.3}/bec_widgets/widgets/plots/multi_waveform/settings/control_panel.py +0 -0
  273. {bec_widgets-2.1.1 → bec_widgets-2.1.3}/bec_widgets/widgets/plots/multi_waveform/settings/multi_waveform_controls.ui +0 -0
  274. {bec_widgets-2.1.1 → bec_widgets-2.1.3}/bec_widgets/widgets/plots/multi_waveform/toolbar_bundles/__init__.py +0 -0
  275. {bec_widgets-2.1.1 → bec_widgets-2.1.3}/bec_widgets/widgets/plots/multi_waveform/toolbar_bundles/monitor_selection.py +0 -0
  276. {bec_widgets-2.1.1 → bec_widgets-2.1.3}/bec_widgets/widgets/plots/plot_base.py +0 -0
  277. {bec_widgets-2.1.1 → bec_widgets-2.1.3}/bec_widgets/widgets/plots/scatter_waveform/__init__.py +0 -0
  278. {bec_widgets-2.1.1 → bec_widgets-2.1.3}/bec_widgets/widgets/plots/scatter_waveform/register_scatter_waveform.py +0 -0
  279. {bec_widgets-2.1.1 → bec_widgets-2.1.3}/bec_widgets/widgets/plots/scatter_waveform/scatter_curve.py +0 -0
  280. {bec_widgets-2.1.1 → bec_widgets-2.1.3}/bec_widgets/widgets/plots/scatter_waveform/scatter_waveform.py +0 -0
  281. {bec_widgets-2.1.1 → bec_widgets-2.1.3}/bec_widgets/widgets/plots/scatter_waveform/scatter_waveform.pyproject +0 -0
  282. {bec_widgets-2.1.1 → bec_widgets-2.1.3}/bec_widgets/widgets/plots/scatter_waveform/scatter_waveform_plugin.py +0 -0
  283. {bec_widgets-2.1.1 → bec_widgets-2.1.3}/bec_widgets/widgets/plots/scatter_waveform/settings/__init__.py +0 -0
  284. {bec_widgets-2.1.1 → bec_widgets-2.1.3}/bec_widgets/widgets/plots/scatter_waveform/settings/scatter_curve_setting.py +0 -0
  285. {bec_widgets-2.1.1 → bec_widgets-2.1.3}/bec_widgets/widgets/plots/scatter_waveform/settings/scatter_curve_settings_horizontal.ui +0 -0
  286. {bec_widgets-2.1.1 → bec_widgets-2.1.3}/bec_widgets/widgets/plots/scatter_waveform/settings/scatter_curve_settings_vertical.ui +0 -0
  287. {bec_widgets-2.1.1 → bec_widgets-2.1.3}/bec_widgets/widgets/plots/setting_menus/__init__.py +0 -0
  288. {bec_widgets-2.1.1 → bec_widgets-2.1.3}/bec_widgets/widgets/plots/setting_menus/axis_settings.py +0 -0
  289. {bec_widgets-2.1.1 → bec_widgets-2.1.3}/bec_widgets/widgets/plots/setting_menus/axis_settings_horizontal.ui +0 -0
  290. {bec_widgets-2.1.1 → bec_widgets-2.1.3}/bec_widgets/widgets/plots/setting_menus/axis_settings_vertical.ui +0 -0
  291. {bec_widgets-2.1.1 → bec_widgets-2.1.3}/bec_widgets/widgets/plots/toolbar_bundles/__init__.py +0 -0
  292. {bec_widgets-2.1.1 → bec_widgets-2.1.3}/bec_widgets/widgets/plots/toolbar_bundles/mouse_interactions.py +0 -0
  293. {bec_widgets-2.1.1 → bec_widgets-2.1.3}/bec_widgets/widgets/plots/toolbar_bundles/plot_export.py +0 -0
  294. {bec_widgets-2.1.1 → bec_widgets-2.1.3}/bec_widgets/widgets/plots/toolbar_bundles/roi_bundle.py +0 -0
  295. {bec_widgets-2.1.1 → bec_widgets-2.1.3}/bec_widgets/widgets/plots/toolbar_bundles/save_state.py +0 -0
  296. {bec_widgets-2.1.1 → bec_widgets-2.1.3}/bec_widgets/widgets/plots/waveform/__init__.py +0 -0
  297. {bec_widgets-2.1.1 → bec_widgets-2.1.3}/bec_widgets/widgets/plots/waveform/curve.py +0 -0
  298. {bec_widgets-2.1.1 → bec_widgets-2.1.3}/bec_widgets/widgets/plots/waveform/register_waveform.py +0 -0
  299. {bec_widgets-2.1.1 → bec_widgets-2.1.3}/bec_widgets/widgets/plots/waveform/settings/__init__.py +0 -0
  300. {bec_widgets-2.1.1 → bec_widgets-2.1.3}/bec_widgets/widgets/plots/waveform/settings/curve_settings/__init__.py +0 -0
  301. {bec_widgets-2.1.1 → bec_widgets-2.1.3}/bec_widgets/widgets/plots/waveform/settings/curve_settings/curve_setting.py +0 -0
  302. {bec_widgets-2.1.1 → bec_widgets-2.1.3}/bec_widgets/widgets/plots/waveform/settings/curve_settings/curve_tree.py +0 -0
  303. {bec_widgets-2.1.1 → bec_widgets-2.1.3}/bec_widgets/widgets/plots/waveform/utils/__init__.py +0 -0
  304. {bec_widgets-2.1.1 → bec_widgets-2.1.3}/bec_widgets/widgets/plots/waveform/utils/roi_manager.py +0 -0
  305. {bec_widgets-2.1.1 → bec_widgets-2.1.3}/bec_widgets/widgets/plots/waveform/waveform.pyproject +0 -0
  306. {bec_widgets-2.1.1 → bec_widgets-2.1.3}/bec_widgets/widgets/plots/waveform/waveform_plugin.py +0 -0
  307. {bec_widgets-2.1.1 → bec_widgets-2.1.3}/bec_widgets/widgets/progress/__init__.py +0 -0
  308. {bec_widgets-2.1.1 → bec_widgets-2.1.3}/bec_widgets/widgets/progress/bec_progressbar/__init__.py +0 -0
  309. {bec_widgets-2.1.1 → bec_widgets-2.1.3}/bec_widgets/widgets/progress/bec_progressbar/bec_progress_bar.pyproject +0 -0
  310. {bec_widgets-2.1.1 → bec_widgets-2.1.3}/bec_widgets/widgets/progress/bec_progressbar/bec_progress_bar_plugin.py +0 -0
  311. {bec_widgets-2.1.1 → bec_widgets-2.1.3}/bec_widgets/widgets/progress/bec_progressbar/register_bec_progress_bar.py +0 -0
  312. {bec_widgets-2.1.1 → bec_widgets-2.1.3}/bec_widgets/widgets/progress/ring_progress_bar/__init__.py +0 -0
  313. {bec_widgets-2.1.1 → bec_widgets-2.1.3}/bec_widgets/widgets/progress/ring_progress_bar/register_ring_progress_bar.py +0 -0
  314. {bec_widgets-2.1.1 → bec_widgets-2.1.3}/bec_widgets/widgets/progress/ring_progress_bar/ring.py +0 -0
  315. {bec_widgets-2.1.1 → bec_widgets-2.1.3}/bec_widgets/widgets/progress/ring_progress_bar/ring_progress_bar.py +0 -0
  316. {bec_widgets-2.1.1 → bec_widgets-2.1.3}/bec_widgets/widgets/progress/ring_progress_bar/ring_progress_bar.pyproject +0 -0
  317. {bec_widgets-2.1.1 → bec_widgets-2.1.3}/bec_widgets/widgets/progress/ring_progress_bar/ring_progress_bar_plugin.py +0 -0
  318. {bec_widgets-2.1.1 → bec_widgets-2.1.3}/bec_widgets/widgets/services/__init__.py +0 -0
  319. {bec_widgets-2.1.1 → bec_widgets-2.1.3}/bec_widgets/widgets/services/bec_queue/__init__.py +0 -0
  320. {bec_widgets-2.1.1 → bec_widgets-2.1.3}/bec_widgets/widgets/services/bec_queue/bec_queue.py +0 -0
  321. {bec_widgets-2.1.1 → bec_widgets-2.1.3}/bec_widgets/widgets/services/bec_queue/bec_queue.pyproject +0 -0
  322. {bec_widgets-2.1.1 → bec_widgets-2.1.3}/bec_widgets/widgets/services/bec_queue/bec_queue_plugin.py +0 -0
  323. {bec_widgets-2.1.1 → bec_widgets-2.1.3}/bec_widgets/widgets/services/bec_queue/register_bec_queue.py +0 -0
  324. {bec_widgets-2.1.1 → bec_widgets-2.1.3}/bec_widgets/widgets/services/bec_status_box/__init__.py +0 -0
  325. {bec_widgets-2.1.1 → bec_widgets-2.1.3}/bec_widgets/widgets/services/bec_status_box/bec_status_box.pyproject +0 -0
  326. {bec_widgets-2.1.1 → bec_widgets-2.1.3}/bec_widgets/widgets/services/bec_status_box/bec_status_box_plugin.py +0 -0
  327. {bec_widgets-2.1.1 → bec_widgets-2.1.3}/bec_widgets/widgets/services/bec_status_box/register_bec_status_box.py +0 -0
  328. {bec_widgets-2.1.1 → bec_widgets-2.1.3}/bec_widgets/widgets/services/bec_status_box/status_item.py +0 -0
  329. {bec_widgets-2.1.1 → bec_widgets-2.1.3}/bec_widgets/widgets/services/device_browser/__init__.py +0 -0
  330. {bec_widgets-2.1.1 → bec_widgets-2.1.3}/bec_widgets/widgets/services/device_browser/device_browser.py +0 -0
  331. {bec_widgets-2.1.1 → bec_widgets-2.1.3}/bec_widgets/widgets/services/device_browser/device_browser.pyproject +0 -0
  332. {bec_widgets-2.1.1 → bec_widgets-2.1.3}/bec_widgets/widgets/services/device_browser/device_browser.ui +0 -0
  333. {bec_widgets-2.1.1 → bec_widgets-2.1.3}/bec_widgets/widgets/services/device_browser/device_browser_plugin.py +0 -0
  334. {bec_widgets-2.1.1 → bec_widgets-2.1.3}/bec_widgets/widgets/services/device_browser/device_item/__init__.py +0 -0
  335. {bec_widgets-2.1.1 → bec_widgets-2.1.3}/bec_widgets/widgets/services/device_browser/device_item/device_item.py +0 -0
  336. {bec_widgets-2.1.1 → bec_widgets-2.1.3}/bec_widgets/widgets/services/device_browser/register_device_browser.py +0 -0
  337. {bec_widgets-2.1.1 → bec_widgets-2.1.3}/bec_widgets/widgets/utility/__init__.py +0 -0
  338. {bec_widgets-2.1.1 → bec_widgets-2.1.3}/bec_widgets/widgets/utility/logpanel/__init__.py +0 -0
  339. {bec_widgets-2.1.1 → bec_widgets-2.1.3}/bec_widgets/widgets/utility/logpanel/_util.py +0 -0
  340. {bec_widgets-2.1.1 → bec_widgets-2.1.3}/bec_widgets/widgets/utility/logpanel/log_panel.pyproject +0 -0
  341. {bec_widgets-2.1.1 → bec_widgets-2.1.3}/bec_widgets/widgets/utility/logpanel/log_panel_plugin.py +0 -0
  342. {bec_widgets-2.1.1 → bec_widgets-2.1.3}/bec_widgets/widgets/utility/logpanel/logpanel.py +0 -0
  343. {bec_widgets-2.1.1 → bec_widgets-2.1.3}/bec_widgets/widgets/utility/logpanel/register_log_panel.py +0 -0
  344. {bec_widgets-2.1.1 → bec_widgets-2.1.3}/bec_widgets/widgets/utility/spinbox/__init__.py +0 -0
  345. {bec_widgets-2.1.1 → bec_widgets-2.1.3}/bec_widgets/widgets/utility/spinbox/bec_spin_box.pyproject +0 -0
  346. {bec_widgets-2.1.1 → bec_widgets-2.1.3}/bec_widgets/widgets/utility/spinbox/bec_spin_box_plugin.py +0 -0
  347. {bec_widgets-2.1.1 → bec_widgets-2.1.3}/bec_widgets/widgets/utility/spinbox/decimal_spinbox.py +0 -0
  348. {bec_widgets-2.1.1 → bec_widgets-2.1.3}/bec_widgets/widgets/utility/spinbox/register_bec_spin_box.py +0 -0
  349. {bec_widgets-2.1.1 → bec_widgets-2.1.3}/bec_widgets/widgets/utility/spinner/__init__.py +0 -0
  350. {bec_widgets-2.1.1 → bec_widgets-2.1.3}/bec_widgets/widgets/utility/spinner/register_spinner_widget.py +0 -0
  351. {bec_widgets-2.1.1 → bec_widgets-2.1.3}/bec_widgets/widgets/utility/spinner/spinner.py +0 -0
  352. {bec_widgets-2.1.1 → bec_widgets-2.1.3}/bec_widgets/widgets/utility/spinner/spinner_widget.pyproject +0 -0
  353. {bec_widgets-2.1.1 → bec_widgets-2.1.3}/bec_widgets/widgets/utility/spinner/spinner_widget_plugin.py +0 -0
  354. {bec_widgets-2.1.1 → bec_widgets-2.1.3}/bec_widgets/widgets/utility/toggle/__init__.py +0 -0
  355. {bec_widgets-2.1.1 → bec_widgets-2.1.3}/bec_widgets/widgets/utility/toggle/register_toggle_switch.py +0 -0
  356. {bec_widgets-2.1.1 → bec_widgets-2.1.3}/bec_widgets/widgets/utility/toggle/toggle.py +0 -0
  357. {bec_widgets-2.1.1 → bec_widgets-2.1.3}/bec_widgets/widgets/utility/toggle/toggle_switch.pyproject +0 -0
  358. {bec_widgets-2.1.1 → bec_widgets-2.1.3}/bec_widgets/widgets/utility/toggle/toggle_switch_plugin.py +0 -0
  359. {bec_widgets-2.1.1 → bec_widgets-2.1.3}/bec_widgets/widgets/utility/visual/__init__.py +0 -0
  360. {bec_widgets-2.1.1 → bec_widgets-2.1.3}/bec_widgets/widgets/utility/visual/color_button/__init__.py +0 -0
  361. {bec_widgets-2.1.1 → bec_widgets-2.1.3}/bec_widgets/widgets/utility/visual/color_button/color_button.py +0 -0
  362. {bec_widgets-2.1.1 → bec_widgets-2.1.3}/bec_widgets/widgets/utility/visual/color_button/color_button.pyproject +0 -0
  363. {bec_widgets-2.1.1 → bec_widgets-2.1.3}/bec_widgets/widgets/utility/visual/color_button/color_button_plugin.py +0 -0
  364. {bec_widgets-2.1.1 → bec_widgets-2.1.3}/bec_widgets/widgets/utility/visual/color_button/register_color_button.py +0 -0
  365. {bec_widgets-2.1.1 → bec_widgets-2.1.3}/bec_widgets/widgets/utility/visual/colormap_selector/__init__.py +0 -0
  366. {bec_widgets-2.1.1 → bec_widgets-2.1.3}/bec_widgets/widgets/utility/visual/colormap_selector/colormap_selector.py +0 -0
  367. {bec_widgets-2.1.1 → bec_widgets-2.1.3}/bec_widgets/widgets/utility/visual/colormap_selector/colormap_selector.pyproject +0 -0
  368. {bec_widgets-2.1.1 → bec_widgets-2.1.3}/bec_widgets/widgets/utility/visual/colormap_selector/colormap_selector_plugin.py +0 -0
  369. {bec_widgets-2.1.1 → bec_widgets-2.1.3}/bec_widgets/widgets/utility/visual/colormap_selector/register_colormap_selector.py +0 -0
  370. {bec_widgets-2.1.1 → bec_widgets-2.1.3}/bec_widgets/widgets/utility/visual/colormap_widget/__init__.py +0 -0
  371. {bec_widgets-2.1.1 → bec_widgets-2.1.3}/bec_widgets/widgets/utility/visual/colormap_widget/bec_color_map_widget.pyproject +0 -0
  372. {bec_widgets-2.1.1 → bec_widgets-2.1.3}/bec_widgets/widgets/utility/visual/colormap_widget/bec_color_map_widget_plugin.py +0 -0
  373. {bec_widgets-2.1.1 → bec_widgets-2.1.3}/bec_widgets/widgets/utility/visual/colormap_widget/colormap_widget.py +0 -0
  374. {bec_widgets-2.1.1 → bec_widgets-2.1.3}/bec_widgets/widgets/utility/visual/colormap_widget/register_bec_color_map_widget.py +0 -0
  375. {bec_widgets-2.1.1 → bec_widgets-2.1.3}/bec_widgets/widgets/utility/visual/dark_mode_button/__init__.py +0 -0
  376. {bec_widgets-2.1.1 → bec_widgets-2.1.3}/bec_widgets/widgets/utility/visual/dark_mode_button/dark_mode_button.py +0 -0
  377. {bec_widgets-2.1.1 → bec_widgets-2.1.3}/bec_widgets/widgets/utility/visual/dark_mode_button/dark_mode_button.pyproject +0 -0
  378. {bec_widgets-2.1.1 → bec_widgets-2.1.3}/bec_widgets/widgets/utility/visual/dark_mode_button/dark_mode_button_plugin.py +0 -0
  379. {bec_widgets-2.1.1 → bec_widgets-2.1.3}/bec_widgets/widgets/utility/visual/dark_mode_button/register_dark_mode_button.py +0 -0
@@ -230,7 +230,7 @@ end-2-end-conda:
230
230
  - pip install -e ./ophyd_devices
231
231
 
232
232
  - pip install -e .[dev,pyside6]
233
- - pytest -v --files-path ./ --start-servers --flush-redis --random-order ./tests/end-2-end
233
+ - pytest -v --files-path ./ --start-servers --random-order ./tests/end-2-end
234
234
 
235
235
  artifacts:
236
236
  when: on_failure
@@ -1,6 +1,36 @@
1
1
  # CHANGELOG
2
2
 
3
3
 
4
+ ## v2.1.3 (2025-05-07)
5
+
6
+ ### Bug Fixes
7
+
8
+ - **bec-dispatcher**: Fix reference to boundmethods to avoid duplicated subscriptions
9
+ ([`cf59d31`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/cf59d311132cd1a21f1893c19cc9f2a7e45101d0))
10
+
11
+
12
+ ## v2.1.2 (2025-05-06)
13
+
14
+ ### Bug Fixes
15
+
16
+ - **waveform**: Ignore callbacks for on_async_readback from QtSender objects that are already
17
+ destroyed; closes #497
18
+ ([`64a4824`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/64a48240546846fdf4541c2adf3a0a5a0829f948))
19
+
20
+ ### Build System
21
+
22
+ - Remove flush-redis from ci job
23
+ ([`a6c479e`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/a6c479e42ea2a47c45e5a323bb3072bab503ecf1))
24
+
25
+ ### Refactoring
26
+
27
+ - **bec-progressbar**: Add private method for bec_progressbar, udate client file
28
+ ([`37f0024`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/37f002427ad5da01164ae3b0f4983695fe61c243))
29
+
30
+ - **bec-status-box**: Add get_server_state user_access method to BECStatusBox
31
+ ([`1619446`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/1619446ec9839cfa1c666a3790a0c2abc449c4a8))
32
+
33
+
4
34
  ## v2.1.1 (2025-05-06)
5
35
 
6
36
  ### Bug Fixes
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: bec_widgets
3
- Version: 2.1.1
3
+ Version: 2.1.3
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
@@ -470,6 +470,12 @@ class BECProgressBar(RPCBase):
470
470
  >>> progressbar.label_template = "$value / $percentage %"
471
471
  """
472
472
 
473
+ @rpc_call
474
+ def _get_label(self) -> str:
475
+ """
476
+ Return the label text. mostly used for testing rpc.
477
+ """
478
+
473
479
 
474
480
  class BECQueue(RPCBase):
475
481
  """Widget to display the BEC queue."""
@@ -484,6 +490,12 @@ class BECQueue(RPCBase):
484
490
  class BECStatusBox(RPCBase):
485
491
  """An autonomous widget to display the status of BEC services."""
486
492
 
493
+ @rpc_call
494
+ def get_server_state(self) -> "str":
495
+ """
496
+ Get the state ("RUNNING", "BUSY", "IDLE", "ERROR") of the BEC server
497
+ """
498
+
487
499
  @rpc_call
488
500
  def remove(self):
489
501
  """
@@ -4,8 +4,9 @@ import collections
4
4
  import random
5
5
  import string
6
6
  from collections.abc import Callable
7
- from typing import TYPE_CHECKING, Union
7
+ from typing import TYPE_CHECKING, DefaultDict, Hashable, Union
8
8
 
9
+ import louie
9
10
  import redis
10
11
  from bec_lib.client import BECClient
11
12
  from bec_lib.logger import bec_logger
@@ -25,21 +26,41 @@ if TYPE_CHECKING: # pragma: no cover
25
26
 
26
27
 
27
28
  class QtThreadSafeCallback(QObject):
29
+ """QtThreadSafeCallback is a wrapper around a callback function to make it thread-safe for Qt."""
30
+
28
31
  cb_signal = pyqtSignal(dict, dict)
29
32
 
30
- def __init__(self, cb):
33
+ def __init__(self, cb: Callable, cb_info: dict | None = None):
34
+ """
35
+ Initialize the QtThreadSafeCallback.
36
+
37
+ Args:
38
+ cb (Callable): The callback function to be wrapped.
39
+ cb_info (dict, optional): Additional information about the callback. Defaults to None.
40
+ """
31
41
  super().__init__()
42
+ self.cb_info = cb_info
32
43
 
33
44
  self.cb = cb
45
+ self.cb_ref = louie.saferef.safe_ref(cb)
34
46
  self.cb_signal.connect(self.cb)
47
+ self.topics = set()
35
48
 
36
49
  def __hash__(self):
37
50
  # make 2 differents QtThreadSafeCallback to look
38
51
  # identical when used as dictionary keys, if the
39
52
  # callback is the same
40
- return id(self.cb)
53
+ return f"{id(self.cb_ref)}{self.cb_info}".__hash__()
54
+
55
+ def __eq__(self, other):
56
+ if not isinstance(other, QtThreadSafeCallback):
57
+ return False
58
+ return self.cb_ref == other.cb_ref and self.cb_info == other.cb_info
41
59
 
42
60
  def __call__(self, msg_content, metadata):
61
+ if self.cb_ref() is None:
62
+ # callback has been deleted
63
+ return
43
64
  self.cb_signal.emit(msg_content, metadata)
44
65
 
45
66
 
@@ -86,7 +107,7 @@ class BECDispatcher:
86
107
  cls,
87
108
  client=None,
88
109
  config: str | ServiceConfig | None = None,
89
- gui_id: str = None,
110
+ gui_id: str | None = None,
90
111
  *args,
91
112
  **kwargs,
92
113
  ):
@@ -99,7 +120,9 @@ class BECDispatcher:
99
120
  if self._initialized:
100
121
  return
101
122
 
102
- self._slots = collections.defaultdict(set)
123
+ self._registered_slots: DefaultDict[Hashable, QtThreadSafeCallback] = (
124
+ collections.defaultdict()
125
+ )
103
126
  self.client = client
104
127
 
105
128
  if self.client is None:
@@ -141,6 +164,7 @@ class BECDispatcher:
141
164
  self,
142
165
  slot: Callable,
143
166
  topics: Union[EndpointInfo, str, list[Union[EndpointInfo, str]]],
167
+ cb_info: dict | None = None,
144
168
  **kwargs,
145
169
  ) -> None:
146
170
  """Connect widget's qt slot, so that it is called on new pub/sub topic message.
@@ -149,11 +173,15 @@ class BECDispatcher:
149
173
  slot (Callable): A slot method/function that accepts two inputs: content and metadata of
150
174
  the corresponding pub/sub message
151
175
  topics (EndpointInfo | str | list): A topic or list of topics that can typically be acquired via bec_lib.MessageEndpoints
176
+ cb_info (dict | None): A dictionary containing information about the callback. Defaults to None.
152
177
  """
153
- slot = QtThreadSafeCallback(slot)
154
- self.client.connector.register(topics, cb=slot, **kwargs)
178
+ qt_slot = QtThreadSafeCallback(cb=slot, cb_info=cb_info)
179
+ if qt_slot not in self._registered_slots:
180
+ self._registered_slots[qt_slot] = qt_slot
181
+ qt_slot = self._registered_slots[qt_slot]
182
+ self.client.connector.register(topics, cb=qt_slot, **kwargs)
155
183
  topics_str, _ = self.client.connector._convert_endpointinfo(topics)
156
- self._slots[slot].update(set(topics_str))
184
+ qt_slot.topics.update(set(topics_str))
157
185
 
158
186
  def disconnect_slot(self, slot: Callable, topics: Union[str, list]):
159
187
  """
@@ -166,16 +194,16 @@ class BECDispatcher:
166
194
  # find the right slot to disconnect from ;
167
195
  # slot callbacks are wrapped in QtThreadSafeCallback objects,
168
196
  # but the slot we receive here is the original callable
169
- for connected_slot in self._slots:
197
+ for connected_slot in self._registered_slots.values():
170
198
  if connected_slot.cb == slot:
171
199
  break
172
200
  else:
173
201
  return
174
202
  self.client.connector.unregister(topics, cb=connected_slot)
175
203
  topics_str, _ = self.client.connector._convert_endpointinfo(topics)
176
- self._slots[connected_slot].difference_update(set(topics_str))
177
- if not self._slots[connected_slot]:
178
- del self._slots[connected_slot]
204
+ self._registered_slots[connected_slot].topics.difference_update(set(topics_str))
205
+ if not self._registered_slots[connected_slot].topics:
206
+ del self._registered_slots[connected_slot]
179
207
 
180
208
  def disconnect_topics(self, topics: Union[str, list]):
181
209
  """
@@ -186,11 +214,16 @@ class BECDispatcher:
186
214
  """
187
215
  self.client.connector.unregister(topics)
188
216
  topics_str, _ = self.client.connector._convert_endpointinfo(topics)
189
- for slot in list(self._slots.keys()):
190
- slot_topics = self._slots[slot]
191
- slot_topics.difference_update(set(topics_str))
192
- if not slot_topics:
193
- del self._slots[slot]
217
+
218
+ remove_slots = []
219
+ for connected_slot in self._registered_slots.values():
220
+ connected_slot.topics.difference_update(set(topics_str))
221
+
222
+ if not connected_slot.topics:
223
+ remove_slots.append(connected_slot)
224
+
225
+ for connected_slot in remove_slots:
226
+ self._registered_slots.pop(connected_slot, None)
194
227
 
195
228
  def disconnect_all(self, *args, **kwargs):
196
229
  """
@@ -1182,10 +1182,11 @@ class Waveform(PlotBase):
1182
1182
  self.on_async_readback,
1183
1183
  MessageEndpoints.device_async_readback(self.scan_id, name),
1184
1184
  from_start=True,
1185
+ cb_info={"scan_id": self.scan_id},
1185
1186
  )
1186
1187
  logger.info(f"Setup async curve {name}")
1187
1188
 
1188
- @SafeSlot(dict, dict)
1189
+ @SafeSlot(dict, dict, verify_sender=True)
1189
1190
  def on_async_readback(self, msg, metadata):
1190
1191
  """
1191
1192
  Get async data readback. This code needs to be fast, therefor we try
@@ -1204,6 +1205,14 @@ class Waveform(PlotBase):
1204
1205
  msg(dict): Message with the async data.
1205
1206
  metadata(dict): Metadata of the message.
1206
1207
  """
1208
+ sender = self.sender()
1209
+ if not hasattr(sender, "cb_info"):
1210
+ logger.info(f"Sender {sender} has no cb_info.")
1211
+ return
1212
+ scan_id = sender.cb_info.get("scan_id", None)
1213
+ if scan_id != self.scan_id:
1214
+ logger.info("Scan ID mismatch, ignoring async readback.")
1215
+
1207
1216
  instruction = metadata.get("async_update", {}).get("type")
1208
1217
  if instruction not in ["add", "add_slice", "replace"]:
1209
1218
  logger.warning(f"Invalid async update instruction: {instruction}")
@@ -1212,6 +1221,7 @@ class Waveform(PlotBase):
1212
1221
  plot_mode = self.x_axis_mode["name"]
1213
1222
  for curve in self._async_curves:
1214
1223
  x_data = None # Reset x_data
1224
+ y_data = None # Reset y_data
1215
1225
  # Get the curve data
1216
1226
  async_data = msg["signals"].get(curve.config.signal.entry, None)
1217
1227
  if async_data is None:
@@ -21,6 +21,7 @@ class BECProgressBar(BECWidget, QWidget):
21
21
  "set_minimum",
22
22
  "label_template",
23
23
  "label_template.setter",
24
+ "_get_label",
24
25
  ]
25
26
  ICON_NAME = "page_control"
26
27
 
@@ -235,6 +236,10 @@ class BECProgressBar(BECWidget, QWidget):
235
236
  (value - self._user_minimum) / (self._user_maximum - self._user_minimum) * self._maximum
236
237
  )
237
238
 
239
+ def _get_label(self) -> str:
240
+ """Return the label text. mostly used for testing rpc."""
241
+ return self.center_label.text()
242
+
238
243
 
239
244
  if __name__ == "__main__": # pragma: no cover
240
245
  app = QApplication(sys.argv)
@@ -76,6 +76,7 @@ class BECStatusBox(BECWidget, CompactPopupWidget):
76
76
 
77
77
  PLUGIN = True
78
78
  CORE_SERVICES = ["DeviceServer", "ScanServer", "SciHub", "ScanBundler", "FileWriterManager"]
79
+ USER_ACCESS = ["get_server_state", "remove"]
79
80
 
80
81
  service_update = Signal(BECServiceInfoContainer)
81
82
  bec_core_state = Signal(str)
@@ -134,6 +135,10 @@ class BECStatusBox(BECWidget, CompactPopupWidget):
134
135
  "QTreeWidget::item:selected {}"
135
136
  )
136
137
 
138
+ def get_server_state(self) -> str:
139
+ """Get the state ("RUNNING", "BUSY", "IDLE", "ERROR") of the BEC server"""
140
+ return self.status_container[self.box_name]["info"].status
141
+
137
142
  def _create_status_widget(
138
143
  self, service_name: str, status=BECStatus, info: dict = None, metrics: dict = None
139
144
  ) -> StatusItem:
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
4
4
 
5
5
  [project]
6
6
  name = "bec_widgets"
7
- version = "2.1.1"
7
+ version = "2.1.3"
8
8
  description = "BEC Widgets"
9
9
  requires-python = ">=3.10"
10
10
  classifiers = [
File without changes
File without changes
File without changes
File without changes