bec-widgets 0.82.1__tar.gz → 0.82.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 (246) hide show
  1. {bec_widgets-0.82.1 → bec_widgets-0.82.2}/CHANGELOG.md +6 -6
  2. {bec_widgets-0.82.1 → bec_widgets-0.82.2}/PKG-INFO +1 -1
  3. {bec_widgets-0.82.1 → bec_widgets-0.82.2}/bec_widgets/cli/client_utils.py +5 -2
  4. {bec_widgets-0.82.1 → bec_widgets-0.82.2}/bec_widgets/cli/server.py +24 -10
  5. {bec_widgets-0.82.1 → bec_widgets-0.82.2}/pyproject.toml +1 -1
  6. bec_widgets-0.82.2/tests/unit_tests/test_client_utils.py +76 -0
  7. bec_widgets-0.82.2/tests/unit_tests/test_rpc_server.py +42 -0
  8. bec_widgets-0.82.1/tests/unit_tests/test_client_utils.py +0 -29
  9. {bec_widgets-0.82.1 → bec_widgets-0.82.2}/.git_hooks/pre-commit +0 -0
  10. {bec_widgets-0.82.1 → bec_widgets-0.82.2}/.gitignore +0 -0
  11. {bec_widgets-0.82.1 → bec_widgets-0.82.2}/.gitlab/issue_templates/bug_report_template.md +0 -0
  12. {bec_widgets-0.82.1 → bec_widgets-0.82.2}/.gitlab/issue_templates/documentation_update_template.md +0 -0
  13. {bec_widgets-0.82.1 → bec_widgets-0.82.2}/.gitlab/issue_templates/feature_request_template.md +0 -0
  14. {bec_widgets-0.82.1 → bec_widgets-0.82.2}/.gitlab/merge_request_templates/default.md +0 -0
  15. {bec_widgets-0.82.1 → bec_widgets-0.82.2}/.gitlab-ci.yml +0 -0
  16. {bec_widgets-0.82.1 → bec_widgets-0.82.2}/.pylintrc +0 -0
  17. {bec_widgets-0.82.1 → bec_widgets-0.82.2}/.readthedocs.yaml +0 -0
  18. {bec_widgets-0.82.1 → bec_widgets-0.82.2}/LICENSE +0 -0
  19. {bec_widgets-0.82.1 → bec_widgets-0.82.2}/README.md +0 -0
  20. {bec_widgets-0.82.1 → bec_widgets-0.82.2}/bec_widgets/__init__.py +0 -0
  21. {bec_widgets-0.82.1 → bec_widgets-0.82.2}/bec_widgets/assets/bec_widgets_icon.png +0 -0
  22. {bec_widgets-0.82.1 → bec_widgets-0.82.2}/bec_widgets/assets/terminal_icon.png +0 -0
  23. {bec_widgets-0.82.1 → bec_widgets-0.82.2}/bec_widgets/cli/__init__.py +0 -0
  24. {bec_widgets-0.82.1 → bec_widgets-0.82.2}/bec_widgets/cli/auto_updates.py +0 -0
  25. {bec_widgets-0.82.1 → bec_widgets-0.82.2}/bec_widgets/cli/client.py +0 -0
  26. {bec_widgets-0.82.1 → bec_widgets-0.82.2}/bec_widgets/cli/generate_cli.py +0 -0
  27. {bec_widgets-0.82.1 → bec_widgets-0.82.2}/bec_widgets/cli/rpc_register.py +0 -0
  28. {bec_widgets-0.82.1 → bec_widgets-0.82.2}/bec_widgets/cli/rpc_wigdet_handler.py +0 -0
  29. {bec_widgets-0.82.1 → bec_widgets-0.82.2}/bec_widgets/examples/__init__.py +0 -0
  30. {bec_widgets-0.82.1 → bec_widgets-0.82.2}/bec_widgets/examples/jupyter_console/__init__.py +0 -0
  31. {bec_widgets-0.82.1 → bec_widgets-0.82.2}/bec_widgets/examples/jupyter_console/jupyter_console_window.py +0 -0
  32. {bec_widgets-0.82.1 → bec_widgets-0.82.2}/bec_widgets/examples/jupyter_console/jupyter_console_window.ui +0 -0
  33. {bec_widgets-0.82.1 → bec_widgets-0.82.2}/bec_widgets/examples/plugin_example_pyside/__init__.py +0 -0
  34. {bec_widgets-0.82.1 → bec_widgets-0.82.2}/bec_widgets/examples/plugin_example_pyside/main.py +0 -0
  35. {bec_widgets-0.82.1 → bec_widgets-0.82.2}/bec_widgets/examples/plugin_example_pyside/registertictactoe.py +0 -0
  36. {bec_widgets-0.82.1 → bec_widgets-0.82.2}/bec_widgets/examples/plugin_example_pyside/taskmenuextension.pyproject +0 -0
  37. {bec_widgets-0.82.1 → bec_widgets-0.82.2}/bec_widgets/examples/plugin_example_pyside/tictactoe.py +0 -0
  38. {bec_widgets-0.82.1 → bec_widgets-0.82.2}/bec_widgets/examples/plugin_example_pyside/tictactoeplugin.py +0 -0
  39. {bec_widgets-0.82.1 → bec_widgets-0.82.2}/bec_widgets/examples/plugin_example_pyside/tictactoetaskmenu.py +0 -0
  40. {bec_widgets-0.82.1 → bec_widgets-0.82.2}/bec_widgets/qt_utils/__init__.py +0 -0
  41. {bec_widgets-0.82.1 → bec_widgets-0.82.2}/bec_widgets/qt_utils/settings_dialog.py +0 -0
  42. {bec_widgets-0.82.1 → bec_widgets-0.82.2}/bec_widgets/qt_utils/toolbar.py +0 -0
  43. {bec_widgets-0.82.1 → bec_widgets-0.82.2}/bec_widgets/utils/__init__.py +0 -0
  44. {bec_widgets-0.82.1 → bec_widgets-0.82.2}/bec_widgets/utils/bec_connector.py +0 -0
  45. {bec_widgets-0.82.1 → bec_widgets-0.82.2}/bec_widgets/utils/bec_designer.py +0 -0
  46. {bec_widgets-0.82.1 → bec_widgets-0.82.2}/bec_widgets/utils/bec_dispatcher.py +0 -0
  47. {bec_widgets-0.82.1 → bec_widgets-0.82.2}/bec_widgets/utils/bec_table.py +0 -0
  48. {bec_widgets-0.82.1 → bec_widgets-0.82.2}/bec_widgets/utils/bec_widget.py +0 -0
  49. {bec_widgets-0.82.1 → bec_widgets-0.82.2}/bec_widgets/utils/colors.py +0 -0
  50. {bec_widgets-0.82.1 → bec_widgets-0.82.2}/bec_widgets/utils/container_utils.py +0 -0
  51. {bec_widgets-0.82.1 → bec_widgets-0.82.2}/bec_widgets/utils/crosshair.py +0 -0
  52. {bec_widgets-0.82.1 → bec_widgets-0.82.2}/bec_widgets/utils/entry_validator.py +0 -0
  53. {bec_widgets-0.82.1 → bec_widgets-0.82.2}/bec_widgets/utils/generate_designer_plugin.py +0 -0
  54. {bec_widgets-0.82.1 → bec_widgets-0.82.2}/bec_widgets/utils/layout_manager.py +0 -0
  55. {bec_widgets-0.82.1 → bec_widgets-0.82.2}/bec_widgets/utils/plugin_templates/plugin.template +0 -0
  56. {bec_widgets-0.82.1 → bec_widgets-0.82.2}/bec_widgets/utils/plugin_templates/register.template +0 -0
  57. {bec_widgets-0.82.1 → bec_widgets-0.82.2}/bec_widgets/utils/plugin_utils.py +0 -0
  58. {bec_widgets-0.82.1 → bec_widgets-0.82.2}/bec_widgets/utils/rpc_decorator.py +0 -0
  59. {bec_widgets-0.82.1 → bec_widgets-0.82.2}/bec_widgets/utils/thread_checker.py +0 -0
  60. {bec_widgets-0.82.1 → bec_widgets-0.82.2}/bec_widgets/utils/ui_loader.py +0 -0
  61. {bec_widgets-0.82.1 → bec_widgets-0.82.2}/bec_widgets/utils/validator_delegate.py +0 -0
  62. {bec_widgets-0.82.1 → bec_widgets-0.82.2}/bec_widgets/utils/widget_io.py +0 -0
  63. {bec_widgets-0.82.1 → bec_widgets-0.82.2}/bec_widgets/utils/yaml_dialog.py +0 -0
  64. {bec_widgets-0.82.1 → bec_widgets-0.82.2}/bec_widgets/widgets/__init__.py +0 -0
  65. {bec_widgets-0.82.1 → bec_widgets-0.82.2}/bec_widgets/widgets/base_classes/__init__.py +0 -0
  66. {bec_widgets-0.82.1 → bec_widgets-0.82.2}/bec_widgets/widgets/base_classes/device_input_base.py +0 -0
  67. {bec_widgets-0.82.1 → bec_widgets-0.82.2}/bec_widgets/widgets/bec_queue/__init__.py +0 -0
  68. {bec_widgets-0.82.1 → bec_widgets-0.82.2}/bec_widgets/widgets/bec_queue/bec_queue.py +0 -0
  69. {bec_widgets-0.82.1 → bec_widgets-0.82.2}/bec_widgets/widgets/bec_queue/bec_queue.pyproject +0 -0
  70. {bec_widgets-0.82.1 → bec_widgets-0.82.2}/bec_widgets/widgets/bec_queue/bec_queue_plugin.py +0 -0
  71. {bec_widgets-0.82.1 → bec_widgets-0.82.2}/bec_widgets/widgets/bec_queue/register_bec_queue.py +0 -0
  72. {bec_widgets-0.82.1 → bec_widgets-0.82.2}/bec_widgets/widgets/bec_status_box/__init__.py +0 -0
  73. {bec_widgets-0.82.1 → bec_widgets-0.82.2}/bec_widgets/widgets/bec_status_box/bec_status_box.py +0 -0
  74. {bec_widgets-0.82.1 → bec_widgets-0.82.2}/bec_widgets/widgets/bec_status_box/bec_status_box.pyproject +0 -0
  75. {bec_widgets-0.82.1 → bec_widgets-0.82.2}/bec_widgets/widgets/bec_status_box/bec_status_box_plugin.py +0 -0
  76. {bec_widgets-0.82.1 → bec_widgets-0.82.2}/bec_widgets/widgets/bec_status_box/register_bec_status_box.py +0 -0
  77. {bec_widgets-0.82.1 → bec_widgets-0.82.2}/bec_widgets/widgets/bec_status_box/status_item.py +0 -0
  78. {bec_widgets-0.82.1 → bec_widgets-0.82.2}/bec_widgets/widgets/color_button/__init__.py +0 -0
  79. {bec_widgets-0.82.1 → bec_widgets-0.82.2}/bec_widgets/widgets/color_button/assets/color_button.png +0 -0
  80. {bec_widgets-0.82.1 → bec_widgets-0.82.2}/bec_widgets/widgets/color_button/color_button.py +0 -0
  81. {bec_widgets-0.82.1 → bec_widgets-0.82.2}/bec_widgets/widgets/color_button/color_button.pyproject +0 -0
  82. {bec_widgets-0.82.1 → bec_widgets-0.82.2}/bec_widgets/widgets/color_button/color_button_plugin.py +0 -0
  83. {bec_widgets-0.82.1 → bec_widgets-0.82.2}/bec_widgets/widgets/color_button/register_color_button.py +0 -0
  84. {bec_widgets-0.82.1 → bec_widgets-0.82.2}/bec_widgets/widgets/console/console.py +0 -0
  85. {bec_widgets-0.82.1 → bec_widgets-0.82.2}/bec_widgets/widgets/device_combobox/__init__.py +0 -0
  86. {bec_widgets-0.82.1 → bec_widgets-0.82.2}/bec_widgets/widgets/device_combobox/assets/device_combobox_icon.png +0 -0
  87. {bec_widgets-0.82.1 → bec_widgets-0.82.2}/bec_widgets/widgets/device_combobox/device_combobox.py +0 -0
  88. {bec_widgets-0.82.1 → bec_widgets-0.82.2}/bec_widgets/widgets/device_combobox/device_combobox.pyproject +0 -0
  89. {bec_widgets-0.82.1 → bec_widgets-0.82.2}/bec_widgets/widgets/device_combobox/device_combobox_plugin.py +0 -0
  90. {bec_widgets-0.82.1 → bec_widgets-0.82.2}/bec_widgets/widgets/device_combobox/register_device_combobox.py +0 -0
  91. {bec_widgets-0.82.1 → bec_widgets-0.82.2}/bec_widgets/widgets/device_line_edit/__init__.py +0 -0
  92. {bec_widgets-0.82.1 → bec_widgets-0.82.2}/bec_widgets/widgets/device_line_edit/assets/line_edit_icon.png +0 -0
  93. {bec_widgets-0.82.1 → bec_widgets-0.82.2}/bec_widgets/widgets/device_line_edit/device_line_edit.py +0 -0
  94. {bec_widgets-0.82.1 → bec_widgets-0.82.2}/bec_widgets/widgets/device_line_edit/device_line_edit.pyproject +0 -0
  95. {bec_widgets-0.82.1 → bec_widgets-0.82.2}/bec_widgets/widgets/device_line_edit/device_line_edit_plugin.py +0 -0
  96. {bec_widgets-0.82.1 → bec_widgets-0.82.2}/bec_widgets/widgets/device_line_edit/register_device_line_edit.py +0 -0
  97. {bec_widgets-0.82.1 → bec_widgets-0.82.2}/bec_widgets/widgets/dock/__init__.py +0 -0
  98. {bec_widgets-0.82.1 → bec_widgets-0.82.2}/bec_widgets/widgets/dock/dock.py +0 -0
  99. {bec_widgets-0.82.1 → bec_widgets-0.82.2}/bec_widgets/widgets/dock/dock_area.py +0 -0
  100. {bec_widgets-0.82.1 → bec_widgets-0.82.2}/bec_widgets/widgets/figure/__init__.py +0 -0
  101. {bec_widgets-0.82.1 → bec_widgets-0.82.2}/bec_widgets/widgets/figure/figure.py +0 -0
  102. {bec_widgets-0.82.1 → bec_widgets-0.82.2}/bec_widgets/widgets/figure/plots/__init__.py +0 -0
  103. {bec_widgets-0.82.1 → bec_widgets-0.82.2}/bec_widgets/widgets/figure/plots/axis_settings.py +0 -0
  104. {bec_widgets-0.82.1 → bec_widgets-0.82.2}/bec_widgets/widgets/figure/plots/axis_settings.ui +0 -0
  105. {bec_widgets-0.82.1 → bec_widgets-0.82.2}/bec_widgets/widgets/figure/plots/image/__init__.py +0 -0
  106. {bec_widgets-0.82.1 → bec_widgets-0.82.2}/bec_widgets/widgets/figure/plots/image/image.py +0 -0
  107. {bec_widgets-0.82.1 → bec_widgets-0.82.2}/bec_widgets/widgets/figure/plots/image/image_item.py +0 -0
  108. {bec_widgets-0.82.1 → bec_widgets-0.82.2}/bec_widgets/widgets/figure/plots/image/image_processor.py +0 -0
  109. {bec_widgets-0.82.1 → bec_widgets-0.82.2}/bec_widgets/widgets/figure/plots/motor_map/__init__.py +0 -0
  110. {bec_widgets-0.82.1 → bec_widgets-0.82.2}/bec_widgets/widgets/figure/plots/motor_map/motor_map.py +0 -0
  111. {bec_widgets-0.82.1 → bec_widgets-0.82.2}/bec_widgets/widgets/figure/plots/plot_base.py +0 -0
  112. {bec_widgets-0.82.1 → bec_widgets-0.82.2}/bec_widgets/widgets/figure/plots/waveform/__init__.py +0 -0
  113. {bec_widgets-0.82.1 → bec_widgets-0.82.2}/bec_widgets/widgets/figure/plots/waveform/waveform.py +0 -0
  114. {bec_widgets-0.82.1 → bec_widgets-0.82.2}/bec_widgets/widgets/figure/plots/waveform/waveform_curve.py +0 -0
  115. {bec_widgets-0.82.1 → bec_widgets-0.82.2}/bec_widgets/widgets/jupyter_console/__init__.py +0 -0
  116. {bec_widgets-0.82.1 → bec_widgets-0.82.2}/bec_widgets/widgets/jupyter_console/jupyter_console.py +0 -0
  117. {bec_widgets-0.82.1 → bec_widgets-0.82.2}/bec_widgets/widgets/motor_map/__init__.py +0 -0
  118. {bec_widgets-0.82.1 → bec_widgets-0.82.2}/bec_widgets/widgets/motor_map/assets/connection.svg +0 -0
  119. {bec_widgets-0.82.1 → bec_widgets-0.82.2}/bec_widgets/widgets/motor_map/assets/history.svg +0 -0
  120. {bec_widgets-0.82.1 → bec_widgets-0.82.2}/bec_widgets/widgets/motor_map/assets/motor_map.png +0 -0
  121. {bec_widgets-0.82.1 → bec_widgets-0.82.2}/bec_widgets/widgets/motor_map/assets/settings.svg +0 -0
  122. {bec_widgets-0.82.1 → bec_widgets-0.82.2}/bec_widgets/widgets/motor_map/bec_motor_map_widget.pyproject +0 -0
  123. {bec_widgets-0.82.1 → bec_widgets-0.82.2}/bec_widgets/widgets/motor_map/bec_motor_map_widget_plugin.py +0 -0
  124. {bec_widgets-0.82.1 → bec_widgets-0.82.2}/bec_widgets/widgets/motor_map/motor_map_dialog/__init__.py +0 -0
  125. {bec_widgets-0.82.1 → bec_widgets-0.82.2}/bec_widgets/widgets/motor_map/motor_map_dialog/motor_map_settings.py +0 -0
  126. {bec_widgets-0.82.1 → bec_widgets-0.82.2}/bec_widgets/widgets/motor_map/motor_map_dialog/motor_map_settings.ui +0 -0
  127. {bec_widgets-0.82.1 → bec_widgets-0.82.2}/bec_widgets/widgets/motor_map/motor_map_dialog/motor_map_toolbar.py +0 -0
  128. {bec_widgets-0.82.1 → bec_widgets-0.82.2}/bec_widgets/widgets/motor_map/motor_map_widget.py +0 -0
  129. {bec_widgets-0.82.1 → bec_widgets-0.82.2}/bec_widgets/widgets/motor_map/register_bec_motor_map_widget.py +0 -0
  130. {bec_widgets-0.82.1 → bec_widgets-0.82.2}/bec_widgets/widgets/ring_progress_bar/__init__.py +0 -0
  131. {bec_widgets-0.82.1 → bec_widgets-0.82.2}/bec_widgets/widgets/ring_progress_bar/ring.py +0 -0
  132. {bec_widgets-0.82.1 → bec_widgets-0.82.2}/bec_widgets/widgets/ring_progress_bar/ring_progress_bar.py +0 -0
  133. {bec_widgets-0.82.1 → bec_widgets-0.82.2}/bec_widgets/widgets/scan_control/__init__.py +0 -0
  134. {bec_widgets-0.82.1 → bec_widgets-0.82.2}/bec_widgets/widgets/scan_control/scan_control.py +0 -0
  135. {bec_widgets-0.82.1 → bec_widgets-0.82.2}/bec_widgets/widgets/scan_control/scan_group_box.py +0 -0
  136. {bec_widgets-0.82.1 → bec_widgets-0.82.2}/bec_widgets/widgets/stop_button/__init__.py +0 -0
  137. {bec_widgets-0.82.1 → bec_widgets-0.82.2}/bec_widgets/widgets/stop_button/assets/stop.png +0 -0
  138. {bec_widgets-0.82.1 → bec_widgets-0.82.2}/bec_widgets/widgets/stop_button/register_stop_button.py +0 -0
  139. {bec_widgets-0.82.1 → bec_widgets-0.82.2}/bec_widgets/widgets/stop_button/stop_button.py +0 -0
  140. {bec_widgets-0.82.1 → bec_widgets-0.82.2}/bec_widgets/widgets/stop_button/stop_button.pyproject +0 -0
  141. {bec_widgets-0.82.1 → bec_widgets-0.82.2}/bec_widgets/widgets/stop_button/stop_button_plugin.py +0 -0
  142. {bec_widgets-0.82.1 → bec_widgets-0.82.2}/bec_widgets/widgets/text_box/__init__.py +0 -0
  143. {bec_widgets-0.82.1 → bec_widgets-0.82.2}/bec_widgets/widgets/text_box/text_box.py +0 -0
  144. {bec_widgets-0.82.1 → bec_widgets-0.82.2}/bec_widgets/widgets/toggle/__init__.py +0 -0
  145. {bec_widgets-0.82.1 → bec_widgets-0.82.2}/bec_widgets/widgets/toggle/register_toggle_switch.py +0 -0
  146. {bec_widgets-0.82.1 → bec_widgets-0.82.2}/bec_widgets/widgets/toggle/toggle.py +0 -0
  147. {bec_widgets-0.82.1 → bec_widgets-0.82.2}/bec_widgets/widgets/toggle/toggle_switch.pyproject +0 -0
  148. {bec_widgets-0.82.1 → bec_widgets-0.82.2}/bec_widgets/widgets/toggle/toggle_switch_plugin.py +0 -0
  149. {bec_widgets-0.82.1 → bec_widgets-0.82.2}/bec_widgets/widgets/vscode/__init__.py +0 -0
  150. {bec_widgets-0.82.1 → bec_widgets-0.82.2}/bec_widgets/widgets/vscode/vscode.py +0 -0
  151. {bec_widgets-0.82.1 → bec_widgets-0.82.2}/bec_widgets/widgets/website/__init__.py +0 -0
  152. {bec_widgets-0.82.1 → bec_widgets-0.82.2}/bec_widgets/widgets/website/website.py +0 -0
  153. {bec_widgets-0.82.1 → bec_widgets-0.82.2}/docs/Makefile +0 -0
  154. {bec_widgets-0.82.1 → bec_widgets-0.82.2}/docs/_static/custom.css +0 -0
  155. {bec_widgets-0.82.1 → bec_widgets-0.82.2}/docs/_templates/custom-class-template.rst +0 -0
  156. {bec_widgets-0.82.1 → bec_widgets-0.82.2}/docs/_templates/custom-module-template.rst +0 -0
  157. {bec_widgets-0.82.1 → bec_widgets-0.82.2}/docs/api_reference/api_reference.md +0 -0
  158. {bec_widgets-0.82.1 → bec_widgets-0.82.2}/docs/assets/apps_48dp.svg +0 -0
  159. {bec_widgets-0.82.1 → bec_widgets-0.82.2}/docs/assets/display_settings_48dp.svg +0 -0
  160. {bec_widgets-0.82.1 → bec_widgets-0.82.2}/docs/assets/index_api.svg +0 -0
  161. {bec_widgets-0.82.1 → bec_widgets-0.82.2}/docs/assets/index_contribute.svg +0 -0
  162. {bec_widgets-0.82.1 → bec_widgets-0.82.2}/docs/assets/index_getting_started.svg +0 -0
  163. {bec_widgets-0.82.1 → bec_widgets-0.82.2}/docs/assets/index_user_guide.svg +0 -0
  164. {bec_widgets-0.82.1 → bec_widgets-0.82.2}/docs/assets/rocket_launch_48dp.svg +0 -0
  165. {bec_widgets-0.82.1 → bec_widgets-0.82.2}/docs/conf.py +0 -0
  166. {bec_widgets-0.82.1 → bec_widgets-0.82.2}/docs/developer/developer.md +0 -0
  167. {bec_widgets-0.82.1 → bec_widgets-0.82.2}/docs/developer/getting_started/development.md +0 -0
  168. {bec_widgets-0.82.1 → bec_widgets-0.82.2}/docs/developer/getting_started/getting_started.md +0 -0
  169. {bec_widgets-0.82.1 → bec_widgets-0.82.2}/docs/developer/widgets/widgets.md +0 -0
  170. {bec_widgets-0.82.1 → bec_widgets-0.82.2}/docs/index.md +0 -0
  171. {bec_widgets-0.82.1 → bec_widgets-0.82.2}/docs/introduction/introduction.md +0 -0
  172. {bec_widgets-0.82.1 → bec_widgets-0.82.2}/docs/make.bat +0 -0
  173. {bec_widgets-0.82.1 → bec_widgets-0.82.2}/docs/requirements.txt +0 -0
  174. {bec_widgets-0.82.1 → bec_widgets-0.82.2}/docs/user/api_reference/api_reference.md +0 -0
  175. {bec_widgets-0.82.1 → bec_widgets-0.82.2}/docs/user/applications/applications.md +0 -0
  176. {bec_widgets-0.82.1 → bec_widgets-0.82.2}/docs/user/customisation.md +0 -0
  177. {bec_widgets-0.82.1 → bec_widgets-0.82.2}/docs/user/getting_started/BECDockArea.png +0 -0
  178. {bec_widgets-0.82.1 → bec_widgets-0.82.2}/docs/user/getting_started/auto_updates.md +0 -0
  179. {bec_widgets-0.82.1 → bec_widgets-0.82.2}/docs/user/getting_started/getting_started.md +0 -0
  180. {bec_widgets-0.82.1 → bec_widgets-0.82.2}/docs/user/getting_started/gui_complex_gui.gif +0 -0
  181. {bec_widgets-0.82.1 → bec_widgets-0.82.2}/docs/user/getting_started/installation.md +0 -0
  182. {bec_widgets-0.82.1 → bec_widgets-0.82.2}/docs/user/getting_started/quick_start.md +0 -0
  183. {bec_widgets-0.82.1 → bec_widgets-0.82.2}/docs/user/user.md +0 -0
  184. {bec_widgets-0.82.1 → bec_widgets-0.82.2}/docs/user/widgets/BECFigure.png +0 -0
  185. {bec_widgets-0.82.1 → bec_widgets-0.82.2}/docs/user/widgets/bec_figure.md +0 -0
  186. {bec_widgets-0.82.1 → bec_widgets-0.82.2}/docs/user/widgets/bec_figure_dap.gif +0 -0
  187. {bec_widgets-0.82.1 → bec_widgets-0.82.2}/docs/user/widgets/bec_status_box.gif +0 -0
  188. {bec_widgets-0.82.1 → bec_widgets-0.82.2}/docs/user/widgets/bec_status_box.md +0 -0
  189. {bec_widgets-0.82.1 → bec_widgets-0.82.2}/docs/user/widgets/buttons.md +0 -0
  190. {bec_widgets-0.82.1 → bec_widgets-0.82.2}/docs/user/widgets/image_plot.gif +0 -0
  191. {bec_widgets-0.82.1 → bec_widgets-0.82.2}/docs/user/widgets/motor.gif +0 -0
  192. {bec_widgets-0.82.1 → bec_widgets-0.82.2}/docs/user/widgets/progress_bar.gif +0 -0
  193. {bec_widgets-0.82.1 → bec_widgets-0.82.2}/docs/user/widgets/ring_progress_bar.md +0 -0
  194. {bec_widgets-0.82.1 → bec_widgets-0.82.2}/docs/user/widgets/scan_control.gif +0 -0
  195. {bec_widgets-0.82.1 → bec_widgets-0.82.2}/docs/user/widgets/scan_control.md +0 -0
  196. {bec_widgets-0.82.1 → bec_widgets-0.82.2}/docs/user/widgets/scatter_2D.gif +0 -0
  197. {bec_widgets-0.82.1 → bec_widgets-0.82.2}/docs/user/widgets/text_box.md +0 -0
  198. {bec_widgets-0.82.1 → bec_widgets-0.82.2}/docs/user/widgets/w1D.gif +0 -0
  199. {bec_widgets-0.82.1 → bec_widgets-0.82.2}/docs/user/widgets/website.md +0 -0
  200. {bec_widgets-0.82.1 → bec_widgets-0.82.2}/docs/user/widgets/widgets.md +0 -0
  201. {bec_widgets-0.82.1 → bec_widgets-0.82.2}/tests/__init__.py +0 -0
  202. {bec_widgets-0.82.1 → bec_widgets-0.82.2}/tests/end-2-end/__init__.py +0 -0
  203. {bec_widgets-0.82.1 → bec_widgets-0.82.2}/tests/end-2-end/conftest.py +0 -0
  204. {bec_widgets-0.82.1 → bec_widgets-0.82.2}/tests/end-2-end/test_bec_dock_rpc_e2e.py +0 -0
  205. {bec_widgets-0.82.1 → bec_widgets-0.82.2}/tests/end-2-end/test_bec_figure_rpc_e2e.py +0 -0
  206. {bec_widgets-0.82.1 → bec_widgets-0.82.2}/tests/end-2-end/test_rpc_register_e2e.py +0 -0
  207. {bec_widgets-0.82.1 → bec_widgets-0.82.2}/tests/end-2-end/test_scan_control_e2e.py +0 -0
  208. {bec_widgets-0.82.1 → bec_widgets-0.82.2}/tests/unit_tests/__init__.py +0 -0
  209. {bec_widgets-0.82.1 → bec_widgets-0.82.2}/tests/unit_tests/client_mocks.py +0 -0
  210. {bec_widgets-0.82.1 → bec_widgets-0.82.2}/tests/unit_tests/conftest.py +0 -0
  211. {bec_widgets-0.82.1 → bec_widgets-0.82.2}/tests/unit_tests/test_bec_connector.py +0 -0
  212. {bec_widgets-0.82.1 → bec_widgets-0.82.2}/tests/unit_tests/test_bec_dispatcher.py +0 -0
  213. {bec_widgets-0.82.1 → bec_widgets-0.82.2}/tests/unit_tests/test_bec_dock.py +0 -0
  214. {bec_widgets-0.82.1 → bec_widgets-0.82.2}/tests/unit_tests/test_bec_figure.py +0 -0
  215. {bec_widgets-0.82.1 → bec_widgets-0.82.2}/tests/unit_tests/test_bec_image.py +0 -0
  216. {bec_widgets-0.82.1 → bec_widgets-0.82.2}/tests/unit_tests/test_bec_motor_map.py +0 -0
  217. {bec_widgets-0.82.1 → bec_widgets-0.82.2}/tests/unit_tests/test_bec_queue.py +0 -0
  218. {bec_widgets-0.82.1 → bec_widgets-0.82.2}/tests/unit_tests/test_bec_status_box.py +0 -0
  219. {bec_widgets-0.82.1 → bec_widgets-0.82.2}/tests/unit_tests/test_color_validation.py +0 -0
  220. {bec_widgets-0.82.1 → bec_widgets-0.82.2}/tests/unit_tests/test_configs/config_device.yaml +0 -0
  221. {bec_widgets-0.82.1 → bec_widgets-0.82.2}/tests/unit_tests/test_configs/config_device_no_entry.yaml +0 -0
  222. {bec_widgets-0.82.1 → bec_widgets-0.82.2}/tests/unit_tests/test_configs/config_scan.yaml +0 -0
  223. {bec_widgets-0.82.1 → bec_widgets-0.82.2}/tests/unit_tests/test_crosshair.py +0 -0
  224. {bec_widgets-0.82.1 → bec_widgets-0.82.2}/tests/unit_tests/test_device_input_base.py +0 -0
  225. {bec_widgets-0.82.1 → bec_widgets-0.82.2}/tests/unit_tests/test_device_input_widgets.py +0 -0
  226. {bec_widgets-0.82.1 → bec_widgets-0.82.2}/tests/unit_tests/test_generate_cli_client.py +0 -0
  227. {bec_widgets-0.82.1 → bec_widgets-0.82.2}/tests/unit_tests/test_generate_plugin.py +0 -0
  228. {bec_widgets-0.82.1 → bec_widgets-0.82.2}/tests/unit_tests/test_motor_map_widget.py +0 -0
  229. {bec_widgets-0.82.1 → bec_widgets-0.82.2}/tests/unit_tests/test_msgs/__init__.py +0 -0
  230. {bec_widgets-0.82.1 → bec_widgets-0.82.2}/tests/unit_tests/test_msgs/available_scans_message.py +0 -0
  231. {bec_widgets-0.82.1 → bec_widgets-0.82.2}/tests/unit_tests/test_plot_base.py +0 -0
  232. {bec_widgets-0.82.1 → bec_widgets-0.82.2}/tests/unit_tests/test_plugin_utils.py +0 -0
  233. {bec_widgets-0.82.1 → bec_widgets-0.82.2}/tests/unit_tests/test_ring_progress_bar.py +0 -0
  234. {bec_widgets-0.82.1 → bec_widgets-0.82.2}/tests/unit_tests/test_rpc_register.py +0 -0
  235. {bec_widgets-0.82.1 → bec_widgets-0.82.2}/tests/unit_tests/test_rpc_widget_handler.py +0 -0
  236. {bec_widgets-0.82.1 → bec_widgets-0.82.2}/tests/unit_tests/test_scan_control.py +0 -0
  237. {bec_widgets-0.82.1 → bec_widgets-0.82.2}/tests/unit_tests/test_scan_control_group_box.py +0 -0
  238. {bec_widgets-0.82.1 → bec_widgets-0.82.2}/tests/unit_tests/test_setting_dialog.py +0 -0
  239. {bec_widgets-0.82.1 → bec_widgets-0.82.2}/tests/unit_tests/test_stop_button.py +0 -0
  240. {bec_widgets-0.82.1 → bec_widgets-0.82.2}/tests/unit_tests/test_text_box_widget.py +0 -0
  241. {bec_widgets-0.82.1 → bec_widgets-0.82.2}/tests/unit_tests/test_toggle.py +0 -0
  242. {bec_widgets-0.82.1 → bec_widgets-0.82.2}/tests/unit_tests/test_vscode_widget.py +0 -0
  243. {bec_widgets-0.82.1 → bec_widgets-0.82.2}/tests/unit_tests/test_waveform1d.py +0 -0
  244. {bec_widgets-0.82.1 → bec_widgets-0.82.2}/tests/unit_tests/test_website_widget.py +0 -0
  245. {bec_widgets-0.82.1 → bec_widgets-0.82.2}/tests/unit_tests/test_widget_io.py +0 -0
  246. {bec_widgets-0.82.1 → bec_widgets-0.82.2}/tests/unit_tests/test_yaml_dialog.py +0 -0
@@ -1,5 +1,11 @@
1
1
  # CHANGELOG
2
2
 
3
+ ## v0.82.2 (2024-07-08)
4
+
5
+ ### Fix
6
+
7
+ * fix(rpc_server): pass cli config to server ([`90178e2`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/90178e2f61fa9dac7d82c0d0db40a9767bb133e6))
8
+
3
9
  ## v0.82.1 (2024-07-07)
4
10
 
5
11
  ### Fix
@@ -132,10 +138,6 @@
132
138
 
133
139
  ## v0.77.0 (2024-07-02)
134
140
 
135
- ### Feature
136
-
137
- * feat(bec_connector): export config to yaml ([`a391f30`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/a391f3018c50fee6a4a06884491b957df80c3cd3))
138
-
139
141
  ### Fix
140
142
 
141
143
  * fix(waveform): scatter 2D brush error ([`215d59c`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/215d59c8bfe7fda9aff8cec8353bef9e1ce2eca1))
@@ -143,5 +145,3 @@
143
145
  * fix(figure): API cleanup ([`008a33a`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/008a33a9b192473cc58e90cd6d98c5bcb5f7b8c0))
144
146
 
145
147
  * fix(figure): if/else logic corrected in subplot_factory ([`3e78723`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/3e787234c7274b0698423d7bf9a4c54ec46bad5f))
146
-
147
- * fix(image): processing of already displayed data; closes #106 ([`1173510`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/1173510105d2d70d7e498c2ac1e122cea3a16597))
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: bec_widgets
3
- Version: 0.82.1
3
+ Version: 0.82.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
@@ -2,6 +2,7 @@ from __future__ import annotations
2
2
 
3
3
  import importlib
4
4
  import importlib.metadata as imd
5
+ import json
5
6
  import os
6
7
  import select
7
8
  import subprocess
@@ -87,7 +88,7 @@ def _get_output(process, logger) -> None:
87
88
  print(f"Error reading process output: {str(e)}")
88
89
 
89
90
 
90
- def _start_plot_process(gui_id, gui_class, config, logger=None) -> None:
91
+ def _start_plot_process(gui_id: str, gui_class: type, config: dict | str, logger=None) -> None:
91
92
  """
92
93
  Start the plot in a new process.
93
94
 
@@ -98,6 +99,8 @@ def _start_plot_process(gui_id, gui_class, config, logger=None) -> None:
98
99
  # pylint: disable=subprocess-run-check
99
100
  command = ["bec-gui-server", "--id", gui_id, "--gui_class", gui_class.__name__]
100
101
  if config:
102
+ if isinstance(config, dict):
103
+ config = json.dumps(config)
101
104
  command.extend(["--config", config])
102
105
 
103
106
  env_dict = os.environ.copy()
@@ -190,7 +193,7 @@ class BECGuiClientMixin:
190
193
  if self._process is None or self._process.poll() is not None:
191
194
  self._start_update_script()
192
195
  self._process, self._process_output_processing_thread = _start_plot_process(
193
- self._gui_id, self.__class__, self._client._service_config.config_path
196
+ self._gui_id, self.__class__, self._client._service_config.config
194
197
  )
195
198
  while not self.gui_is_alive():
196
199
  print("Waiting for GUI to start...")
@@ -1,6 +1,7 @@
1
1
  from __future__ import annotations
2
2
 
3
3
  import inspect
4
+ import json
4
5
  import signal
5
6
  import sys
6
7
  from contextlib import redirect_stderr, redirect_stdout
@@ -141,10 +142,30 @@ class SimpleFileLikeFromLogOutputFunc:
141
142
  return
142
143
 
143
144
 
145
+ def _start_server(gui_id: str, gui_class: Union[BECFigure, BECDockArea], config: str | None = None):
146
+ if config:
147
+ try:
148
+ config = json.loads(config)
149
+ service_config = ServiceConfig(config=config)
150
+ except (json.JSONDecodeError, TypeError):
151
+ service_config = ServiceConfig(config_path=config)
152
+ else:
153
+ # if no config is provided, use the default config
154
+ service_config = ServiceConfig()
155
+
156
+ bec_logger.configure(
157
+ service_config.redis,
158
+ QtRedisConnector,
159
+ service_name="BECWidgetsCLIServer",
160
+ service_config=service_config.service_config,
161
+ )
162
+ server = BECWidgetsCLIServer(gui_id=gui_id, config=service_config, gui_class=gui_class)
163
+ return server
164
+
165
+
144
166
  def main():
145
167
  import argparse
146
168
  import os
147
- import sys
148
169
 
149
170
  from qtpy.QtCore import QSize
150
171
  from qtpy.QtGui import QIcon
@@ -159,7 +180,7 @@ def main():
159
180
  type=str,
160
181
  help="Name of the gui class to be rendered. Possible values: \n- BECFigure\n- BECDockArea",
161
182
  )
162
- parser.add_argument("--config", type=str, help="Config file")
183
+ parser.add_argument("--config", type=str, help="Config file or config string.")
163
184
 
164
185
  args = parser.parse_args()
165
186
 
@@ -188,14 +209,7 @@ def main():
188
209
  win = QMainWindow()
189
210
  win.setWindowTitle("BEC Widgets")
190
211
 
191
- service_config = ServiceConfig(args.config)
192
- bec_logger.configure(
193
- service_config.redis,
194
- QtRedisConnector,
195
- service_name="BECWidgetsCLIServer",
196
- service_config=service_config.service_config,
197
- )
198
- server = BECWidgetsCLIServer(gui_id=args.id, config=service_config, gui_class=gui_class)
212
+ server = _start_server(args.id, gui_class, args.config)
199
213
 
200
214
  gui = server.gui
201
215
  win.setCentralWidget(gui)
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
4
4
 
5
5
  [project]
6
6
  name = "bec_widgets"
7
- version = "0.82.1"
7
+ version = "0.82.2"
8
8
  description = "BEC Widgets"
9
9
  requires-python = ">=3.10"
10
10
  classifiers = [
@@ -0,0 +1,76 @@
1
+ from unittest import mock
2
+
3
+ import pytest
4
+
5
+ from bec_widgets.cli.client import BECFigure
6
+ from bec_widgets.cli.client_utils import BECGuiClientMixin, _start_plot_process
7
+
8
+ from .client_mocks import FakeDevice
9
+
10
+
11
+ @pytest.fixture
12
+ def cli_figure():
13
+ fig = BECFigure(gui_id="test")
14
+ with mock.patch.object(fig, "_run_rpc") as mock_rpc_call:
15
+ with mock.patch.object(fig, "gui_is_alive", return_value=True):
16
+ yield fig, mock_rpc_call
17
+
18
+
19
+ def test_rpc_call_plot(cli_figure):
20
+ fig, mock_rpc_call = cli_figure
21
+ fig.plot(x_name="samx", y_name="bpm4i")
22
+ mock_rpc_call.assert_called_with("plot", x_name="samx", y_name="bpm4i")
23
+
24
+
25
+ def test_rpc_call_accepts_device_as_input(cli_figure):
26
+ dev1 = FakeDevice("samx")
27
+ dev2 = FakeDevice("bpm4i")
28
+ fig, mock_rpc_call = cli_figure
29
+ fig.plot(x_name=dev1, y_name=dev2)
30
+ mock_rpc_call.assert_called_with("plot", x_name="samx", y_name="bpm4i")
31
+
32
+
33
+ @pytest.mark.parametrize(
34
+ "config, call_config",
35
+ [
36
+ (None, None),
37
+ ("/path/to/config.yml", "/path/to/config.yml"),
38
+ ({"key": "value"}, '{"key": "value"}'),
39
+ ],
40
+ )
41
+ def test_client_utils_start_plot_process(config, call_config):
42
+ with mock.patch("bec_widgets.cli.client_utils.subprocess.Popen") as mock_popen:
43
+ _start_plot_process("gui_id", BECFigure, config)
44
+ command = ["bec-gui-server", "--id", "gui_id", "--gui_class", "BECFigure"]
45
+ if call_config:
46
+ command.extend(["--config", call_config])
47
+ mock_popen.assert_called_once_with(
48
+ command,
49
+ text=True,
50
+ start_new_session=True,
51
+ stdout=mock.ANY,
52
+ stderr=mock.ANY,
53
+ env=mock.ANY,
54
+ )
55
+
56
+
57
+ def test_client_utils_passes_client_config_to_server(bec_dispatcher):
58
+ """
59
+ Test that the client config is passed to the server. This ensures that
60
+ changes to the client config (either through config files or plugins) are
61
+ reflected in the server.
62
+ """
63
+ mixin = BECGuiClientMixin()
64
+ mixin._client = bec_dispatcher.client
65
+ mixin._gui_id = "gui_id"
66
+ mixin.gui_is_alive = mock.MagicMock()
67
+ mixin.gui_is_alive.side_effect = [True]
68
+
69
+ with mock.patch("bec_widgets.cli.client_utils._start_plot_process") as mock_start_plot:
70
+ with mock.patch.object(mixin, "_start_update_script") as mock_start_update:
71
+ mock_start_plot.return_value = [mock.MagicMock(), mock.MagicMock()]
72
+ mixin.show()
73
+ mock_start_plot.assert_called_once_with(
74
+ "gui_id", BECGuiClientMixin, mixin._client._service_config.config
75
+ )
76
+ mock_start_update.assert_called_once()
@@ -0,0 +1,42 @@
1
+ from unittest import mock
2
+
3
+ import pytest
4
+ from bec_lib.service_config import ServiceConfig
5
+
6
+ from bec_widgets.cli.server import _start_server
7
+ from bec_widgets.widgets.figure import BECFigure
8
+
9
+
10
+ @pytest.fixture
11
+ def mocked_cli_server():
12
+ with mock.patch("bec_widgets.cli.server.BECWidgetsCLIServer") as mock_server:
13
+ with mock.patch("bec_widgets.cli.server.ServiceConfig") as mock_config:
14
+ with mock.patch("bec_lib.logger.bec_logger.configure") as mock_logger:
15
+ yield mock_server, mock_config, mock_logger
16
+
17
+
18
+ def test_rpc_server_start_server_without_service_config(mocked_cli_server):
19
+ """
20
+ Test that the server is started with the correct arguments.
21
+ """
22
+ mock_server, mock_config, _ = mocked_cli_server
23
+
24
+ _start_server("gui_id", BECFigure, None)
25
+ mock_server.assert_called_once_with(gui_id="gui_id", config=mock_config(), gui_class=BECFigure)
26
+
27
+
28
+ @pytest.mark.parametrize(
29
+ "config, call_config",
30
+ [
31
+ ("/path/to/config.yml", {"config_path": "/path/to/config.yml"}),
32
+ ({"key": "value"}, {"config": {"key": "value"}}),
33
+ ],
34
+ )
35
+ def test_rpc_server_start_server_with_service_config(mocked_cli_server, config, call_config):
36
+ """
37
+ Test that the server is started with the correct arguments.
38
+ """
39
+ mock_server, mock_config, _ = mocked_cli_server
40
+ config = mock_config(**call_config)
41
+ _start_server("gui_id", BECFigure, config)
42
+ mock_server.assert_called_once_with(gui_id="gui_id", config=config, gui_class=BECFigure)
@@ -1,29 +0,0 @@
1
- from unittest import mock
2
-
3
- import pytest
4
-
5
- from bec_widgets.cli.client import BECFigure
6
-
7
- from .client_mocks import FakeDevice
8
-
9
-
10
- @pytest.fixture
11
- def cli_figure():
12
- fig = BECFigure(gui_id="test")
13
- with mock.patch.object(fig, "_run_rpc") as mock_rpc_call:
14
- with mock.patch.object(fig, "gui_is_alive", return_value=True):
15
- yield fig, mock_rpc_call
16
-
17
-
18
- def test_rpc_call_plot(cli_figure):
19
- fig, mock_rpc_call = cli_figure
20
- fig.plot(x_name="samx", y_name="bpm4i")
21
- mock_rpc_call.assert_called_with("plot", x_name="samx", y_name="bpm4i")
22
-
23
-
24
- def test_rpc_call_accepts_device_as_input(cli_figure):
25
- dev1 = FakeDevice("samx")
26
- dev2 = FakeDevice("bpm4i")
27
- fig, mock_rpc_call = cli_figure
28
- fig.plot(x_name=dev1, y_name=dev2)
29
- mock_rpc_call.assert_called_with("plot", x_name="samx", y_name="bpm4i")
File without changes
File without changes
File without changes
File without changes