bec-widgets 0.93.2__tar.gz → 0.93.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 (373) hide show
  1. {bec_widgets-0.93.2 → bec_widgets-0.93.3}/CHANGELOG.md +24 -28
  2. {bec_widgets-0.93.2 → bec_widgets-0.93.3}/PKG-INFO +1 -1
  3. {bec_widgets-0.93.2 → bec_widgets-0.93.3}/bec_widgets/qt_utils/settings_dialog.py +11 -0
  4. {bec_widgets-0.93.2 → bec_widgets-0.93.3}/bec_widgets/widgets/color_button/color_button.py +7 -0
  5. {bec_widgets-0.93.2 → bec_widgets-0.93.3}/bec_widgets/widgets/dock/dock.py +4 -1
  6. {bec_widgets-0.93.2 → bec_widgets-0.93.3}/bec_widgets/widgets/dock/dock_area.py +15 -1
  7. {bec_widgets-0.93.2 → bec_widgets-0.93.3}/bec_widgets/widgets/figure/figure.py +21 -16
  8. {bec_widgets-0.93.2 → bec_widgets-0.93.3}/bec_widgets/widgets/figure/plots/image/image.py +14 -0
  9. {bec_widgets-0.93.2 → bec_widgets-0.93.3}/bec_widgets/widgets/figure/plots/plot_base.py +8 -0
  10. {bec_widgets-0.93.2 → bec_widgets-0.93.3}/bec_widgets/widgets/image/image_widget.py +2 -0
  11. {bec_widgets-0.93.2 → bec_widgets-0.93.3}/bec_widgets/widgets/motor_map/motor_map_dialog/motor_map_settings.py +9 -0
  12. {bec_widgets-0.93.2 → bec_widgets-0.93.3}/bec_widgets/widgets/website/website.py +6 -0
  13. {bec_widgets-0.93.2 → bec_widgets-0.93.3}/pyproject.toml +1 -1
  14. {bec_widgets-0.93.2 → bec_widgets-0.93.3}/tests/end-2-end/test_scan_control_e2e.py +0 -1
  15. bec_widgets-0.93.3/tests/unit_tests/conftest.py +64 -0
  16. {bec_widgets-0.93.2 → bec_widgets-0.93.3}/tests/unit_tests/test_bec_dock.py +0 -1
  17. {bec_widgets-0.93.2 → bec_widgets-0.93.3}/tests/unit_tests/test_bec_figure.py +31 -24
  18. {bec_widgets-0.93.2 → bec_widgets-0.93.3}/tests/unit_tests/test_bec_image.py +7 -3
  19. {bec_widgets-0.93.2 → bec_widgets-0.93.3}/tests/unit_tests/test_bec_image_widget.py +0 -1
  20. {bec_widgets-0.93.2 → bec_widgets-0.93.3}/tests/unit_tests/test_bec_motor_map.py +28 -14
  21. {bec_widgets-0.93.2 → bec_widgets-0.93.3}/tests/unit_tests/test_bec_queue.py +0 -1
  22. {bec_widgets-0.93.2 → bec_widgets-0.93.3}/tests/unit_tests/test_bec_status_box.py +0 -1
  23. {bec_widgets-0.93.2 → bec_widgets-0.93.3}/tests/unit_tests/test_color_map_selector.py +0 -1
  24. {bec_widgets-0.93.2 → bec_widgets-0.93.3}/tests/unit_tests/test_device_input_base.py +0 -1
  25. {bec_widgets-0.93.2 → bec_widgets-0.93.3}/tests/unit_tests/test_device_input_widgets.py +0 -6
  26. {bec_widgets-0.93.2 → bec_widgets-0.93.3}/tests/unit_tests/test_motor_map_widget.py +0 -2
  27. {bec_widgets-0.93.2 → bec_widgets-0.93.3}/tests/unit_tests/test_plot_base.py +9 -4
  28. {bec_widgets-0.93.2 → bec_widgets-0.93.3}/tests/unit_tests/test_ring_progress_bar.py +0 -1
  29. {bec_widgets-0.93.2 → bec_widgets-0.93.3}/tests/unit_tests/test_scan_control.py +0 -1
  30. {bec_widgets-0.93.2 → bec_widgets-0.93.3}/tests/unit_tests/test_setting_dialog.py +1 -2
  31. {bec_widgets-0.93.2 → bec_widgets-0.93.3}/tests/unit_tests/test_stop_button.py +0 -1
  32. {bec_widgets-0.93.2 → bec_widgets-0.93.3}/tests/unit_tests/test_text_box_widget.py +0 -1
  33. {bec_widgets-0.93.2 → bec_widgets-0.93.3}/tests/unit_tests/test_toggle.py +0 -1
  34. {bec_widgets-0.93.2 → bec_widgets-0.93.3}/tests/unit_tests/test_vscode_widget.py +2 -2
  35. {bec_widgets-0.93.2 → bec_widgets-0.93.3}/tests/unit_tests/test_waveform1d.py +46 -23
  36. {bec_widgets-0.93.2 → bec_widgets-0.93.3}/tests/unit_tests/test_waveform_widget.py +0 -1
  37. {bec_widgets-0.93.2 → bec_widgets-0.93.3}/tests/unit_tests/test_website_widget.py +0 -2
  38. bec_widgets-0.93.2/tests/unit_tests/conftest.py +0 -33
  39. {bec_widgets-0.93.2 → bec_widgets-0.93.3}/.git_hooks/pre-commit +0 -0
  40. {bec_widgets-0.93.2 → bec_widgets-0.93.3}/.gitignore +0 -0
  41. {bec_widgets-0.93.2 → bec_widgets-0.93.3}/.gitlab/issue_templates/bug_report_template.md +0 -0
  42. {bec_widgets-0.93.2 → bec_widgets-0.93.3}/.gitlab/issue_templates/documentation_update_template.md +0 -0
  43. {bec_widgets-0.93.2 → bec_widgets-0.93.3}/.gitlab/issue_templates/feature_request_template.md +0 -0
  44. {bec_widgets-0.93.2 → bec_widgets-0.93.3}/.gitlab/merge_request_templates/default.md +0 -0
  45. {bec_widgets-0.93.2 → bec_widgets-0.93.3}/.gitlab-ci.yml +0 -0
  46. {bec_widgets-0.93.2 → bec_widgets-0.93.3}/.pylintrc +0 -0
  47. {bec_widgets-0.93.2 → bec_widgets-0.93.3}/.readthedocs.yaml +0 -0
  48. {bec_widgets-0.93.2 → bec_widgets-0.93.3}/LICENSE +0 -0
  49. {bec_widgets-0.93.2 → bec_widgets-0.93.3}/README.md +0 -0
  50. {bec_widgets-0.93.2 → bec_widgets-0.93.3}/bec_widgets/__init__.py +0 -0
  51. {bec_widgets-0.93.2 → bec_widgets-0.93.3}/bec_widgets/assets/app_icons/BEC-Dark.png +0 -0
  52. {bec_widgets-0.93.2 → bec_widgets-0.93.3}/bec_widgets/assets/app_icons/bec_widgets_icon.png +0 -0
  53. {bec_widgets-0.93.2 → bec_widgets-0.93.3}/bec_widgets/assets/app_icons/terminal_icon.png +0 -0
  54. {bec_widgets-0.93.2 → bec_widgets-0.93.3}/bec_widgets/assets/designer_icons/code.png +0 -0
  55. {bec_widgets-0.93.2 → bec_widgets-0.93.3}/bec_widgets/assets/designer_icons/color_button.png +0 -0
  56. {bec_widgets-0.93.2 → bec_widgets-0.93.3}/bec_widgets/assets/designer_icons/colormap_selector.png +0 -0
  57. {bec_widgets-0.93.2 → bec_widgets-0.93.3}/bec_widgets/assets/designer_icons/device_box.png +0 -0
  58. {bec_widgets-0.93.2 → bec_widgets-0.93.3}/bec_widgets/assets/designer_icons/device_combo_box.png +0 -0
  59. {bec_widgets-0.93.2 → bec_widgets-0.93.3}/bec_widgets/assets/designer_icons/device_line_edit.png +0 -0
  60. {bec_widgets-0.93.2 → bec_widgets-0.93.3}/bec_widgets/assets/designer_icons/dock_area.png +0 -0
  61. {bec_widgets-0.93.2 → bec_widgets-0.93.3}/bec_widgets/assets/designer_icons/games.png +0 -0
  62. {bec_widgets-0.93.2 → bec_widgets-0.93.3}/bec_widgets/assets/designer_icons/image.png +0 -0
  63. {bec_widgets-0.93.2 → bec_widgets-0.93.3}/bec_widgets/assets/designer_icons/motor_map.png +0 -0
  64. {bec_widgets-0.93.2 → bec_widgets-0.93.3}/bec_widgets/assets/designer_icons/position_indicator.png +0 -0
  65. {bec_widgets-0.93.2 → bec_widgets-0.93.3}/bec_widgets/assets/designer_icons/queue.png +0 -0
  66. {bec_widgets-0.93.2 → bec_widgets-0.93.3}/bec_widgets/assets/designer_icons/ring_progress.png +0 -0
  67. {bec_widgets-0.93.2 → bec_widgets-0.93.3}/bec_widgets/assets/designer_icons/scan_control.png +0 -0
  68. {bec_widgets-0.93.2 → bec_widgets-0.93.3}/bec_widgets/assets/designer_icons/spinner.png +0 -0
  69. {bec_widgets-0.93.2 → bec_widgets-0.93.3}/bec_widgets/assets/designer_icons/status.png +0 -0
  70. {bec_widgets-0.93.2 → bec_widgets-0.93.3}/bec_widgets/assets/designer_icons/stop.png +0 -0
  71. {bec_widgets-0.93.2 → bec_widgets-0.93.3}/bec_widgets/assets/designer_icons/text.png +0 -0
  72. {bec_widgets-0.93.2 → bec_widgets-0.93.3}/bec_widgets/assets/designer_icons/toggle.png +0 -0
  73. {bec_widgets-0.93.2 → bec_widgets-0.93.3}/bec_widgets/assets/designer_icons/waveform.png +0 -0
  74. {bec_widgets-0.93.2 → bec_widgets-0.93.3}/bec_widgets/assets/designer_icons/web.png +0 -0
  75. {bec_widgets-0.93.2 → bec_widgets-0.93.3}/bec_widgets/assets/status_icons/error.svg +0 -0
  76. {bec_widgets-0.93.2 → bec_widgets-0.93.3}/bec_widgets/assets/status_icons/not_connected.svg +0 -0
  77. {bec_widgets-0.93.2 → bec_widgets-0.93.3}/bec_widgets/assets/status_icons/refresh.svg +0 -0
  78. {bec_widgets-0.93.2 → bec_widgets-0.93.3}/bec_widgets/assets/status_icons/running.svg +0 -0
  79. {bec_widgets-0.93.2 → bec_widgets-0.93.3}/bec_widgets/assets/status_icons/warning.svg +0 -0
  80. {bec_widgets-0.93.2 → bec_widgets-0.93.3}/bec_widgets/assets/toolbar_icons/add.svg +0 -0
  81. {bec_widgets-0.93.2 → bec_widgets-0.93.3}/bec_widgets/assets/toolbar_icons/attach_all.svg +0 -0
  82. {bec_widgets-0.93.2 → bec_widgets-0.93.3}/bec_widgets/assets/toolbar_icons/auto_range.svg +0 -0
  83. {bec_widgets-0.93.2 → bec_widgets-0.93.3}/bec_widgets/assets/toolbar_icons/compare.svg +0 -0
  84. {bec_widgets-0.93.2 → bec_widgets-0.93.3}/bec_widgets/assets/toolbar_icons/connection.svg +0 -0
  85. {bec_widgets-0.93.2 → bec_widgets-0.93.3}/bec_widgets/assets/toolbar_icons/device_box.svg +0 -0
  86. {bec_widgets-0.93.2 → bec_widgets-0.93.3}/bec_widgets/assets/toolbar_icons/drag_pan_mode.svg +0 -0
  87. {bec_widgets-0.93.2 → bec_widgets-0.93.3}/bec_widgets/assets/toolbar_icons/export.svg +0 -0
  88. {bec_widgets-0.93.2 → bec_widgets-0.93.3}/bec_widgets/assets/toolbar_icons/fft.svg +0 -0
  89. {bec_widgets-0.93.2 → bec_widgets-0.93.3}/bec_widgets/assets/toolbar_icons/fitting_parameters.svg +0 -0
  90. {bec_widgets-0.93.2 → bec_widgets-0.93.3}/bec_widgets/assets/toolbar_icons/history.svg +0 -0
  91. {bec_widgets-0.93.2 → bec_widgets-0.93.3}/bec_widgets/assets/toolbar_icons/image.svg +0 -0
  92. {bec_widgets-0.93.2 → bec_widgets-0.93.3}/bec_widgets/assets/toolbar_icons/image_autorange.svg +0 -0
  93. {bec_widgets-0.93.2 → bec_widgets-0.93.3}/bec_widgets/assets/toolbar_icons/import.svg +0 -0
  94. {bec_widgets-0.93.2 → bec_widgets-0.93.3}/bec_widgets/assets/toolbar_icons/line_axis.svg +0 -0
  95. {bec_widgets-0.93.2 → bec_widgets-0.93.3}/bec_widgets/assets/toolbar_icons/line_curve.svg +0 -0
  96. {bec_widgets-0.93.2 → bec_widgets-0.93.3}/bec_widgets/assets/toolbar_icons/lock_aspect_ratio.svg +0 -0
  97. {bec_widgets-0.93.2 → bec_widgets-0.93.3}/bec_widgets/assets/toolbar_icons/log_scale.png +0 -0
  98. {bec_widgets-0.93.2 → bec_widgets-0.93.3}/bec_widgets/assets/toolbar_icons/motor_map.svg +0 -0
  99. {bec_widgets-0.93.2 → bec_widgets-0.93.3}/bec_widgets/assets/toolbar_icons/photo_library.svg +0 -0
  100. {bec_widgets-0.93.2 → bec_widgets-0.93.3}/bec_widgets/assets/toolbar_icons/progress.svg +0 -0
  101. {bec_widgets-0.93.2 → bec_widgets-0.93.3}/bec_widgets/assets/toolbar_icons/queue.svg +0 -0
  102. {bec_widgets-0.93.2 → bec_widgets-0.93.3}/bec_widgets/assets/toolbar_icons/rectangle_mode.svg +0 -0
  103. {bec_widgets-0.93.2 → bec_widgets-0.93.3}/bec_widgets/assets/toolbar_icons/remove.svg +0 -0
  104. {bec_widgets-0.93.2 → bec_widgets-0.93.3}/bec_widgets/assets/toolbar_icons/reset_settings.svg +0 -0
  105. {bec_widgets-0.93.2 → bec_widgets-0.93.3}/bec_widgets/assets/toolbar_icons/restore_state.svg +0 -0
  106. {bec_widgets-0.93.2 → bec_widgets-0.93.3}/bec_widgets/assets/toolbar_icons/ring_progress.svg +0 -0
  107. {bec_widgets-0.93.2 → bec_widgets-0.93.3}/bec_widgets/assets/toolbar_icons/rotate_left.svg +0 -0
  108. {bec_widgets-0.93.2 → bec_widgets-0.93.3}/bec_widgets/assets/toolbar_icons/rotate_right.svg +0 -0
  109. {bec_widgets-0.93.2 → bec_widgets-0.93.3}/bec_widgets/assets/toolbar_icons/save.svg +0 -0
  110. {bec_widgets-0.93.2 → bec_widgets-0.93.3}/bec_widgets/assets/toolbar_icons/save_state.svg +0 -0
  111. {bec_widgets-0.93.2 → bec_widgets-0.93.3}/bec_widgets/assets/toolbar_icons/scan_control.svg +0 -0
  112. {bec_widgets-0.93.2 → bec_widgets-0.93.3}/bec_widgets/assets/toolbar_icons/settings.svg +0 -0
  113. {bec_widgets-0.93.2 → bec_widgets-0.93.3}/bec_widgets/assets/toolbar_icons/status.svg +0 -0
  114. {bec_widgets-0.93.2 → bec_widgets-0.93.3}/bec_widgets/assets/toolbar_icons/terminal.svg +0 -0
  115. {bec_widgets-0.93.2 → bec_widgets-0.93.3}/bec_widgets/assets/toolbar_icons/transform.svg +0 -0
  116. {bec_widgets-0.93.2 → bec_widgets-0.93.3}/bec_widgets/assets/toolbar_icons/waveform.svg +0 -0
  117. {bec_widgets-0.93.2 → bec_widgets-0.93.3}/bec_widgets/cli/__init__.py +0 -0
  118. {bec_widgets-0.93.2 → bec_widgets-0.93.3}/bec_widgets/cli/auto_updates.py +0 -0
  119. {bec_widgets-0.93.2 → bec_widgets-0.93.3}/bec_widgets/cli/client.py +0 -0
  120. {bec_widgets-0.93.2 → bec_widgets-0.93.3}/bec_widgets/cli/client_utils.py +0 -0
  121. {bec_widgets-0.93.2 → bec_widgets-0.93.3}/bec_widgets/cli/generate_cli.py +0 -0
  122. {bec_widgets-0.93.2 → bec_widgets-0.93.3}/bec_widgets/cli/rpc_register.py +0 -0
  123. {bec_widgets-0.93.2 → bec_widgets-0.93.3}/bec_widgets/cli/rpc_wigdet_handler.py +0 -0
  124. {bec_widgets-0.93.2 → bec_widgets-0.93.3}/bec_widgets/cli/server.py +0 -0
  125. {bec_widgets-0.93.2 → bec_widgets-0.93.3}/bec_widgets/examples/__init__.py +0 -0
  126. {bec_widgets-0.93.2 → bec_widgets-0.93.3}/bec_widgets/examples/general_app/__init__.py +0 -0
  127. {bec_widgets-0.93.2 → bec_widgets-0.93.3}/bec_widgets/examples/general_app/general_app.py +0 -0
  128. {bec_widgets-0.93.2 → bec_widgets-0.93.3}/bec_widgets/examples/general_app/general_app.ui +0 -0
  129. {bec_widgets-0.93.2 → bec_widgets-0.93.3}/bec_widgets/examples/general_app/web_links.py +0 -0
  130. {bec_widgets-0.93.2 → bec_widgets-0.93.3}/bec_widgets/examples/jupyter_console/__init__.py +0 -0
  131. {bec_widgets-0.93.2 → bec_widgets-0.93.3}/bec_widgets/examples/jupyter_console/jupyter_console_window.py +0 -0
  132. {bec_widgets-0.93.2 → bec_widgets-0.93.3}/bec_widgets/examples/plugin_example_pyside/__init__.py +0 -0
  133. {bec_widgets-0.93.2 → bec_widgets-0.93.3}/bec_widgets/examples/plugin_example_pyside/main.py +0 -0
  134. {bec_widgets-0.93.2 → bec_widgets-0.93.3}/bec_widgets/examples/plugin_example_pyside/registertictactoe.py +0 -0
  135. {bec_widgets-0.93.2 → bec_widgets-0.93.3}/bec_widgets/examples/plugin_example_pyside/taskmenuextension.pyproject +0 -0
  136. {bec_widgets-0.93.2 → bec_widgets-0.93.3}/bec_widgets/examples/plugin_example_pyside/tictactoe.py +0 -0
  137. {bec_widgets-0.93.2 → bec_widgets-0.93.3}/bec_widgets/examples/plugin_example_pyside/tictactoeplugin.py +0 -0
  138. {bec_widgets-0.93.2 → bec_widgets-0.93.3}/bec_widgets/examples/plugin_example_pyside/tictactoetaskmenu.py +0 -0
  139. {bec_widgets-0.93.2 → bec_widgets-0.93.3}/bec_widgets/qt_utils/__init__.py +0 -0
  140. {bec_widgets-0.93.2 → bec_widgets-0.93.3}/bec_widgets/qt_utils/error_popups.py +0 -0
  141. {bec_widgets-0.93.2 → bec_widgets-0.93.3}/bec_widgets/qt_utils/toolbar.py +0 -0
  142. {bec_widgets-0.93.2 → bec_widgets-0.93.3}/bec_widgets/utils/__init__.py +0 -0
  143. {bec_widgets-0.93.2 → bec_widgets-0.93.3}/bec_widgets/utils/bec_connector.py +0 -0
  144. {bec_widgets-0.93.2 → bec_widgets-0.93.3}/bec_widgets/utils/bec_designer.py +0 -0
  145. {bec_widgets-0.93.2 → bec_widgets-0.93.3}/bec_widgets/utils/bec_dispatcher.py +0 -0
  146. {bec_widgets-0.93.2 → bec_widgets-0.93.3}/bec_widgets/utils/bec_table.py +0 -0
  147. {bec_widgets-0.93.2 → bec_widgets-0.93.3}/bec_widgets/utils/bec_widget.py +0 -0
  148. {bec_widgets-0.93.2 → bec_widgets-0.93.3}/bec_widgets/utils/colors.py +0 -0
  149. {bec_widgets-0.93.2 → bec_widgets-0.93.3}/bec_widgets/utils/container_utils.py +0 -0
  150. {bec_widgets-0.93.2 → bec_widgets-0.93.3}/bec_widgets/utils/crosshair.py +0 -0
  151. {bec_widgets-0.93.2 → bec_widgets-0.93.3}/bec_widgets/utils/entry_validator.py +0 -0
  152. {bec_widgets-0.93.2 → bec_widgets-0.93.3}/bec_widgets/utils/generate_designer_plugin.py +0 -0
  153. {bec_widgets-0.93.2 → bec_widgets-0.93.3}/bec_widgets/utils/layout_manager.py +0 -0
  154. {bec_widgets-0.93.2 → bec_widgets-0.93.3}/bec_widgets/utils/plugin_templates/plugin.template +0 -0
  155. {bec_widgets-0.93.2 → bec_widgets-0.93.3}/bec_widgets/utils/plugin_templates/register.template +0 -0
  156. {bec_widgets-0.93.2 → bec_widgets-0.93.3}/bec_widgets/utils/plugin_utils.py +0 -0
  157. {bec_widgets-0.93.2 → bec_widgets-0.93.3}/bec_widgets/utils/reference_utils.py +0 -0
  158. {bec_widgets-0.93.2 → bec_widgets-0.93.3}/bec_widgets/utils/rpc_decorator.py +0 -0
  159. {bec_widgets-0.93.2 → bec_widgets-0.93.3}/bec_widgets/utils/thread_checker.py +0 -0
  160. {bec_widgets-0.93.2 → bec_widgets-0.93.3}/bec_widgets/utils/ui_loader.py +0 -0
  161. {bec_widgets-0.93.2 → bec_widgets-0.93.3}/bec_widgets/utils/validator_delegate.py +0 -0
  162. {bec_widgets-0.93.2 → bec_widgets-0.93.3}/bec_widgets/utils/widget_io.py +0 -0
  163. {bec_widgets-0.93.2 → bec_widgets-0.93.3}/bec_widgets/utils/yaml_dialog.py +0 -0
  164. {bec_widgets-0.93.2 → bec_widgets-0.93.3}/bec_widgets/widgets/__init__.py +0 -0
  165. {bec_widgets-0.93.2 → bec_widgets-0.93.3}/bec_widgets/widgets/base_classes/__init__.py +0 -0
  166. {bec_widgets-0.93.2 → bec_widgets-0.93.3}/bec_widgets/widgets/base_classes/device_input_base.py +0 -0
  167. {bec_widgets-0.93.2 → bec_widgets-0.93.3}/bec_widgets/widgets/bec_queue/__init__.py +0 -0
  168. {bec_widgets-0.93.2 → bec_widgets-0.93.3}/bec_widgets/widgets/bec_queue/bec_queue.py +0 -0
  169. {bec_widgets-0.93.2 → bec_widgets-0.93.3}/bec_widgets/widgets/bec_queue/bec_queue.pyproject +0 -0
  170. {bec_widgets-0.93.2 → bec_widgets-0.93.3}/bec_widgets/widgets/bec_queue/bec_queue_plugin.py +0 -0
  171. {bec_widgets-0.93.2 → bec_widgets-0.93.3}/bec_widgets/widgets/bec_queue/register_bec_queue.py +0 -0
  172. {bec_widgets-0.93.2 → bec_widgets-0.93.3}/bec_widgets/widgets/bec_status_box/__init__.py +0 -0
  173. {bec_widgets-0.93.2 → bec_widgets-0.93.3}/bec_widgets/widgets/bec_status_box/bec_status_box.py +0 -0
  174. {bec_widgets-0.93.2 → bec_widgets-0.93.3}/bec_widgets/widgets/bec_status_box/bec_status_box.pyproject +0 -0
  175. {bec_widgets-0.93.2 → bec_widgets-0.93.3}/bec_widgets/widgets/bec_status_box/bec_status_box_plugin.py +0 -0
  176. {bec_widgets-0.93.2 → bec_widgets-0.93.3}/bec_widgets/widgets/bec_status_box/register_bec_status_box.py +0 -0
  177. {bec_widgets-0.93.2 → bec_widgets-0.93.3}/bec_widgets/widgets/bec_status_box/status_item.py +0 -0
  178. {bec_widgets-0.93.2 → bec_widgets-0.93.3}/bec_widgets/widgets/color_button/__init__.py +0 -0
  179. {bec_widgets-0.93.2 → bec_widgets-0.93.3}/bec_widgets/widgets/color_button/color_button.pyproject +0 -0
  180. {bec_widgets-0.93.2 → bec_widgets-0.93.3}/bec_widgets/widgets/color_button/color_button_plugin.py +0 -0
  181. {bec_widgets-0.93.2 → bec_widgets-0.93.3}/bec_widgets/widgets/color_button/register_color_button.py +0 -0
  182. {bec_widgets-0.93.2 → bec_widgets-0.93.3}/bec_widgets/widgets/colormap_selector/__init__.py +0 -0
  183. {bec_widgets-0.93.2 → bec_widgets-0.93.3}/bec_widgets/widgets/colormap_selector/colormap_selector.py +0 -0
  184. {bec_widgets-0.93.2 → bec_widgets-0.93.3}/bec_widgets/widgets/colormap_selector/colormap_selector.pyproject +0 -0
  185. {bec_widgets-0.93.2 → bec_widgets-0.93.3}/bec_widgets/widgets/colormap_selector/colormap_selector_plugin.py +0 -0
  186. {bec_widgets-0.93.2 → bec_widgets-0.93.3}/bec_widgets/widgets/colormap_selector/register_colormap_selector.py +0 -0
  187. {bec_widgets-0.93.2 → bec_widgets-0.93.3}/bec_widgets/widgets/console/console.py +0 -0
  188. {bec_widgets-0.93.2 → bec_widgets-0.93.3}/bec_widgets/widgets/device_box/__init__.py +0 -0
  189. {bec_widgets-0.93.2 → bec_widgets-0.93.3}/bec_widgets/widgets/device_box/device_box.py +0 -0
  190. {bec_widgets-0.93.2 → bec_widgets-0.93.3}/bec_widgets/widgets/device_box/device_box.pyproject +0 -0
  191. {bec_widgets-0.93.2 → bec_widgets-0.93.3}/bec_widgets/widgets/device_box/device_box.ui +0 -0
  192. {bec_widgets-0.93.2 → bec_widgets-0.93.3}/bec_widgets/widgets/device_box/device_box_plugin.py +0 -0
  193. {bec_widgets-0.93.2 → bec_widgets-0.93.3}/bec_widgets/widgets/device_box/register_device_box.py +0 -0
  194. {bec_widgets-0.93.2 → bec_widgets-0.93.3}/bec_widgets/widgets/device_combobox/__init__.py +0 -0
  195. {bec_widgets-0.93.2 → bec_widgets-0.93.3}/bec_widgets/widgets/device_combobox/device_combo_box.pyproject +0 -0
  196. {bec_widgets-0.93.2 → bec_widgets-0.93.3}/bec_widgets/widgets/device_combobox/device_combo_box_plugin.py +0 -0
  197. {bec_widgets-0.93.2 → bec_widgets-0.93.3}/bec_widgets/widgets/device_combobox/device_combobox.py +0 -0
  198. {bec_widgets-0.93.2 → bec_widgets-0.93.3}/bec_widgets/widgets/device_combobox/register_device_combo_box.py +0 -0
  199. {bec_widgets-0.93.2 → bec_widgets-0.93.3}/bec_widgets/widgets/device_line_edit/__init__.py +0 -0
  200. {bec_widgets-0.93.2 → bec_widgets-0.93.3}/bec_widgets/widgets/device_line_edit/device_line_edit.py +0 -0
  201. {bec_widgets-0.93.2 → bec_widgets-0.93.3}/bec_widgets/widgets/device_line_edit/device_line_edit.pyproject +0 -0
  202. {bec_widgets-0.93.2 → bec_widgets-0.93.3}/bec_widgets/widgets/device_line_edit/device_line_edit_plugin.py +0 -0
  203. {bec_widgets-0.93.2 → bec_widgets-0.93.3}/bec_widgets/widgets/device_line_edit/register_device_line_edit.py +0 -0
  204. {bec_widgets-0.93.2 → bec_widgets-0.93.3}/bec_widgets/widgets/dock/__init__.py +0 -0
  205. {bec_widgets-0.93.2 → bec_widgets-0.93.3}/bec_widgets/widgets/dock/dock_area.pyproject +0 -0
  206. {bec_widgets-0.93.2 → bec_widgets-0.93.3}/bec_widgets/widgets/dock/dock_area_plugin.py +0 -0
  207. {bec_widgets-0.93.2 → bec_widgets-0.93.3}/bec_widgets/widgets/dock/register_dock_area.py +0 -0
  208. {bec_widgets-0.93.2 → bec_widgets-0.93.3}/bec_widgets/widgets/figure/__init__.py +0 -0
  209. {bec_widgets-0.93.2 → bec_widgets-0.93.3}/bec_widgets/widgets/figure/plots/__init__.py +0 -0
  210. {bec_widgets-0.93.2 → bec_widgets-0.93.3}/bec_widgets/widgets/figure/plots/axis_settings.py +0 -0
  211. {bec_widgets-0.93.2 → bec_widgets-0.93.3}/bec_widgets/widgets/figure/plots/axis_settings.ui +0 -0
  212. {bec_widgets-0.93.2 → bec_widgets-0.93.3}/bec_widgets/widgets/figure/plots/image/__init__.py +0 -0
  213. {bec_widgets-0.93.2 → bec_widgets-0.93.3}/bec_widgets/widgets/figure/plots/image/image_item.py +0 -0
  214. {bec_widgets-0.93.2 → bec_widgets-0.93.3}/bec_widgets/widgets/figure/plots/image/image_processor.py +0 -0
  215. {bec_widgets-0.93.2 → bec_widgets-0.93.3}/bec_widgets/widgets/figure/plots/motor_map/__init__.py +0 -0
  216. {bec_widgets-0.93.2 → bec_widgets-0.93.3}/bec_widgets/widgets/figure/plots/motor_map/motor_map.py +0 -0
  217. {bec_widgets-0.93.2 → bec_widgets-0.93.3}/bec_widgets/widgets/figure/plots/waveform/__init__.py +0 -0
  218. {bec_widgets-0.93.2 → bec_widgets-0.93.3}/bec_widgets/widgets/figure/plots/waveform/waveform.py +0 -0
  219. {bec_widgets-0.93.2 → bec_widgets-0.93.3}/bec_widgets/widgets/figure/plots/waveform/waveform_curve.py +0 -0
  220. {bec_widgets-0.93.2 → bec_widgets-0.93.3}/bec_widgets/widgets/image/__init__.py +0 -0
  221. {bec_widgets-0.93.2 → bec_widgets-0.93.3}/bec_widgets/widgets/image/bec_image_widget.pyproject +0 -0
  222. {bec_widgets-0.93.2 → bec_widgets-0.93.3}/bec_widgets/widgets/image/bec_image_widget_plugin.py +0 -0
  223. {bec_widgets-0.93.2 → bec_widgets-0.93.3}/bec_widgets/widgets/image/register_bec_image_widget.py +0 -0
  224. {bec_widgets-0.93.2 → bec_widgets-0.93.3}/bec_widgets/widgets/jupyter_console/__init__.py +0 -0
  225. {bec_widgets-0.93.2 → bec_widgets-0.93.3}/bec_widgets/widgets/jupyter_console/jupyter_console.py +0 -0
  226. {bec_widgets-0.93.2 → bec_widgets-0.93.3}/bec_widgets/widgets/motor_map/__init__.py +0 -0
  227. {bec_widgets-0.93.2 → bec_widgets-0.93.3}/bec_widgets/widgets/motor_map/bec_motor_map_widget.pyproject +0 -0
  228. {bec_widgets-0.93.2 → bec_widgets-0.93.3}/bec_widgets/widgets/motor_map/bec_motor_map_widget_plugin.py +0 -0
  229. {bec_widgets-0.93.2 → bec_widgets-0.93.3}/bec_widgets/widgets/motor_map/motor_map_dialog/__init__.py +0 -0
  230. {bec_widgets-0.93.2 → bec_widgets-0.93.3}/bec_widgets/widgets/motor_map/motor_map_dialog/motor_map_settings.ui +0 -0
  231. {bec_widgets-0.93.2 → bec_widgets-0.93.3}/bec_widgets/widgets/motor_map/motor_map_widget.py +0 -0
  232. {bec_widgets-0.93.2 → bec_widgets-0.93.3}/bec_widgets/widgets/motor_map/register_bec_motor_map_widget.py +0 -0
  233. {bec_widgets-0.93.2 → bec_widgets-0.93.3}/bec_widgets/widgets/position_indicator/__init__.py +0 -0
  234. {bec_widgets-0.93.2 → bec_widgets-0.93.3}/bec_widgets/widgets/position_indicator/position_indicator.py +0 -0
  235. {bec_widgets-0.93.2 → bec_widgets-0.93.3}/bec_widgets/widgets/position_indicator/position_indicator.pyproject +0 -0
  236. {bec_widgets-0.93.2 → bec_widgets-0.93.3}/bec_widgets/widgets/position_indicator/position_indicator_plugin.py +0 -0
  237. {bec_widgets-0.93.2 → bec_widgets-0.93.3}/bec_widgets/widgets/position_indicator/register_position_indicator.py +0 -0
  238. {bec_widgets-0.93.2 → bec_widgets-0.93.3}/bec_widgets/widgets/ring_progress_bar/__init__.py +0 -0
  239. {bec_widgets-0.93.2 → bec_widgets-0.93.3}/bec_widgets/widgets/ring_progress_bar/register_ring_progress_bar.py +0 -0
  240. {bec_widgets-0.93.2 → bec_widgets-0.93.3}/bec_widgets/widgets/ring_progress_bar/ring.py +0 -0
  241. {bec_widgets-0.93.2 → bec_widgets-0.93.3}/bec_widgets/widgets/ring_progress_bar/ring_progress_bar.py +0 -0
  242. {bec_widgets-0.93.2 → bec_widgets-0.93.3}/bec_widgets/widgets/ring_progress_bar/ring_progress_bar.pyproject +0 -0
  243. {bec_widgets-0.93.2 → bec_widgets-0.93.3}/bec_widgets/widgets/ring_progress_bar/ring_progress_bar_plugin.py +0 -0
  244. {bec_widgets-0.93.2 → bec_widgets-0.93.3}/bec_widgets/widgets/scan_control/__init__.py +0 -0
  245. {bec_widgets-0.93.2 → bec_widgets-0.93.3}/bec_widgets/widgets/scan_control/register_scan_control.py +0 -0
  246. {bec_widgets-0.93.2 → bec_widgets-0.93.3}/bec_widgets/widgets/scan_control/scan_control.py +0 -0
  247. {bec_widgets-0.93.2 → bec_widgets-0.93.3}/bec_widgets/widgets/scan_control/scan_control.pyproject +0 -0
  248. {bec_widgets-0.93.2 → bec_widgets-0.93.3}/bec_widgets/widgets/scan_control/scan_control_plugin.py +0 -0
  249. {bec_widgets-0.93.2 → bec_widgets-0.93.3}/bec_widgets/widgets/scan_control/scan_group_box.py +0 -0
  250. {bec_widgets-0.93.2 → bec_widgets-0.93.3}/bec_widgets/widgets/spinner/__init__.py +0 -0
  251. {bec_widgets-0.93.2 → bec_widgets-0.93.3}/bec_widgets/widgets/spinner/register_spinner_widget.py +0 -0
  252. {bec_widgets-0.93.2 → bec_widgets-0.93.3}/bec_widgets/widgets/spinner/spinner.py +0 -0
  253. {bec_widgets-0.93.2 → bec_widgets-0.93.3}/bec_widgets/widgets/spinner/spinner_widget.pyproject +0 -0
  254. {bec_widgets-0.93.2 → bec_widgets-0.93.3}/bec_widgets/widgets/spinner/spinner_widget_plugin.py +0 -0
  255. {bec_widgets-0.93.2 → bec_widgets-0.93.3}/bec_widgets/widgets/stop_button/__init__.py +0 -0
  256. {bec_widgets-0.93.2 → bec_widgets-0.93.3}/bec_widgets/widgets/stop_button/register_stop_button.py +0 -0
  257. {bec_widgets-0.93.2 → bec_widgets-0.93.3}/bec_widgets/widgets/stop_button/stop_button.py +0 -0
  258. {bec_widgets-0.93.2 → bec_widgets-0.93.3}/bec_widgets/widgets/stop_button/stop_button.pyproject +0 -0
  259. {bec_widgets-0.93.2 → bec_widgets-0.93.3}/bec_widgets/widgets/stop_button/stop_button_plugin.py +0 -0
  260. {bec_widgets-0.93.2 → bec_widgets-0.93.3}/bec_widgets/widgets/text_box/__init__.py +0 -0
  261. {bec_widgets-0.93.2 → bec_widgets-0.93.3}/bec_widgets/widgets/text_box/register_text_box.py +0 -0
  262. {bec_widgets-0.93.2 → bec_widgets-0.93.3}/bec_widgets/widgets/text_box/text_box.py +0 -0
  263. {bec_widgets-0.93.2 → bec_widgets-0.93.3}/bec_widgets/widgets/text_box/text_box.pyproject +0 -0
  264. {bec_widgets-0.93.2 → bec_widgets-0.93.3}/bec_widgets/widgets/text_box/text_box_plugin.py +0 -0
  265. {bec_widgets-0.93.2 → bec_widgets-0.93.3}/bec_widgets/widgets/toggle/__init__.py +0 -0
  266. {bec_widgets-0.93.2 → bec_widgets-0.93.3}/bec_widgets/widgets/toggle/register_toggle_switch.py +0 -0
  267. {bec_widgets-0.93.2 → bec_widgets-0.93.3}/bec_widgets/widgets/toggle/toggle.py +0 -0
  268. {bec_widgets-0.93.2 → bec_widgets-0.93.3}/bec_widgets/widgets/toggle/toggle_switch.pyproject +0 -0
  269. {bec_widgets-0.93.2 → bec_widgets-0.93.3}/bec_widgets/widgets/toggle/toggle_switch_plugin.py +0 -0
  270. {bec_widgets-0.93.2 → bec_widgets-0.93.3}/bec_widgets/widgets/vscode/__init__.py +0 -0
  271. {bec_widgets-0.93.2 → bec_widgets-0.93.3}/bec_widgets/widgets/vscode/register_vs_code_editor.py +0 -0
  272. {bec_widgets-0.93.2 → bec_widgets-0.93.3}/bec_widgets/widgets/vscode/vs_code_editor.pyproject +0 -0
  273. {bec_widgets-0.93.2 → bec_widgets-0.93.3}/bec_widgets/widgets/vscode/vs_code_editor_plugin.py +0 -0
  274. {bec_widgets-0.93.2 → bec_widgets-0.93.3}/bec_widgets/widgets/vscode/vscode.py +0 -0
  275. {bec_widgets-0.93.2 → bec_widgets-0.93.3}/bec_widgets/widgets/waveform/__init__.py +0 -0
  276. {bec_widgets-0.93.2 → bec_widgets-0.93.3}/bec_widgets/widgets/waveform/bec_waveform_widget.pyproject +0 -0
  277. {bec_widgets-0.93.2 → bec_widgets-0.93.3}/bec_widgets/widgets/waveform/bec_waveform_widget_plugin.py +0 -0
  278. {bec_widgets-0.93.2 → bec_widgets-0.93.3}/bec_widgets/widgets/waveform/register_bec_waveform_widget.py +0 -0
  279. {bec_widgets-0.93.2 → bec_widgets-0.93.3}/bec_widgets/widgets/waveform/waveform_popups/__init__.py +0 -0
  280. {bec_widgets-0.93.2 → bec_widgets-0.93.3}/bec_widgets/widgets/waveform/waveform_popups/curve_dialog/__init__.py +0 -0
  281. {bec_widgets-0.93.2 → bec_widgets-0.93.3}/bec_widgets/widgets/waveform/waveform_popups/curve_dialog/curve_dialog.py +0 -0
  282. {bec_widgets-0.93.2 → bec_widgets-0.93.3}/bec_widgets/widgets/waveform/waveform_popups/curve_dialog/curve_dialog.ui +0 -0
  283. {bec_widgets-0.93.2 → bec_widgets-0.93.3}/bec_widgets/widgets/waveform/waveform_popups/dap_summary_dialog/__init__.py +0 -0
  284. {bec_widgets-0.93.2 → bec_widgets-0.93.3}/bec_widgets/widgets/waveform/waveform_popups/dap_summary_dialog/dap_summary.ui +0 -0
  285. {bec_widgets-0.93.2 → bec_widgets-0.93.3}/bec_widgets/widgets/waveform/waveform_popups/dap_summary_dialog/dap_summary_dialog.py +0 -0
  286. {bec_widgets-0.93.2 → bec_widgets-0.93.3}/bec_widgets/widgets/waveform/waveform_widget.py +0 -0
  287. {bec_widgets-0.93.2 → bec_widgets-0.93.3}/bec_widgets/widgets/website/__init__.py +0 -0
  288. {bec_widgets-0.93.2 → bec_widgets-0.93.3}/bec_widgets/widgets/website/register_website_widget.py +0 -0
  289. {bec_widgets-0.93.2 → bec_widgets-0.93.3}/bec_widgets/widgets/website/website_widget.pyproject +0 -0
  290. {bec_widgets-0.93.2 → bec_widgets-0.93.3}/bec_widgets/widgets/website/website_widget_plugin.py +0 -0
  291. {bec_widgets-0.93.2 → bec_widgets-0.93.3}/docs/Makefile +0 -0
  292. {bec_widgets-0.93.2 → bec_widgets-0.93.3}/docs/_static/custom.css +0 -0
  293. {bec_widgets-0.93.2 → bec_widgets-0.93.3}/docs/_templates/custom-class-template.rst +0 -0
  294. {bec_widgets-0.93.2 → bec_widgets-0.93.3}/docs/_templates/custom-module-template.rst +0 -0
  295. {bec_widgets-0.93.2 → bec_widgets-0.93.3}/docs/api_reference/api_reference.md +0 -0
  296. {bec_widgets-0.93.2 → bec_widgets-0.93.3}/docs/assets/apps_48dp.svg +0 -0
  297. {bec_widgets-0.93.2 → bec_widgets-0.93.3}/docs/assets/display_settings_48dp.svg +0 -0
  298. {bec_widgets-0.93.2 → bec_widgets-0.93.3}/docs/assets/index_api.svg +0 -0
  299. {bec_widgets-0.93.2 → bec_widgets-0.93.3}/docs/assets/index_contribute.svg +0 -0
  300. {bec_widgets-0.93.2 → bec_widgets-0.93.3}/docs/assets/index_getting_started.svg +0 -0
  301. {bec_widgets-0.93.2 → bec_widgets-0.93.3}/docs/assets/index_user_guide.svg +0 -0
  302. {bec_widgets-0.93.2 → bec_widgets-0.93.3}/docs/assets/rocket_launch_48dp.svg +0 -0
  303. {bec_widgets-0.93.2 → bec_widgets-0.93.3}/docs/conf.py +0 -0
  304. {bec_widgets-0.93.2 → bec_widgets-0.93.3}/docs/developer/developer.md +0 -0
  305. {bec_widgets-0.93.2 → bec_widgets-0.93.3}/docs/developer/getting_started/development.md +0 -0
  306. {bec_widgets-0.93.2 → bec_widgets-0.93.3}/docs/developer/getting_started/getting_started.md +0 -0
  307. {bec_widgets-0.93.2 → bec_widgets-0.93.3}/docs/developer/widgets/widgets.md +0 -0
  308. {bec_widgets-0.93.2 → bec_widgets-0.93.3}/docs/index.md +0 -0
  309. {bec_widgets-0.93.2 → bec_widgets-0.93.3}/docs/introduction/introduction.md +0 -0
  310. {bec_widgets-0.93.2 → bec_widgets-0.93.3}/docs/make.bat +0 -0
  311. {bec_widgets-0.93.2 → bec_widgets-0.93.3}/docs/requirements.txt +0 -0
  312. {bec_widgets-0.93.2 → bec_widgets-0.93.3}/docs/user/api_reference/api_reference.md +0 -0
  313. {bec_widgets-0.93.2 → bec_widgets-0.93.3}/docs/user/applications/applications.md +0 -0
  314. {bec_widgets-0.93.2 → bec_widgets-0.93.3}/docs/user/customisation.md +0 -0
  315. {bec_widgets-0.93.2 → bec_widgets-0.93.3}/docs/user/getting_started/BECDockArea.png +0 -0
  316. {bec_widgets-0.93.2 → bec_widgets-0.93.3}/docs/user/getting_started/auto_updates.md +0 -0
  317. {bec_widgets-0.93.2 → bec_widgets-0.93.3}/docs/user/getting_started/getting_started.md +0 -0
  318. {bec_widgets-0.93.2 → bec_widgets-0.93.3}/docs/user/getting_started/gui_complex_gui.gif +0 -0
  319. {bec_widgets-0.93.2 → bec_widgets-0.93.3}/docs/user/getting_started/installation.md +0 -0
  320. {bec_widgets-0.93.2 → bec_widgets-0.93.3}/docs/user/getting_started/quick_start.md +0 -0
  321. {bec_widgets-0.93.2 → bec_widgets-0.93.3}/docs/user/getting_started/video_tutorials.md +0 -0
  322. {bec_widgets-0.93.2 → bec_widgets-0.93.3}/docs/user/user.md +0 -0
  323. {bec_widgets-0.93.2 → bec_widgets-0.93.3}/docs/user/widgets/BECFigure.png +0 -0
  324. {bec_widgets-0.93.2 → bec_widgets-0.93.3}/docs/user/widgets/bec_figure.md +0 -0
  325. {bec_widgets-0.93.2 → bec_widgets-0.93.3}/docs/user/widgets/bec_figure_dap.gif +0 -0
  326. {bec_widgets-0.93.2 → bec_widgets-0.93.3}/docs/user/widgets/bec_status_box.gif +0 -0
  327. {bec_widgets-0.93.2 → bec_widgets-0.93.3}/docs/user/widgets/bec_status_box.md +0 -0
  328. {bec_widgets-0.93.2 → bec_widgets-0.93.3}/docs/user/widgets/buttons.md +0 -0
  329. {bec_widgets-0.93.2 → bec_widgets-0.93.3}/docs/user/widgets/image_plot.gif +0 -0
  330. {bec_widgets-0.93.2 → bec_widgets-0.93.3}/docs/user/widgets/motor.gif +0 -0
  331. {bec_widgets-0.93.2 → bec_widgets-0.93.3}/docs/user/widgets/progress_bar.gif +0 -0
  332. {bec_widgets-0.93.2 → bec_widgets-0.93.3}/docs/user/widgets/ring_progress_bar.md +0 -0
  333. {bec_widgets-0.93.2 → bec_widgets-0.93.3}/docs/user/widgets/scan_control.gif +0 -0
  334. {bec_widgets-0.93.2 → bec_widgets-0.93.3}/docs/user/widgets/scan_control.md +0 -0
  335. {bec_widgets-0.93.2 → bec_widgets-0.93.3}/docs/user/widgets/scatter_2D.gif +0 -0
  336. {bec_widgets-0.93.2 → bec_widgets-0.93.3}/docs/user/widgets/text_box.md +0 -0
  337. {bec_widgets-0.93.2 → bec_widgets-0.93.3}/docs/user/widgets/w1D.gif +0 -0
  338. {bec_widgets-0.93.2 → bec_widgets-0.93.3}/docs/user/widgets/website.md +0 -0
  339. {bec_widgets-0.93.2 → bec_widgets-0.93.3}/docs/user/widgets/widgets.md +0 -0
  340. {bec_widgets-0.93.2 → bec_widgets-0.93.3}/tests/__init__.py +0 -0
  341. {bec_widgets-0.93.2 → bec_widgets-0.93.3}/tests/end-2-end/__init__.py +0 -0
  342. {bec_widgets-0.93.2 → bec_widgets-0.93.3}/tests/end-2-end/conftest.py +0 -0
  343. {bec_widgets-0.93.2 → bec_widgets-0.93.3}/tests/end-2-end/test_bec_dock_rpc_e2e.py +0 -0
  344. {bec_widgets-0.93.2 → bec_widgets-0.93.3}/tests/end-2-end/test_bec_figure_rpc_e2e.py +0 -0
  345. {bec_widgets-0.93.2 → bec_widgets-0.93.3}/tests/end-2-end/test_rpc_register_e2e.py +0 -0
  346. {bec_widgets-0.93.2 → bec_widgets-0.93.3}/tests/references/SpinnerWidget/SpinnerWidget_darwin.png +0 -0
  347. {bec_widgets-0.93.2 → bec_widgets-0.93.3}/tests/references/SpinnerWidget/SpinnerWidget_linux.png +0 -0
  348. {bec_widgets-0.93.2 → bec_widgets-0.93.3}/tests/references/SpinnerWidget/SpinnerWidget_started_darwin.png +0 -0
  349. {bec_widgets-0.93.2 → bec_widgets-0.93.3}/tests/references/SpinnerWidget/SpinnerWidget_started_linux.png +0 -0
  350. {bec_widgets-0.93.2 → bec_widgets-0.93.3}/tests/unit_tests/__init__.py +0 -0
  351. {bec_widgets-0.93.2 → bec_widgets-0.93.3}/tests/unit_tests/client_mocks.py +0 -0
  352. {bec_widgets-0.93.2 → bec_widgets-0.93.3}/tests/unit_tests/test_bec_connector.py +0 -0
  353. {bec_widgets-0.93.2 → bec_widgets-0.93.3}/tests/unit_tests/test_bec_dispatcher.py +0 -0
  354. {bec_widgets-0.93.2 → bec_widgets-0.93.3}/tests/unit_tests/test_client_utils.py +0 -0
  355. {bec_widgets-0.93.2 → bec_widgets-0.93.3}/tests/unit_tests/test_color_validation.py +0 -0
  356. {bec_widgets-0.93.2 → bec_widgets-0.93.3}/tests/unit_tests/test_configs/config_device.yaml +0 -0
  357. {bec_widgets-0.93.2 → bec_widgets-0.93.3}/tests/unit_tests/test_configs/config_device_no_entry.yaml +0 -0
  358. {bec_widgets-0.93.2 → bec_widgets-0.93.3}/tests/unit_tests/test_configs/config_scan.yaml +0 -0
  359. {bec_widgets-0.93.2 → bec_widgets-0.93.3}/tests/unit_tests/test_crosshair.py +0 -0
  360. {bec_widgets-0.93.2 → bec_widgets-0.93.3}/tests/unit_tests/test_device_box.py +0 -0
  361. {bec_widgets-0.93.2 → bec_widgets-0.93.3}/tests/unit_tests/test_error_utils.py +0 -0
  362. {bec_widgets-0.93.2 → bec_widgets-0.93.3}/tests/unit_tests/test_generate_cli_client.py +0 -0
  363. {bec_widgets-0.93.2 → bec_widgets-0.93.3}/tests/unit_tests/test_generate_plugin.py +0 -0
  364. {bec_widgets-0.93.2 → bec_widgets-0.93.3}/tests/unit_tests/test_msgs/__init__.py +0 -0
  365. {bec_widgets-0.93.2 → bec_widgets-0.93.3}/tests/unit_tests/test_msgs/available_scans_message.py +0 -0
  366. {bec_widgets-0.93.2 → bec_widgets-0.93.3}/tests/unit_tests/test_plugin_utils.py +0 -0
  367. {bec_widgets-0.93.2 → bec_widgets-0.93.3}/tests/unit_tests/test_rpc_register.py +0 -0
  368. {bec_widgets-0.93.2 → bec_widgets-0.93.3}/tests/unit_tests/test_rpc_server.py +0 -0
  369. {bec_widgets-0.93.2 → bec_widgets-0.93.3}/tests/unit_tests/test_rpc_widget_handler.py +0 -0
  370. {bec_widgets-0.93.2 → bec_widgets-0.93.3}/tests/unit_tests/test_scan_control_group_box.py +0 -0
  371. {bec_widgets-0.93.2 → bec_widgets-0.93.3}/tests/unit_tests/test_spinner.py +0 -0
  372. {bec_widgets-0.93.2 → bec_widgets-0.93.3}/tests/unit_tests/test_widget_io.py +0 -0
  373. {bec_widgets-0.93.2 → bec_widgets-0.93.3}/tests/unit_tests/test_yaml_dialog.py +0 -0
@@ -1,5 +1,29 @@
1
1
  # CHANGELOG
2
2
 
3
+ ## v0.93.3 (2024-08-07)
4
+
5
+ ### Fix
6
+
7
+ * fix(dock): properly shut down docks and temp areas ([`99ee545`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/99ee545e41c6078654958b668b5b329f85553d16))
8
+
9
+ * fix(settings): shut down settings dialog ([`b50b3a2`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/b50b3a27e68956e10e8169a0aa698c911d2d9642))
10
+
11
+ * fix(website): fixed teardown of website widgets ([`a3d4f5a`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/a3d4f5ac4bc52acfed2791a1724fade6972ed320))
12
+
13
+ * fix(dock): properly shut down docks and dock areas ([`bc26497`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/bc264975b1363c9dfea516621d7878c320677d15))
14
+
15
+ * fix(figure): cleanup pyqtgraph ([`ad07bbf`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/ad07bbf85e9c8d9838bdd686f69d41c235b7db19))
16
+
17
+ ### Test
18
+
19
+ * test: removed quit from teardown ([`cf94599`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/cf94599c2544d6831c8afbe7b340082077557ed1))
20
+
21
+ * test: removed explicit call to close the widget ([`bf6294e`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/bf6294ecbfd494565d2dc215e4d7e0c280ac7745))
22
+
23
+ * test: use factory instead of fixture to properly cleanup widgets on teardown ([`9856857`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/9856857f4cc7fa229c10d00fbae4452464a207cb))
24
+
25
+ * test: ensure all toplevelwidgets are closed ([`f9e5897`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/f9e58979009cf632feea529700ad191401dd7eb8))
26
+
3
27
  ## v0.93.2 (2024-08-07)
4
28
 
5
29
  ### Fix
@@ -119,31 +143,3 @@ This reverts commit fd6ae91993a23a7b8dbb2cf3c4b7c3eda6d2b0f6 ([`5aad401`](https:
119
143
  * test(dock_area): tests extended ([`06fab0e`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/06fab0eab926cef5677d4988fd1fce09da342dd8))
120
144
 
121
145
  ## v0.90.0 (2024-07-23)
122
-
123
- ### Feature
124
-
125
- * feat(image_widget): plugin added ([`4371168`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/43711680ba253f81fb0ffe764bcaae701b02bb49))
126
-
127
- * feat(image_widget): all toolbar actions added ([`501eb92`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/501eb923f12fa6aaa93f5428ca78e57694edfbc0))
128
-
129
- * feat(image_widget): image_widget added ([`6a9317f`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/6a9317facda896ee784c7fc1db0cd3d68cdfcf73))
130
-
131
- ### Fix
132
-
133
- * fix(axis_setting): fix compatibility for issue with horizontal line for PyQt6 ([`1cf6e32`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/1cf6e32303f82bc7c3f3391d0e96a88bc31f29fc))
134
-
135
- * fix(image_widget): image_widget autorange fixed ([`7f49893`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/7f49893d2ce3b9d02efa764f7f10442ed6ab8f3c))
136
-
137
- * fix(image_widget): image widget adjusted ([`3d2ca48`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/3d2ca4855c36fe0af59a4b540caa3c8023a81773))
138
-
139
- * fix(image): only single monitor image is allowed ([`fe7e542`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/fe7e542b19dc5b401523501acb74ac03edf62ad4))
140
-
141
- * fix(image): raw data are saved in image item to always have precise processing ([`c15035b`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/c15035b6b769a96780a16da9e7f75af3b823654c))
142
-
143
- ### Refactor
144
-
145
- * refactor(jupyter_console_example): added examples of standalone widgets ([`ba0d1ea`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/ba0d1ea9031b4ae2e2e73bf269fbfad973b924a5))
146
-
147
- ### Test
148
-
149
- * test(image_widget): tests added ([`70fb276`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/70fb276fdf31dffc105435d3dfe7c5caea0b10ce))
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: bec_widgets
3
- Version: 0.93.2
3
+ Version: 0.93.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
@@ -106,3 +106,14 @@ class SettingsDialog(QDialog):
106
106
  Apply the changes made in the settings widget without closing the dialog.
107
107
  """
108
108
  self.widget.accept_changes()
109
+
110
+ def cleanup(self):
111
+ """
112
+ Cleanup the dialog.
113
+ """
114
+ self.button_box.close()
115
+ self.button_box.deleteLater()
116
+
117
+ def closeEvent(self, event):
118
+ self.cleanup()
119
+ super().closeEvent(event)
@@ -34,3 +34,10 @@ class ColorButton(pg.ColorButton):
34
34
  return self.color().getRgb()
35
35
  if format == "HEX":
36
36
  return self.color().name()
37
+
38
+ def cleanup(self):
39
+ """
40
+ Clean up the ColorButton.
41
+ """
42
+ self.colorDialog.close()
43
+ self.colorDialog.deleteLater()
@@ -153,6 +153,7 @@ class BECDock(BECWidget, Dock):
153
153
  super().dropEvent(event)
154
154
  if old_area in self.orig_area.tempAreas and old_area != self.orig_area:
155
155
  self.orig_area.removeTempArea(old_area)
156
+ old_area.window().deleteLater()
156
157
 
157
158
  def float(self):
158
159
  """
@@ -284,7 +285,7 @@ class BECDock(BECWidget, Dock):
284
285
  """
285
286
  Attach the dock to the parent dock area.
286
287
  """
287
- self.orig_area.removeTempArea(self.area)
288
+ self.parent_dock_area.remove_temp_area(self.area)
288
289
 
289
290
  def detach(self):
290
291
  """
@@ -319,6 +320,8 @@ class BECDock(BECWidget, Dock):
319
320
  if hasattr(widget, "cleanup"):
320
321
  widget.cleanup()
321
322
  self.widgets.clear()
323
+ self.label.close()
324
+ self.label.deleteLater()
322
325
  super().cleanup()
323
326
 
324
327
  def close(self):
@@ -231,6 +231,7 @@ class BECDockArea(BECWidget, QWidget):
231
231
  self.config.docks.pop(name, None)
232
232
  if dock:
233
233
  dock.close()
234
+ dock.deleteLater()
234
235
  if len(self.dock_area.docks) <= 1:
235
236
  for dock in self.dock_area.docks.values():
236
237
  dock.hide_title_bar()
@@ -329,7 +330,16 @@ class BECDockArea(BECWidget, QWidget):
329
330
  """
330
331
  while self.dock_area.tempAreas:
331
332
  for temp_area in self.dock_area.tempAreas:
332
- self.dock_area.removeTempArea(temp_area)
333
+ self.remove_temp_area(temp_area)
334
+
335
+ def remove_temp_area(self, area):
336
+ """
337
+ Remove a temporary area from the dock area.
338
+ This is a patched method of pyqtgraph's removeTempArea
339
+ """
340
+ self.dock_area.tempAreas.remove(area)
341
+ area.window().close()
342
+ area.window().deleteLater()
333
343
 
334
344
  def clear_all(self):
335
345
  """
@@ -345,6 +355,10 @@ class BECDockArea(BECWidget, QWidget):
345
355
  Cleanup the dock area.
346
356
  """
347
357
  self.clear_all()
358
+ self.toolbar.close()
359
+ self.toolbar.deleteLater()
360
+ self.dock_area.close()
361
+ self.dock_area.deleteLater()
348
362
  super().cleanup()
349
363
 
350
364
  def close(self):
@@ -513,6 +513,13 @@ class BECFigure(BECWidget, pg.GraphicsLayoutWidget):
513
513
  if widget_id in self._widgets:
514
514
  raise ValueError(f"Widget with ID '{widget_id}' already exists.")
515
515
 
516
+ # Check if position is occupied
517
+ if row is not None and col is not None:
518
+ if self.getItem(row, col):
519
+ raise ValueError(f"Position at row {row} and column {col} is already occupied.")
520
+ else:
521
+ row, col = self._find_next_empty_position()
522
+
516
523
  widget = self.widget_handler.create_widget(
517
524
  widget_type=widget_type,
518
525
  widget_id=widget_id,
@@ -525,23 +532,11 @@ class BECFigure(BECWidget, pg.GraphicsLayoutWidget):
525
532
  # used otherwise multiple times
526
533
  widget.set_gui_id(widget_id)
527
534
 
528
- # Check if position is occupied
529
- if row is not None and col is not None:
530
- if self.getItem(row, col):
531
- raise ValueError(f"Position at row {row} and column {col} is already occupied.")
532
-
533
- widget.config.row = row
534
- widget.config.col = col
535
-
536
- # Add widget to the figure
537
- self.addItem(widget, row=row, col=col)
538
- else:
539
- row, col = self._find_next_empty_position()
540
- widget.config.row = row
541
- widget.config.col = col
535
+ widget.config.row = row
536
+ widget.config.col = col
542
537
 
543
- # Add widget to the figure
544
- self.addItem(widget, row=row, col=col)
538
+ # Add widget to the figure
539
+ self.addItem(widget, row=row, col=col)
545
540
 
546
541
  # Update num_cols and num_rows based on the added widget
547
542
  self.config.num_rows = max(self.config.num_rows, row + 1)
@@ -620,6 +615,7 @@ class BECFigure(BECWidget, pg.GraphicsLayoutWidget):
620
615
  """
621
616
  if widget_id in self._widgets:
622
617
  widget = self._widgets.pop(widget_id)
618
+ widget.cleanup_pyqtgraph()
623
619
  widget.cleanup()
624
620
  self.removeItem(widget)
625
621
  self.grid[widget.config.row][widget.config.col] = None
@@ -745,3 +741,12 @@ class BECFigure(BECWidget, pg.GraphicsLayoutWidget):
745
741
  self.config = FigureConfig(
746
742
  widget_class=self.__class__.__name__, gui_id=self.gui_id, theme=theme
747
743
  )
744
+
745
+ def cleanup_pyqtgraph_all_widgets(self):
746
+ """Clean up the pyqtgraph widget."""
747
+ for widget in self.widget_list:
748
+ widget.cleanup_pyqtgraph()
749
+
750
+ def cleanup(self):
751
+ """Close the figure widget."""
752
+ self.cleanup_pyqtgraph_all_widgets()
@@ -681,3 +681,17 @@ class BECImageShow(BECPlotBase):
681
681
  self.on_image_update, MessageEndpoints.device_monitor_2d(monitor)
682
682
  )
683
683
  self.images.clear()
684
+
685
+ def cleanup_pyqtgraph(self):
686
+ """Cleanup pyqtgraph items."""
687
+ super().cleanup_pyqtgraph()
688
+ item = self.plot_item
689
+ if not item.items:
690
+ return
691
+ cbar = item.items[0].color_bar
692
+ cbar.vb.menu.close()
693
+ cbar.vb.menu.deleteLater()
694
+ cbar.gradient.menu.close()
695
+ cbar.gradient.menu.deleteLater()
696
+ cbar.gradient.colorDialog.close()
697
+ cbar.gradient.colorDialog.deleteLater()
@@ -314,3 +314,11 @@ class BECPlotBase(BECConnector, pg.GraphicsLayout):
314
314
  """Remove the plot widget from the figure."""
315
315
  if self.figure is not None:
316
316
  self.figure.remove(widget_id=self.gui_id)
317
+
318
+ def cleanup_pyqtgraph(self):
319
+ """Cleanup pyqtgraph items."""
320
+ item = self.plot_item
321
+ item.vb.menu.close()
322
+ item.vb.menu.deleteLater()
323
+ item.ctrlMenu.close()
324
+ item.ctrlMenu.deleteLater()
@@ -458,6 +458,8 @@ class BECImageWidget(BECWidget, QWidget):
458
458
  def cleanup(self):
459
459
  self.fig.cleanup()
460
460
  self.client.shutdown()
461
+ self.toolbar.close()
462
+ self.toolbar.deleteLater()
461
463
  return super().cleanup()
462
464
 
463
465
 
@@ -45,3 +45,12 @@ class MotorMapSettings(SettingWidget):
45
45
  self.target_widget.set_scatter_size(scatter_size)
46
46
  self.target_widget.set_background_value(background_intensity)
47
47
  self.target_widget.set_color(color)
48
+
49
+ def cleanup(self):
50
+ self.ui.color.cleanup()
51
+ self.ui.color.close()
52
+ self.ui.color.deleteLater()
53
+
54
+ def closeEvent(self, event):
55
+ self.cleanup()
56
+ super().closeEvent(event)
@@ -64,6 +64,12 @@ class WebsiteWidget(BECWidget, QWebEngineView):
64
64
  """
65
65
  QWebEngineView.forward(self)
66
66
 
67
+ def cleanup(self):
68
+ """
69
+ Cleanup the widget
70
+ """
71
+ self.page().deleteLater()
72
+
67
73
 
68
74
  if __name__ == "__main__":
69
75
  import sys
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
4
4
 
5
5
  [project]
6
6
  name = "bec_widgets"
7
- version = "0.93.2"
7
+ version = "0.93.3"
8
8
  description = "BEC Widgets"
9
9
  requires-python = ">=3.10"
10
10
  classifiers = [
@@ -12,7 +12,6 @@ def scan_control(qtbot, bec_client_lib): # , mock_dev):
12
12
  qtbot.addWidget(widget)
13
13
  qtbot.waitExposed(widget)
14
14
  yield widget
15
- widget.close()
16
15
 
17
16
 
18
17
  def test_scan_control_populate_scans_e2e(scan_control):
@@ -0,0 +1,64 @@
1
+ import pytest
2
+ from pytestqt.exceptions import TimeoutError as QtBotTimeoutError
3
+ from qtpy.QtWidgets import QApplication
4
+
5
+ from bec_widgets.cli.rpc_register import RPCRegister
6
+ from bec_widgets.qt_utils import error_popups
7
+ from bec_widgets.utils import bec_dispatcher as bec_dispatcher_module
8
+
9
+
10
+ @pytest.fixture(autouse=True)
11
+ def qapplication(qtbot): # pylint: disable=unused-argument
12
+ yield
13
+
14
+ qapp = QApplication.instance()
15
+ # qapp.quit()
16
+ qapp.processEvents()
17
+ try:
18
+ qtbot.waitUntil(lambda: qapp.topLevelWidgets() == [])
19
+ except QtBotTimeoutError as exc:
20
+ raise TimeoutError(f"Failed to close all widgets: {qapp.topLevelWidgets()}") from exc
21
+
22
+
23
+ @pytest.fixture(autouse=True)
24
+ def rpc_register():
25
+ yield RPCRegister()
26
+ RPCRegister.reset_singleton()
27
+
28
+
29
+ @pytest.fixture(autouse=True)
30
+ def bec_dispatcher(threads_check): # pylint: disable=unused-argument
31
+ bec_dispatcher = bec_dispatcher_module.BECDispatcher()
32
+ yield bec_dispatcher
33
+ bec_dispatcher.disconnect_all()
34
+ # clean BEC client
35
+ bec_dispatcher.client.shutdown()
36
+ # reinitialize singleton for next test
37
+ bec_dispatcher_module.BECDispatcher.reset_singleton()
38
+
39
+
40
+ @pytest.fixture(autouse=True)
41
+ def clean_singleton():
42
+ error_popups._popup_utility_instance = None
43
+
44
+
45
+ def create_widget(qtbot, widget, *args, **kwargs):
46
+ """
47
+ Create a widget and add it to the qtbot for testing. This is a helper function that
48
+ should be used in all tests that require a widget to be created.
49
+ DO NOT CREATE WIDGETS DIRECTLY IN A FIXTURE!
50
+
51
+ Args:
52
+ qtbot (fixture): pytest-qt fixture
53
+ widget (QWidget): widget class to be created
54
+ *args: positional arguments for the widget
55
+ **kwargs: keyword arguments for the widget
56
+
57
+ Returns:
58
+ QWidget: the created widget
59
+
60
+ """
61
+ widget = widget(*args, **kwargs)
62
+ qtbot.addWidget(widget)
63
+ qtbot.waitExposed(widget)
64
+ return widget
@@ -14,7 +14,6 @@ def bec_dock_area(qtbot, mocked_client):
14
14
  qtbot.addWidget(widget)
15
15
  qtbot.waitExposed(widget)
16
16
  yield widget
17
- widget.close()
18
17
 
19
18
 
20
19
  def test_bec_dock_area_init(bec_dock_area):
@@ -9,18 +9,11 @@ from bec_widgets.widgets.figure.plots.motor_map.motor_map import BECMotorMap
9
9
  from bec_widgets.widgets.figure.plots.waveform.waveform import BECWaveform
10
10
 
11
11
  from .client_mocks import mocked_client
12
+ from .conftest import create_widget
12
13
 
13
14
 
14
- @pytest.fixture
15
- def bec_figure(qtbot, mocked_client):
16
- widget = BECFigure(client=mocked_client)
17
- qtbot.addWidget(widget)
18
- qtbot.waitExposed(widget)
19
- yield widget
20
- widget.close()
21
-
22
-
23
- def test_bec_figure_init(bec_figure):
15
+ def test_bec_figure_init(qtbot, mocked_client):
16
+ bec_figure = create_widget(qtbot, BECFigure, client=mocked_client)
24
17
  assert bec_figure is not None
25
18
  assert bec_figure.client is not None
26
19
  assert isinstance(bec_figure, BECFigure)
@@ -34,7 +27,8 @@ def test_bec_figure_init_with_config(mocked_client):
34
27
  assert widget.config.theme == "dark"
35
28
 
36
29
 
37
- def test_bec_figure_add_remove_plot(bec_figure):
30
+ def test_bec_figure_add_remove_plot(qtbot, mocked_client):
31
+ bec_figure = create_widget(qtbot, BECFigure, client=mocked_client)
38
32
  initial_count = len(bec_figure._widgets)
39
33
 
40
34
  # Adding 3 widgets - 2 WaveformBase and 1 PlotBase
@@ -64,7 +58,8 @@ def test_bec_figure_add_remove_plot(bec_figure):
64
58
  assert bec_figure._widgets[w1.gui_id].config.widget_class == "BECWaveform"
65
59
 
66
60
 
67
- def test_add_different_types_of_widgets(bec_figure):
61
+ def test_add_different_types_of_widgets(qtbot, mocked_client):
62
+ bec_figure = create_widget(qtbot, BECFigure, client=mocked_client)
68
63
  plt = bec_figure.plot(x_name="samx", y_name="bpm4i")
69
64
  im = bec_figure.image("eiger")
70
65
  motor_map = bec_figure.motor_map("samx", "samy")
@@ -74,7 +69,8 @@ def test_add_different_types_of_widgets(bec_figure):
74
69
  assert motor_map.__class__ == BECMotorMap
75
70
 
76
71
 
77
- def test_access_widgets_access_errors(bec_figure):
72
+ def test_access_widgets_access_errors(qtbot, mocked_client):
73
+ bec_figure = create_widget(qtbot, BECFigure, client=mocked_client)
78
74
  bec_figure.plot(row=0, col=0)
79
75
 
80
76
  # access widget by non-existent coordinates
@@ -96,7 +92,8 @@ def test_access_widgets_access_errors(bec_figure):
96
92
  )
97
93
 
98
94
 
99
- def test_add_plot_to_occupied_position(bec_figure):
95
+ def test_add_plot_to_occupied_position(qtbot, mocked_client):
96
+ bec_figure = create_widget(qtbot, BECFigure, client=mocked_client)
100
97
  bec_figure.plot(row=0, col=0)
101
98
 
102
99
  with pytest.raises(ValueError) as excinfo:
@@ -104,7 +101,8 @@ def test_add_plot_to_occupied_position(bec_figure):
104
101
  assert "Position at row 0 and column 0 is already occupied." in str(excinfo.value)
105
102
 
106
103
 
107
- def test_remove_plots(bec_figure):
104
+ def test_remove_plots(qtbot, mocked_client):
105
+ bec_figure = create_widget(qtbot, BECFigure, client=mocked_client)
108
106
  w1 = bec_figure.plot(row=0, col=0)
109
107
  w2 = bec_figure.plot(row=0, col=1)
110
108
  w3 = bec_figure.plot(row=1, col=0)
@@ -134,7 +132,8 @@ def test_remove_plots(bec_figure):
134
132
  assert len(bec_figure._widgets) == 1
135
133
 
136
134
 
137
- def test_remove_plots_by_coordinates_ints(bec_figure):
135
+ def test_remove_plots_by_coordinates_ints(qtbot, mocked_client):
136
+ bec_figure = create_widget(qtbot, BECFigure, client=mocked_client)
138
137
  w1 = bec_figure.plot(row=0, col=0)
139
138
  w2 = bec_figure.plot(row=0, col=1)
140
139
 
@@ -145,7 +144,8 @@ def test_remove_plots_by_coordinates_ints(bec_figure):
145
144
  assert len(bec_figure._widgets) == 1
146
145
 
147
146
 
148
- def test_remove_plots_by_coordinates_tuple(bec_figure):
147
+ def test_remove_plots_by_coordinates_tuple(qtbot, mocked_client):
148
+ bec_figure = create_widget(qtbot, BECFigure, client=mocked_client)
149
149
  w1 = bec_figure.plot(row=0, col=0)
150
150
  w2 = bec_figure.plot(row=0, col=1)
151
151
 
@@ -156,7 +156,8 @@ def test_remove_plots_by_coordinates_tuple(bec_figure):
156
156
  assert len(bec_figure._widgets) == 1
157
157
 
158
158
 
159
- def test_remove_plot_by_id_error(bec_figure):
159
+ def test_remove_plot_by_id_error(qtbot, mocked_client):
160
+ bec_figure = create_widget(qtbot, BECFigure, client=mocked_client)
160
161
  bec_figure.plot()
161
162
 
162
163
  with pytest.raises(ValueError) as excinfo:
@@ -164,7 +165,8 @@ def test_remove_plot_by_id_error(bec_figure):
164
165
  assert "Widget with ID 'non_existent_widget' does not exist." in str(excinfo.value)
165
166
 
166
167
 
167
- def test_remove_plot_by_coordinates_error(bec_figure):
168
+ def test_remove_plot_by_coordinates_error(qtbot, mocked_client):
169
+ bec_figure = create_widget(qtbot, BECFigure, client=mocked_client)
168
170
  bec_figure.plot(row=0, col=0)
169
171
 
170
172
  with pytest.raises(ValueError) as excinfo:
@@ -172,7 +174,8 @@ def test_remove_plot_by_coordinates_error(bec_figure):
172
174
  assert "No widget at coordinates (0, 1)" in str(excinfo.value)
173
175
 
174
176
 
175
- def test_remove_plot_by_providing_nothing(bec_figure):
177
+ def test_remove_plot_by_providing_nothing(qtbot, mocked_client):
178
+ bec_figure = create_widget(qtbot, BECFigure, client=mocked_client)
176
179
  bec_figure.plot(row=0, col=0)
177
180
 
178
181
  with pytest.raises(ValueError) as excinfo:
@@ -192,7 +195,8 @@ def test_remove_plot_by_providing_nothing(bec_figure):
192
195
  # assert bec_figure.backgroundBrush().color().name() == "#000000"
193
196
 
194
197
 
195
- def test_change_layout(bec_figure):
198
+ def test_change_layout(qtbot, mocked_client):
199
+ bec_figure = create_widget(qtbot, BECFigure, client=mocked_client)
196
200
  w1 = bec_figure.plot(row=0, col=0)
197
201
  w2 = bec_figure.plot(row=0, col=1)
198
202
  w3 = bec_figure.plot(row=1, col=0)
@@ -215,7 +219,8 @@ def test_change_layout(bec_figure):
215
219
  assert bec_figure[0, 3] == w4
216
220
 
217
221
 
218
- def test_clear_all(bec_figure):
222
+ def test_clear_all(qtbot, mocked_client):
223
+ bec_figure = create_widget(qtbot, BECFigure, client=mocked_client)
219
224
  bec_figure.plot(row=0, col=0)
220
225
  bec_figure.plot(row=0, col=1)
221
226
  bec_figure.plot(row=1, col=0)
@@ -227,7 +232,8 @@ def test_clear_all(bec_figure):
227
232
  assert np.shape(bec_figure.grid) == (0,)
228
233
 
229
234
 
230
- def test_shortcuts(bec_figure):
235
+ def test_shortcuts(qtbot, mocked_client):
236
+ bec_figure = create_widget(qtbot, BECFigure, client=mocked_client)
231
237
  plt = bec_figure.plot(x_name="samx", y_name="bpm4i")
232
238
  im = bec_figure.image("eiger")
233
239
  motor_map = bec_figure.motor_map("samx", "samy")
@@ -240,7 +246,8 @@ def test_shortcuts(bec_figure):
240
246
  assert motor_map.__class__ == BECMotorMap
241
247
 
242
248
 
243
- def test_plot_access_factory(bec_figure):
249
+ def test_plot_access_factory(qtbot, mocked_client):
250
+ bec_figure = create_widget(qtbot, BECFigure, client=mocked_client)
244
251
  plt_00 = bec_figure.plot(x_name="samx", y_name="bpm4i")
245
252
  plt_01 = bec_figure.plot(x_name="samx", y_name="bpm4i", row=0, col=1)
246
253
  plt_10 = bec_figure.plot(new=True)
@@ -6,8 +6,10 @@ import pytest
6
6
  from bec_lib import messages
7
7
  from qtpy.QtGui import QFontInfo
8
8
 
9
+ from bec_widgets.widgets.figure import BECFigure
10
+
9
11
  from .client_mocks import mocked_client
10
- from .test_bec_figure import bec_figure
12
+ from .conftest import create_widget
11
13
 
12
14
 
13
15
  @pytest.fixture
@@ -15,7 +17,8 @@ def bec_image_show(bec_figure):
15
17
  yield bec_figure.image("eiger")
16
18
 
17
19
 
18
- def test_on_image_update(bec_image_show):
20
+ def test_on_image_update(qtbot, mocked_client):
21
+ bec_image_show = create_widget(qtbot, BECFigure, client=mocked_client).image("eiger")
19
22
  data = np.random.rand(100, 100)
20
23
  msg = messages.DeviceMonitor2DMessage(device="eiger", data=data, metadata={"scan_id": "12345"})
21
24
  bec_image_show.on_image_update(msg.content, msg.metadata)
@@ -23,7 +26,8 @@ def test_on_image_update(bec_image_show):
23
26
  assert np.array_equal(img.get_data(), data)
24
27
 
25
28
 
26
- def test_autorange_on_image_update(bec_image_show):
29
+ def test_autorange_on_image_update(qtbot, mocked_client):
30
+ bec_image_show = create_widget(qtbot, BECFigure, client=mocked_client).image("eiger")
27
31
  # Check if autorange mode "mean" works, should be default
28
32
  data = np.random.rand(100, 100)
29
33
  msg = messages.DeviceMonitor2DMessage(device="eiger", data=data, metadata={"scan_id": "12345"})
@@ -15,7 +15,6 @@ def image_widget(qtbot, mocked_client):
15
15
  qtbot.addWidget(widget)
16
16
  qtbot.waitExposed(widget)
17
17
  yield widget
18
- widget.close()
19
18
 
20
19
 
21
20
  @pytest.fixture