bec-widgets 0.73.0__tar.gz → 0.73.2__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 (213) hide show
  1. {bec_widgets-0.73.0 → bec_widgets-0.73.2}/CHANGELOG.md +16 -20
  2. {bec_widgets-0.73.0 → bec_widgets-0.73.2}/PKG-INFO +1 -1
  3. {bec_widgets-0.73.0 → bec_widgets-0.73.2}/bec_widgets/cli/client_utils.py +1 -4
  4. {bec_widgets-0.73.0 → bec_widgets-0.73.2}/bec_widgets/cli/server.py +5 -1
  5. {bec_widgets-0.73.0 → bec_widgets-0.73.2}/bec_widgets/widgets/ring_progress_bar/ring.py +3 -3
  6. {bec_widgets-0.73.0 → bec_widgets-0.73.2}/bec_widgets/widgets/vscode/vscode.py +8 -1
  7. {bec_widgets-0.73.0 → bec_widgets-0.73.2}/pyproject.toml +1 -1
  8. {bec_widgets-0.73.0 → bec_widgets-0.73.2}/tests/unit_tests/test_vscode_widget.py +23 -6
  9. {bec_widgets-0.73.0 → bec_widgets-0.73.2}/.git_hooks/pre-commit +0 -0
  10. {bec_widgets-0.73.0 → bec_widgets-0.73.2}/.gitignore +0 -0
  11. {bec_widgets-0.73.0 → bec_widgets-0.73.2}/.gitlab/issue_templates/bug_report_template.md +0 -0
  12. {bec_widgets-0.73.0 → bec_widgets-0.73.2}/.gitlab/issue_templates/documentation_update_template.md +0 -0
  13. {bec_widgets-0.73.0 → bec_widgets-0.73.2}/.gitlab/issue_templates/feature_request_template.md +0 -0
  14. {bec_widgets-0.73.0 → bec_widgets-0.73.2}/.gitlab/merge_request_templates/default.md +0 -0
  15. {bec_widgets-0.73.0 → bec_widgets-0.73.2}/.gitlab-ci.yml +0 -0
  16. {bec_widgets-0.73.0 → bec_widgets-0.73.2}/.pylintrc +0 -0
  17. {bec_widgets-0.73.0 → bec_widgets-0.73.2}/.readthedocs.yaml +0 -0
  18. {bec_widgets-0.73.0 → bec_widgets-0.73.2}/LICENSE +0 -0
  19. {bec_widgets-0.73.0 → bec_widgets-0.73.2}/README.md +0 -0
  20. {bec_widgets-0.73.0 → bec_widgets-0.73.2}/bec_widgets/__init__.py +0 -0
  21. {bec_widgets-0.73.0 → bec_widgets-0.73.2}/bec_widgets/assets/bec_widgets_icon.png +0 -0
  22. {bec_widgets-0.73.0 → bec_widgets-0.73.2}/bec_widgets/assets/terminal_icon.png +0 -0
  23. {bec_widgets-0.73.0 → bec_widgets-0.73.2}/bec_widgets/cli/__init__.py +0 -0
  24. {bec_widgets-0.73.0 → bec_widgets-0.73.2}/bec_widgets/cli/auto_updates.py +0 -0
  25. {bec_widgets-0.73.0 → bec_widgets-0.73.2}/bec_widgets/cli/client.py +0 -0
  26. {bec_widgets-0.73.0 → bec_widgets-0.73.2}/bec_widgets/cli/generate_cli.py +0 -0
  27. {bec_widgets-0.73.0 → bec_widgets-0.73.2}/bec_widgets/cli/rpc_register.py +0 -0
  28. {bec_widgets-0.73.0 → bec_widgets-0.73.2}/bec_widgets/cli/rpc_wigdet_handler.py +0 -0
  29. {bec_widgets-0.73.0 → bec_widgets-0.73.2}/bec_widgets/examples/__init__.py +0 -0
  30. {bec_widgets-0.73.0 → bec_widgets-0.73.2}/bec_widgets/examples/jupyter_console/__init__.py +0 -0
  31. {bec_widgets-0.73.0 → bec_widgets-0.73.2}/bec_widgets/examples/jupyter_console/jupyter_console_window.py +0 -0
  32. {bec_widgets-0.73.0 → bec_widgets-0.73.2}/bec_widgets/examples/jupyter_console/jupyter_console_window.ui +0 -0
  33. {bec_widgets-0.73.0 → bec_widgets-0.73.2}/bec_widgets/examples/motor_movement/__init__.py +0 -0
  34. {bec_widgets-0.73.0 → bec_widgets-0.73.2}/bec_widgets/examples/motor_movement/motor_control_compilations.py +0 -0
  35. {bec_widgets-0.73.0 → bec_widgets-0.73.2}/bec_widgets/examples/motor_movement/motor_controller.ui +0 -0
  36. {bec_widgets-0.73.0 → bec_widgets-0.73.2}/bec_widgets/examples/plugin_example_pyside/__init__.py +0 -0
  37. {bec_widgets-0.73.0 → bec_widgets-0.73.2}/bec_widgets/examples/plugin_example_pyside/main.py +0 -0
  38. {bec_widgets-0.73.0 → bec_widgets-0.73.2}/bec_widgets/examples/plugin_example_pyside/registertictactoe.py +0 -0
  39. {bec_widgets-0.73.0 → bec_widgets-0.73.2}/bec_widgets/examples/plugin_example_pyside/taskmenuextension.pyproject +0 -0
  40. {bec_widgets-0.73.0 → bec_widgets-0.73.2}/bec_widgets/examples/plugin_example_pyside/tictactoe.py +0 -0
  41. {bec_widgets-0.73.0 → bec_widgets-0.73.2}/bec_widgets/examples/plugin_example_pyside/tictactoeplugin.py +0 -0
  42. {bec_widgets-0.73.0 → bec_widgets-0.73.2}/bec_widgets/examples/plugin_example_pyside/tictactoetaskmenu.py +0 -0
  43. {bec_widgets-0.73.0 → bec_widgets-0.73.2}/bec_widgets/utils/__init__.py +0 -0
  44. {bec_widgets-0.73.0 → bec_widgets-0.73.2}/bec_widgets/utils/bec_connector.py +0 -0
  45. {bec_widgets-0.73.0 → bec_widgets-0.73.2}/bec_widgets/utils/bec_designer.py +0 -0
  46. {bec_widgets-0.73.0 → bec_widgets-0.73.2}/bec_widgets/utils/bec_dispatcher.py +0 -0
  47. {bec_widgets-0.73.0 → bec_widgets-0.73.2}/bec_widgets/utils/bec_table.py +0 -0
  48. {bec_widgets-0.73.0 → bec_widgets-0.73.2}/bec_widgets/utils/colors.py +0 -0
  49. {bec_widgets-0.73.0 → bec_widgets-0.73.2}/bec_widgets/utils/container_utils.py +0 -0
  50. {bec_widgets-0.73.0 → bec_widgets-0.73.2}/bec_widgets/utils/crosshair.py +0 -0
  51. {bec_widgets-0.73.0 → bec_widgets-0.73.2}/bec_widgets/utils/entry_validator.py +0 -0
  52. {bec_widgets-0.73.0 → bec_widgets-0.73.2}/bec_widgets/utils/layout_manager.py +0 -0
  53. {bec_widgets-0.73.0 → bec_widgets-0.73.2}/bec_widgets/utils/plugin_utils.py +0 -0
  54. {bec_widgets-0.73.0 → bec_widgets-0.73.2}/bec_widgets/utils/rpc_decorator.py +0 -0
  55. {bec_widgets-0.73.0 → bec_widgets-0.73.2}/bec_widgets/utils/thread_checker.py +0 -0
  56. {bec_widgets-0.73.0 → bec_widgets-0.73.2}/bec_widgets/utils/ui_loader.py +0 -0
  57. {bec_widgets-0.73.0 → bec_widgets-0.73.2}/bec_widgets/utils/validator_delegate.py +0 -0
  58. {bec_widgets-0.73.0 → bec_widgets-0.73.2}/bec_widgets/utils/widget_io.py +0 -0
  59. {bec_widgets-0.73.0 → bec_widgets-0.73.2}/bec_widgets/utils/yaml_dialog.py +0 -0
  60. {bec_widgets-0.73.0 → bec_widgets-0.73.2}/bec_widgets/widgets/__init__.py +0 -0
  61. {bec_widgets-0.73.0 → bec_widgets-0.73.2}/bec_widgets/widgets/bec_status_box/__init__.py +0 -0
  62. {bec_widgets-0.73.0 → bec_widgets-0.73.2}/bec_widgets/widgets/bec_status_box/bec_status_box.py +0 -0
  63. {bec_widgets-0.73.0 → bec_widgets-0.73.2}/bec_widgets/widgets/bec_status_box/status_item.py +0 -0
  64. {bec_widgets-0.73.0 → bec_widgets-0.73.2}/bec_widgets/widgets/buttons/__init__.py +0 -0
  65. {bec_widgets-0.73.0 → bec_widgets-0.73.2}/bec_widgets/widgets/buttons/stop_button/__init__.py +0 -0
  66. {bec_widgets-0.73.0 → bec_widgets-0.73.2}/bec_widgets/widgets/buttons/stop_button/stop_button.py +0 -0
  67. {bec_widgets-0.73.0 → bec_widgets-0.73.2}/bec_widgets/widgets/device_inputs/__init__.py +0 -0
  68. {bec_widgets-0.73.0 → bec_widgets-0.73.2}/bec_widgets/widgets/device_inputs/device_combobox/__init__.py +0 -0
  69. {bec_widgets-0.73.0 → bec_widgets-0.73.2}/bec_widgets/widgets/device_inputs/device_combobox/device_combobox.py +0 -0
  70. {bec_widgets-0.73.0 → bec_widgets-0.73.2}/bec_widgets/widgets/device_inputs/device_combobox/device_combobox.pyproject +0 -0
  71. {bec_widgets-0.73.0 → bec_widgets-0.73.2}/bec_widgets/widgets/device_inputs/device_combobox/device_combobox_plugin.py +0 -0
  72. {bec_widgets-0.73.0 → bec_widgets-0.73.2}/bec_widgets/widgets/device_inputs/device_combobox/launch_device_combobox.py +0 -0
  73. {bec_widgets-0.73.0 → bec_widgets-0.73.2}/bec_widgets/widgets/device_inputs/device_combobox/register_device_combobox.py +0 -0
  74. {bec_widgets-0.73.0 → bec_widgets-0.73.2}/bec_widgets/widgets/device_inputs/device_input_base.py +0 -0
  75. {bec_widgets-0.73.0 → bec_widgets-0.73.2}/bec_widgets/widgets/device_inputs/device_line_edit/__init__.py +0 -0
  76. {bec_widgets-0.73.0 → bec_widgets-0.73.2}/bec_widgets/widgets/device_inputs/device_line_edit/device_line_edit.py +0 -0
  77. {bec_widgets-0.73.0 → bec_widgets-0.73.2}/bec_widgets/widgets/device_inputs/device_line_edit/device_line_edit.pyproject +0 -0
  78. {bec_widgets-0.73.0 → bec_widgets-0.73.2}/bec_widgets/widgets/device_inputs/device_line_edit/device_line_edit_plugin.py +0 -0
  79. {bec_widgets-0.73.0 → bec_widgets-0.73.2}/bec_widgets/widgets/device_inputs/device_line_edit/launch_device_line_edit.py +0 -0
  80. {bec_widgets-0.73.0 → bec_widgets-0.73.2}/bec_widgets/widgets/device_inputs/device_line_edit/register_device_line_edit.py +0 -0
  81. {bec_widgets-0.73.0 → bec_widgets-0.73.2}/bec_widgets/widgets/dock/__init__.py +0 -0
  82. {bec_widgets-0.73.0 → bec_widgets-0.73.2}/bec_widgets/widgets/dock/dock.py +0 -0
  83. {bec_widgets-0.73.0 → bec_widgets-0.73.2}/bec_widgets/widgets/dock/dock_area.py +0 -0
  84. {bec_widgets-0.73.0 → bec_widgets-0.73.2}/bec_widgets/widgets/figure/__init__.py +0 -0
  85. {bec_widgets-0.73.0 → bec_widgets-0.73.2}/bec_widgets/widgets/figure/figure.py +0 -0
  86. {bec_widgets-0.73.0 → bec_widgets-0.73.2}/bec_widgets/widgets/figure/plots/__init__.py +0 -0
  87. {bec_widgets-0.73.0 → bec_widgets-0.73.2}/bec_widgets/widgets/figure/plots/image/__init__.py +0 -0
  88. {bec_widgets-0.73.0 → bec_widgets-0.73.2}/bec_widgets/widgets/figure/plots/image/image.py +0 -0
  89. {bec_widgets-0.73.0 → bec_widgets-0.73.2}/bec_widgets/widgets/figure/plots/image/image_item.py +0 -0
  90. {bec_widgets-0.73.0 → bec_widgets-0.73.2}/bec_widgets/widgets/figure/plots/image/image_processor.py +0 -0
  91. {bec_widgets-0.73.0 → bec_widgets-0.73.2}/bec_widgets/widgets/figure/plots/motor_map/__init__.py +0 -0
  92. {bec_widgets-0.73.0 → bec_widgets-0.73.2}/bec_widgets/widgets/figure/plots/motor_map/motor_map.py +0 -0
  93. {bec_widgets-0.73.0 → bec_widgets-0.73.2}/bec_widgets/widgets/figure/plots/plot_base.py +0 -0
  94. {bec_widgets-0.73.0 → bec_widgets-0.73.2}/bec_widgets/widgets/figure/plots/waveform/__init__.py +0 -0
  95. {bec_widgets-0.73.0 → bec_widgets-0.73.2}/bec_widgets/widgets/figure/plots/waveform/waveform.py +0 -0
  96. {bec_widgets-0.73.0 → bec_widgets-0.73.2}/bec_widgets/widgets/figure/plots/waveform/waveform_curve.py +0 -0
  97. {bec_widgets-0.73.0 → bec_widgets-0.73.2}/bec_widgets/widgets/jupyter_console/__init__.py +0 -0
  98. {bec_widgets-0.73.0 → bec_widgets-0.73.2}/bec_widgets/widgets/jupyter_console/jupyter_console.py +0 -0
  99. {bec_widgets-0.73.0 → bec_widgets-0.73.2}/bec_widgets/widgets/motor_control/__init__.py +0 -0
  100. {bec_widgets-0.73.0 → bec_widgets-0.73.2}/bec_widgets/widgets/motor_control/motor_control.py +0 -0
  101. {bec_widgets-0.73.0 → bec_widgets-0.73.2}/bec_widgets/widgets/motor_control/motor_table/__init__.py +0 -0
  102. {bec_widgets-0.73.0 → bec_widgets-0.73.2}/bec_widgets/widgets/motor_control/motor_table/motor_table.py +0 -0
  103. {bec_widgets-0.73.0 → bec_widgets-0.73.2}/bec_widgets/widgets/motor_control/motor_table/motor_table.ui +0 -0
  104. {bec_widgets-0.73.0 → bec_widgets-0.73.2}/bec_widgets/widgets/motor_control/movement_absolute/__init__.py +0 -0
  105. {bec_widgets-0.73.0 → bec_widgets-0.73.2}/bec_widgets/widgets/motor_control/movement_absolute/movement_absolute.py +0 -0
  106. {bec_widgets-0.73.0 → bec_widgets-0.73.2}/bec_widgets/widgets/motor_control/movement_absolute/movement_absolute.ui +0 -0
  107. {bec_widgets-0.73.0 → bec_widgets-0.73.2}/bec_widgets/widgets/motor_control/movement_relative/__init__.py +0 -0
  108. {bec_widgets-0.73.0 → bec_widgets-0.73.2}/bec_widgets/widgets/motor_control/movement_relative/movement_relative.py +0 -0
  109. {bec_widgets-0.73.0 → bec_widgets-0.73.2}/bec_widgets/widgets/motor_control/movement_relative/movement_relative.ui +0 -0
  110. {bec_widgets-0.73.0 → bec_widgets-0.73.2}/bec_widgets/widgets/motor_control/selection/__init__.py +0 -0
  111. {bec_widgets-0.73.0 → bec_widgets-0.73.2}/bec_widgets/widgets/motor_control/selection/selection.py +0 -0
  112. {bec_widgets-0.73.0 → bec_widgets-0.73.2}/bec_widgets/widgets/motor_control/selection/selection.ui +0 -0
  113. {bec_widgets-0.73.0 → bec_widgets-0.73.2}/bec_widgets/widgets/ring_progress_bar/__init__.py +0 -0
  114. {bec_widgets-0.73.0 → bec_widgets-0.73.2}/bec_widgets/widgets/ring_progress_bar/ring_progress_bar.py +0 -0
  115. {bec_widgets-0.73.0 → bec_widgets-0.73.2}/bec_widgets/widgets/scan_control/__init__.py +0 -0
  116. {bec_widgets-0.73.0 → bec_widgets-0.73.2}/bec_widgets/widgets/scan_control/scan_control.py +0 -0
  117. {bec_widgets-0.73.0 → bec_widgets-0.73.2}/bec_widgets/widgets/scan_control/scan_group_box.py +0 -0
  118. {bec_widgets-0.73.0 → bec_widgets-0.73.2}/bec_widgets/widgets/text_box/__init__.py +0 -0
  119. {bec_widgets-0.73.0 → bec_widgets-0.73.2}/bec_widgets/widgets/text_box/text_box.py +0 -0
  120. {bec_widgets-0.73.0 → bec_widgets-0.73.2}/bec_widgets/widgets/toolbar/__init__.py +0 -0
  121. {bec_widgets-0.73.0 → bec_widgets-0.73.2}/bec_widgets/widgets/toolbar/toolbar.py +0 -0
  122. {bec_widgets-0.73.0 → bec_widgets-0.73.2}/bec_widgets/widgets/vscode/__init__.py +0 -0
  123. {bec_widgets-0.73.0 → bec_widgets-0.73.2}/bec_widgets/widgets/website/__init__.py +0 -0
  124. {bec_widgets-0.73.0 → bec_widgets-0.73.2}/bec_widgets/widgets/website/website.py +0 -0
  125. {bec_widgets-0.73.0 → bec_widgets-0.73.2}/docs/Makefile +0 -0
  126. {bec_widgets-0.73.0 → bec_widgets-0.73.2}/docs/_static/custom.css +0 -0
  127. {bec_widgets-0.73.0 → bec_widgets-0.73.2}/docs/_templates/custom-class-template.rst +0 -0
  128. {bec_widgets-0.73.0 → bec_widgets-0.73.2}/docs/_templates/custom-module-template.rst +0 -0
  129. {bec_widgets-0.73.0 → bec_widgets-0.73.2}/docs/api_reference/api_reference.md +0 -0
  130. {bec_widgets-0.73.0 → bec_widgets-0.73.2}/docs/assets/apps_48dp.svg +0 -0
  131. {bec_widgets-0.73.0 → bec_widgets-0.73.2}/docs/assets/display_settings_48dp.svg +0 -0
  132. {bec_widgets-0.73.0 → bec_widgets-0.73.2}/docs/assets/index_api.svg +0 -0
  133. {bec_widgets-0.73.0 → bec_widgets-0.73.2}/docs/assets/index_contribute.svg +0 -0
  134. {bec_widgets-0.73.0 → bec_widgets-0.73.2}/docs/assets/index_getting_started.svg +0 -0
  135. {bec_widgets-0.73.0 → bec_widgets-0.73.2}/docs/assets/index_user_guide.svg +0 -0
  136. {bec_widgets-0.73.0 → bec_widgets-0.73.2}/docs/assets/rocket_launch_48dp.svg +0 -0
  137. {bec_widgets-0.73.0 → bec_widgets-0.73.2}/docs/conf.py +0 -0
  138. {bec_widgets-0.73.0 → bec_widgets-0.73.2}/docs/developer/developer.md +0 -0
  139. {bec_widgets-0.73.0 → bec_widgets-0.73.2}/docs/developer/getting_started/development.md +0 -0
  140. {bec_widgets-0.73.0 → bec_widgets-0.73.2}/docs/developer/getting_started/getting_started.md +0 -0
  141. {bec_widgets-0.73.0 → bec_widgets-0.73.2}/docs/developer/widgets/widgets.md +0 -0
  142. {bec_widgets-0.73.0 → bec_widgets-0.73.2}/docs/index.md +0 -0
  143. {bec_widgets-0.73.0 → bec_widgets-0.73.2}/docs/introduction/introduction.md +0 -0
  144. {bec_widgets-0.73.0 → bec_widgets-0.73.2}/docs/make.bat +0 -0
  145. {bec_widgets-0.73.0 → bec_widgets-0.73.2}/docs/requirements.txt +0 -0
  146. {bec_widgets-0.73.0 → bec_widgets-0.73.2}/docs/user/api_reference/api_reference.md +0 -0
  147. {bec_widgets-0.73.0 → bec_widgets-0.73.2}/docs/user/applications/applications.md +0 -0
  148. {bec_widgets-0.73.0 → bec_widgets-0.73.2}/docs/user/customisation.md +0 -0
  149. {bec_widgets-0.73.0 → bec_widgets-0.73.2}/docs/user/getting_started/BECDockArea.png +0 -0
  150. {bec_widgets-0.73.0 → bec_widgets-0.73.2}/docs/user/getting_started/auto_updates.md +0 -0
  151. {bec_widgets-0.73.0 → bec_widgets-0.73.2}/docs/user/getting_started/getting_started.md +0 -0
  152. {bec_widgets-0.73.0 → bec_widgets-0.73.2}/docs/user/getting_started/gui_complex_gui.gif +0 -0
  153. {bec_widgets-0.73.0 → bec_widgets-0.73.2}/docs/user/getting_started/installation.md +0 -0
  154. {bec_widgets-0.73.0 → bec_widgets-0.73.2}/docs/user/getting_started/quick_start.md +0 -0
  155. {bec_widgets-0.73.0 → bec_widgets-0.73.2}/docs/user/user.md +0 -0
  156. {bec_widgets-0.73.0 → bec_widgets-0.73.2}/docs/user/widgets/BECFigure.png +0 -0
  157. {bec_widgets-0.73.0 → bec_widgets-0.73.2}/docs/user/widgets/bec_figure.md +0 -0
  158. {bec_widgets-0.73.0 → bec_widgets-0.73.2}/docs/user/widgets/bec_status_box.gif +0 -0
  159. {bec_widgets-0.73.0 → bec_widgets-0.73.2}/docs/user/widgets/bec_status_box.md +0 -0
  160. {bec_widgets-0.73.0 → bec_widgets-0.73.2}/docs/user/widgets/buttons.md +0 -0
  161. {bec_widgets-0.73.0 → bec_widgets-0.73.2}/docs/user/widgets/image_plot.gif +0 -0
  162. {bec_widgets-0.73.0 → bec_widgets-0.73.2}/docs/user/widgets/motor.gif +0 -0
  163. {bec_widgets-0.73.0 → bec_widgets-0.73.2}/docs/user/widgets/progress_bar.gif +0 -0
  164. {bec_widgets-0.73.0 → bec_widgets-0.73.2}/docs/user/widgets/ring_progress_bar.md +0 -0
  165. {bec_widgets-0.73.0 → bec_widgets-0.73.2}/docs/user/widgets/scan_control.gif +0 -0
  166. {bec_widgets-0.73.0 → bec_widgets-0.73.2}/docs/user/widgets/scan_control.md +0 -0
  167. {bec_widgets-0.73.0 → bec_widgets-0.73.2}/docs/user/widgets/scatter_2D.gif +0 -0
  168. {bec_widgets-0.73.0 → bec_widgets-0.73.2}/docs/user/widgets/text_box.md +0 -0
  169. {bec_widgets-0.73.0 → bec_widgets-0.73.2}/docs/user/widgets/w1D.gif +0 -0
  170. {bec_widgets-0.73.0 → bec_widgets-0.73.2}/docs/user/widgets/website.md +0 -0
  171. {bec_widgets-0.73.0 → bec_widgets-0.73.2}/docs/user/widgets/widgets.md +0 -0
  172. {bec_widgets-0.73.0 → bec_widgets-0.73.2}/tests/__init__.py +0 -0
  173. {bec_widgets-0.73.0 → bec_widgets-0.73.2}/tests/end-2-end/__init__.py +0 -0
  174. {bec_widgets-0.73.0 → bec_widgets-0.73.2}/tests/end-2-end/conftest.py +0 -0
  175. {bec_widgets-0.73.0 → bec_widgets-0.73.2}/tests/end-2-end/test_bec_dock_rpc_e2e.py +0 -0
  176. {bec_widgets-0.73.0 → bec_widgets-0.73.2}/tests/end-2-end/test_bec_figure_rpc_e2e.py +0 -0
  177. {bec_widgets-0.73.0 → bec_widgets-0.73.2}/tests/end-2-end/test_rpc_register_e2e.py +0 -0
  178. {bec_widgets-0.73.0 → bec_widgets-0.73.2}/tests/end-2-end/test_scan_control_e2e.py +0 -0
  179. {bec_widgets-0.73.0 → bec_widgets-0.73.2}/tests/unit_tests/__init__.py +0 -0
  180. {bec_widgets-0.73.0 → bec_widgets-0.73.2}/tests/unit_tests/client_mocks.py +0 -0
  181. {bec_widgets-0.73.0 → bec_widgets-0.73.2}/tests/unit_tests/conftest.py +0 -0
  182. {bec_widgets-0.73.0 → bec_widgets-0.73.2}/tests/unit_tests/test_bec_connector.py +0 -0
  183. {bec_widgets-0.73.0 → bec_widgets-0.73.2}/tests/unit_tests/test_bec_dispatcher.py +0 -0
  184. {bec_widgets-0.73.0 → bec_widgets-0.73.2}/tests/unit_tests/test_bec_dock.py +0 -0
  185. {bec_widgets-0.73.0 → bec_widgets-0.73.2}/tests/unit_tests/test_bec_figure.py +0 -0
  186. {bec_widgets-0.73.0 → bec_widgets-0.73.2}/tests/unit_tests/test_bec_image.py +0 -0
  187. {bec_widgets-0.73.0 → bec_widgets-0.73.2}/tests/unit_tests/test_bec_motor_map.py +0 -0
  188. {bec_widgets-0.73.0 → bec_widgets-0.73.2}/tests/unit_tests/test_bec_status_box.py +0 -0
  189. {bec_widgets-0.73.0 → bec_widgets-0.73.2}/tests/unit_tests/test_client_utils.py +0 -0
  190. {bec_widgets-0.73.0 → bec_widgets-0.73.2}/tests/unit_tests/test_color_validation.py +0 -0
  191. {bec_widgets-0.73.0 → bec_widgets-0.73.2}/tests/unit_tests/test_configs/config_device.yaml +0 -0
  192. {bec_widgets-0.73.0 → bec_widgets-0.73.2}/tests/unit_tests/test_configs/config_device_no_entry.yaml +0 -0
  193. {bec_widgets-0.73.0 → bec_widgets-0.73.2}/tests/unit_tests/test_configs/config_scan.yaml +0 -0
  194. {bec_widgets-0.73.0 → bec_widgets-0.73.2}/tests/unit_tests/test_crosshair.py +0 -0
  195. {bec_widgets-0.73.0 → bec_widgets-0.73.2}/tests/unit_tests/test_device_input_base.py +0 -0
  196. {bec_widgets-0.73.0 → bec_widgets-0.73.2}/tests/unit_tests/test_device_input_widgets.py +0 -0
  197. {bec_widgets-0.73.0 → bec_widgets-0.73.2}/tests/unit_tests/test_generate_cli_client.py +0 -0
  198. {bec_widgets-0.73.0 → bec_widgets-0.73.2}/tests/unit_tests/test_motor_control.py +0 -0
  199. {bec_widgets-0.73.0 → bec_widgets-0.73.2}/tests/unit_tests/test_msgs/__init__.py +0 -0
  200. {bec_widgets-0.73.0 → bec_widgets-0.73.2}/tests/unit_tests/test_msgs/available_scans_message.py +0 -0
  201. {bec_widgets-0.73.0 → bec_widgets-0.73.2}/tests/unit_tests/test_plot_base.py +0 -0
  202. {bec_widgets-0.73.0 → bec_widgets-0.73.2}/tests/unit_tests/test_plugin_utils.py +0 -0
  203. {bec_widgets-0.73.0 → bec_widgets-0.73.2}/tests/unit_tests/test_ring_progress_bar.py +0 -0
  204. {bec_widgets-0.73.0 → bec_widgets-0.73.2}/tests/unit_tests/test_rpc_register.py +0 -0
  205. {bec_widgets-0.73.0 → bec_widgets-0.73.2}/tests/unit_tests/test_rpc_widget_handler.py +0 -0
  206. {bec_widgets-0.73.0 → bec_widgets-0.73.2}/tests/unit_tests/test_scan_control.py +0 -0
  207. {bec_widgets-0.73.0 → bec_widgets-0.73.2}/tests/unit_tests/test_scan_control_group_box.py +0 -0
  208. {bec_widgets-0.73.0 → bec_widgets-0.73.2}/tests/unit_tests/test_stop_button.py +0 -0
  209. {bec_widgets-0.73.0 → bec_widgets-0.73.2}/tests/unit_tests/test_text_box_widget.py +0 -0
  210. {bec_widgets-0.73.0 → bec_widgets-0.73.2}/tests/unit_tests/test_waveform1d.py +0 -0
  211. {bec_widgets-0.73.0 → bec_widgets-0.73.2}/tests/unit_tests/test_website_widget.py +0 -0
  212. {bec_widgets-0.73.0 → bec_widgets-0.73.2}/tests/unit_tests/test_widget_io.py +0 -0
  213. {bec_widgets-0.73.0 → bec_widgets-0.73.2}/tests/unit_tests/test_yaml_dialog.py +0 -0
@@ -1,5 +1,21 @@
1
1
  # CHANGELOG
2
2
 
3
+ ## v0.73.2 (2024-06-25)
4
+
5
+ ### Fix
6
+
7
+ * fix(vscode): only run terminate if the process is still alive ([`7120f3e`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/7120f3e93b054b788f15e2d5bcd688e3c140c1ce))
8
+
9
+ * fix(rpc): trigger shutdown of server when gui is terminated ([`acc1318`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/acc13183e28030e3ca9af21bb081e1eed081622b))
10
+
11
+ * fix(rpc): remove of calling "close" and waiting for gui_is_alive ([`f75fc19`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/f75fc19c5b10022763252917ca473f404a25165a))
12
+
13
+ ## v0.73.1 (2024-06-25)
14
+
15
+ ### Fix
16
+
17
+ * fix(ringprogressbar): removed hard-coded endpoint strings ([`1de3cbf`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/1de3cbf65a1832150917a7549a1bf3efdee6371a))
18
+
3
19
  ## v0.73.0 (2024-06-25)
4
20
 
5
21
  ### Feature
@@ -124,8 +140,6 @@
124
140
 
125
141
  * feat: bec-gui-server: redirect stdout and stderr (if any) as proper debug and error log entries ([`d1266a1`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/d1266a1ce148ff89557a039e3a182a87a3948f49))
126
142
 
127
- * feat: add logger for BEC GUI server ([`630616e`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/630616ec729f60aa0b4d17a9e0379f9c6198eb96))
128
-
129
143
  ### Fix
130
144
 
131
145
  * fix: ignore GUI server output (any output will go to log file)
@@ -135,21 +149,3 @@ stderr streams will be redirected as log entries with levels DEBUG or ERROR
135
149
  in their parent process ([`ce37416`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/ce374163cab87a92847409051739777bc505a77b))
136
150
 
137
151
  * fix: do not create 'BECClient' logger when instantiating BECDispatcher ([`f7d0b07`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/f7d0b0768ace42a33e2556bb33611d4f02e5a6d9))
138
-
139
- ## v0.67.0 (2024-06-21)
140
-
141
- ### Documentation
142
-
143
- * docs: add widget to documentation ([`6fa1c06`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/6fa1c06053131dabd084bb3cf13c853b5d3ce833))
144
-
145
- ### Feature
146
-
147
- * feat: introduce BECStatusBox Widget ([`443b6c1`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/443b6c1d7b02c772fda02e2d1eefd5bd40249e0c))
148
-
149
- ### Refactor
150
-
151
- * refactor: Change inheritance to QTreeWidget from QWidget ([`d2f2b20`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/d2f2b206bb0eab60b8a9b0d0ac60a6b7887fa6fb))
152
-
153
- ### Test
154
-
155
- * test: add test suite for bec_status_box and status_item ([`5d4ca81`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/5d4ca816cdedec4c88aba9eb326f85392504ea1c))
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: bec_widgets
3
- Version: 0.73.0
3
+ Version: 0.73.2
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
@@ -203,15 +203,12 @@ class BECGuiClientMixin:
203
203
  if self._process is None:
204
204
  return
205
205
 
206
- self._run_rpc("close", (), wait_for_rpc_response=False)
207
- while self.gui_is_alive():
208
- time.sleep(0.2)
209
-
210
206
  self._client.shutdown()
211
207
  if self._process:
212
208
  self._process.terminate()
213
209
  if self._process_output_processing_thread:
214
210
  self._process_output_processing_thread.join()
211
+ self._process.wait()
215
212
  self._process = None
216
213
 
217
214
 
@@ -1,3 +1,5 @@
1
+ from __future__ import annotations
2
+
1
3
  import inspect
2
4
  import signal
3
5
  import sys
@@ -29,7 +31,7 @@ class BECWidgetsCLIServer:
29
31
  dispatcher: BECDispatcher = None,
30
32
  client=None,
31
33
  config=None,
32
- gui_class: Union["BECFigure", "BECDockArea"] = BECFigure,
34
+ gui_class: Union[BECFigure, BECDockArea] = BECFigure,
33
35
  ) -> None:
34
36
  self.dispatcher = BECDispatcher(config=config) if dispatcher is None else dispatcher
35
37
  self.client = self.dispatcher.client if client is None else client
@@ -118,6 +120,7 @@ class BECWidgetsCLIServer:
118
120
  def shutdown(self): # TODO not sure if needed when cleanup is done at level of BECConnector
119
121
  self._shutdown_event = True
120
122
  self._heartbeat_timer.stop()
123
+ self.gui.close()
121
124
  self.client.shutdown()
122
125
 
123
126
 
@@ -207,6 +210,7 @@ def main():
207
210
  app.quit()
208
211
 
209
212
  signal.signal(signal.SIGINT, sigint_handler)
213
+ signal.signal(signal.SIGTERM, sigint_handler)
210
214
 
211
215
  sys.exit(app.exec())
212
216
 
@@ -2,7 +2,7 @@ from __future__ import annotations
2
2
 
3
3
  from typing import Literal, Optional
4
4
 
5
- from bec_lib.endpoints import EndpointInfo
5
+ from bec_lib.endpoints import EndpointInfo, MessageEndpoints
6
6
  from pydantic import BaseModel, Field, field_validator
7
7
  from pydantic_core import PydanticCustomError
8
8
  from qtpy import QtGui
@@ -21,14 +21,14 @@ class ProgressbarConnections(BaseModel):
21
21
  slot = values.data["slot"]
22
22
  v = v.endpoint if isinstance(v, EndpointInfo) else v
23
23
  if slot == "on_scan_progress":
24
- if v != "scans/scan_progress":
24
+ if v != MessageEndpoints.scan_progress().endpoint:
25
25
  raise PydanticCustomError(
26
26
  "unsupported endpoint",
27
27
  "For slot 'on_scan_progress', endpoint must be MessageEndpoint.scan_progress or 'scans/scan_progress'.",
28
28
  {"wrong_value": v},
29
29
  )
30
30
  elif slot == "on_device_readback":
31
- if not v.startswith("internal/devices/readback/"):
31
+ if not v.startswith(MessageEndpoints.device_readback("").endpoint):
32
32
  raise PydanticCustomError(
33
33
  "unsupported endpoint",
34
34
  "For slot 'on_device_readback', endpoint must be MessageEndpoint.device_readback(device) or 'internal/devices/readback/{device}'.",
@@ -60,7 +60,7 @@ class VSCodeEditor(WebsiteWidget):
60
60
  """
61
61
  Cleanup the VSCode editor.
62
62
  """
63
- if not self.process:
63
+ if not self.process or self.process.poll() is not None:
64
64
  return
65
65
  os.killpg(os.getpgid(self.process.pid), signal.SIGTERM)
66
66
  self.process.wait()
@@ -72,6 +72,13 @@ class VSCodeEditor(WebsiteWidget):
72
72
  self.cleanup_vscode()
73
73
  return super().cleanup()
74
74
 
75
+ def close(self):
76
+ """
77
+ Close the widget.
78
+ """
79
+ self.cleanup_vscode()
80
+ return super().close()
81
+
75
82
 
76
83
  if __name__ == "__main__": # pragma: no cover
77
84
  import sys
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
4
4
 
5
5
  [project]
6
6
  name = "bec_widgets"
7
- version = "0.73.0"
7
+ version = "0.73.2"
8
8
  description = "BEC Widgets"
9
9
  requires-python = ">=3.10"
10
10
  classifiers = [
@@ -46,7 +46,8 @@ def test_start_server(qtbot, mocked_client):
46
46
  )
47
47
 
48
48
 
49
- def test_close_event(qtbot, vscode_widget):
49
+ @pytest.fixture
50
+ def patched_vscode_process(qtbot, vscode_widget):
50
51
  with mock.patch("bec_widgets.widgets.vscode.vscode.os.killpg") as mock_killpg:
51
52
  with mock.patch("bec_widgets.widgets.vscode.vscode.os.getpgid") as mock_getpgid:
52
53
  with mock.patch(
@@ -54,8 +55,24 @@ def test_close_event(qtbot, vscode_widget):
54
55
  ) as mock_close_event:
55
56
  mock_getpgid.return_value = 123
56
57
  vscode_widget.process = mock.Mock()
57
- vscode_widget.process.pid = 123
58
- vscode_widget.closeEvent(None)
59
- mock_killpg.assert_called_once_with(123, 15)
60
- vscode_widget.process.wait.assert_called_once()
61
- mock_close_event.assert_called_once()
58
+ yield vscode_widget, mock_killpg, mock_close_event
59
+
60
+
61
+ def test_close_event(qtbot, patched_vscode_process):
62
+ vscode_patched, mock_killpg, mock_close_event = patched_vscode_process
63
+ vscode_patched.process.pid = 123
64
+ vscode_patched.process.poll.return_value = None
65
+ vscode_patched.closeEvent(None)
66
+ mock_killpg.assert_called_once_with(123, 15)
67
+ vscode_patched.process.wait.assert_called_once()
68
+ mock_close_event.assert_called_once()
69
+
70
+
71
+ def test_close_event_on_terminated_code(qtbot, patched_vscode_process):
72
+ vscode_patched, mock_killpg, mock_close_event = patched_vscode_process
73
+ vscode_patched.process.pid = 123
74
+ vscode_patched.process.poll.return_value = 0
75
+ vscode_patched.closeEvent(None)
76
+ mock_killpg.assert_not_called()
77
+ vscode_patched.process.wait.assert_not_called()
78
+ mock_close_event.assert_called_once()
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes