bec-widgets 0.60.0__tar.gz → 0.61.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (165) hide show
  1. {bec_widgets-0.60.0 → bec_widgets-0.61.0}/CHANGELOG.md +11 -8
  2. {bec_widgets-0.60.0 → bec_widgets-0.61.0}/PKG-INFO +1 -1
  3. {bec_widgets-0.60.0 → bec_widgets-0.61.0}/bec_widgets/cli/auto_updates.py +5 -3
  4. {bec_widgets-0.60.0 → bec_widgets-0.61.0}/bec_widgets/widgets/__init__.py +1 -0
  5. bec_widgets-0.61.0/bec_widgets/widgets/buttons/__init__.py +1 -0
  6. bec_widgets-0.61.0/bec_widgets/widgets/buttons/stop_button/stop_button.py +32 -0
  7. bec_widgets-0.61.0/docs/user/widgets/buttons.md +38 -0
  8. {bec_widgets-0.60.0 → bec_widgets-0.61.0}/docs/user/widgets/widgets.md +1 -0
  9. {bec_widgets-0.60.0 → bec_widgets-0.61.0}/pyproject.toml +1 -1
  10. {bec_widgets-0.60.0 → bec_widgets-0.61.0}/tests/end-2-end/test_bec_dock_rpc_e2e.py +16 -4
  11. bec_widgets-0.61.0/tests/unit_tests/test_msgs/__init__.py +0 -0
  12. bec_widgets-0.61.0/tests/unit_tests/test_stop_button.py +25 -0
  13. {bec_widgets-0.60.0 → bec_widgets-0.61.0}/.git_hooks/pre-commit +0 -0
  14. {bec_widgets-0.60.0 → bec_widgets-0.61.0}/.gitignore +0 -0
  15. {bec_widgets-0.60.0 → bec_widgets-0.61.0}/.gitlab/issue_templates/bug_report_template.md +0 -0
  16. {bec_widgets-0.60.0 → bec_widgets-0.61.0}/.gitlab/issue_templates/documentation_update_template.md +0 -0
  17. {bec_widgets-0.60.0 → bec_widgets-0.61.0}/.gitlab/issue_templates/feature_request_template.md +0 -0
  18. {bec_widgets-0.60.0 → bec_widgets-0.61.0}/.gitlab/merge_request_templates/default.md +0 -0
  19. {bec_widgets-0.60.0 → bec_widgets-0.61.0}/.gitlab-ci.yml +0 -0
  20. {bec_widgets-0.60.0 → bec_widgets-0.61.0}/.pylintrc +0 -0
  21. {bec_widgets-0.60.0 → bec_widgets-0.61.0}/.readthedocs.yaml +0 -0
  22. {bec_widgets-0.60.0 → bec_widgets-0.61.0}/LICENSE +0 -0
  23. {bec_widgets-0.60.0 → bec_widgets-0.61.0}/README.md +0 -0
  24. {bec_widgets-0.60.0 → bec_widgets-0.61.0}/bec_widgets/__init__.py +0 -0
  25. {bec_widgets-0.60.0 → bec_widgets-0.61.0}/bec_widgets/assets/bec_widgets_icon.png +0 -0
  26. {bec_widgets-0.60.0 → bec_widgets-0.61.0}/bec_widgets/assets/terminal_icon.png +0 -0
  27. {bec_widgets-0.60.0 → bec_widgets-0.61.0}/bec_widgets/cli/__init__.py +0 -0
  28. {bec_widgets-0.60.0 → bec_widgets-0.61.0}/bec_widgets/cli/client.py +0 -0
  29. {bec_widgets-0.60.0 → bec_widgets-0.61.0}/bec_widgets/cli/client_utils.py +0 -0
  30. {bec_widgets-0.60.0 → bec_widgets-0.61.0}/bec_widgets/cli/generate_cli.py +0 -0
  31. {bec_widgets-0.60.0 → bec_widgets-0.61.0}/bec_widgets/cli/rpc_register.py +0 -0
  32. {bec_widgets-0.60.0 → bec_widgets-0.61.0}/bec_widgets/cli/rpc_wigdet_handler.py +0 -0
  33. {bec_widgets-0.60.0 → bec_widgets-0.61.0}/bec_widgets/cli/server.py +0 -0
  34. {bec_widgets-0.60.0 → bec_widgets-0.61.0}/bec_widgets/examples/__init__.py +0 -0
  35. {bec_widgets-0.60.0 → bec_widgets-0.61.0}/bec_widgets/examples/jupyter_console/__init__.py +0 -0
  36. {bec_widgets-0.60.0 → bec_widgets-0.61.0}/bec_widgets/examples/jupyter_console/jupyter_console_window.py +0 -0
  37. {bec_widgets-0.60.0 → bec_widgets-0.61.0}/bec_widgets/examples/jupyter_console/jupyter_console_window.ui +0 -0
  38. {bec_widgets-0.60.0 → bec_widgets-0.61.0}/bec_widgets/examples/motor_movement/__init__.py +0 -0
  39. {bec_widgets-0.60.0 → bec_widgets-0.61.0}/bec_widgets/examples/motor_movement/motor_control_compilations.py +0 -0
  40. {bec_widgets-0.60.0 → bec_widgets-0.61.0}/bec_widgets/examples/motor_movement/motor_controller.ui +0 -0
  41. {bec_widgets-0.60.0 → bec_widgets-0.61.0}/bec_widgets/utils/__init__.py +0 -0
  42. {bec_widgets-0.60.0 → bec_widgets-0.61.0}/bec_widgets/utils/bec_connector.py +0 -0
  43. {bec_widgets-0.60.0 → bec_widgets-0.61.0}/bec_widgets/utils/bec_dispatcher.py +0 -0
  44. {bec_widgets-0.60.0 → bec_widgets-0.61.0}/bec_widgets/utils/bec_table.py +0 -0
  45. {bec_widgets-0.60.0 → bec_widgets-0.61.0}/bec_widgets/utils/colors.py +0 -0
  46. {bec_widgets-0.60.0 → bec_widgets-0.61.0}/bec_widgets/utils/container_utils.py +0 -0
  47. {bec_widgets-0.60.0 → bec_widgets-0.61.0}/bec_widgets/utils/crosshair.py +0 -0
  48. {bec_widgets-0.60.0 → bec_widgets-0.61.0}/bec_widgets/utils/entry_validator.py +0 -0
  49. {bec_widgets-0.60.0 → bec_widgets-0.61.0}/bec_widgets/utils/layout_manager.py +0 -0
  50. {bec_widgets-0.60.0 → bec_widgets-0.61.0}/bec_widgets/utils/plugin_utils.py +0 -0
  51. {bec_widgets-0.60.0 → bec_widgets-0.61.0}/bec_widgets/utils/rpc_decorator.py +0 -0
  52. {bec_widgets-0.60.0 → bec_widgets-0.61.0}/bec_widgets/utils/thread_checker.py +0 -0
  53. {bec_widgets-0.60.0 → bec_widgets-0.61.0}/bec_widgets/utils/ui_loader.py +0 -0
  54. {bec_widgets-0.60.0 → bec_widgets-0.61.0}/bec_widgets/utils/validator_delegate.py +0 -0
  55. {bec_widgets-0.60.0 → bec_widgets-0.61.0}/bec_widgets/utils/widget_io.py +0 -0
  56. {bec_widgets-0.60.0 → bec_widgets-0.61.0}/bec_widgets/utils/yaml_dialog.py +0 -0
  57. {bec_widgets-0.60.0/bec_widgets/widgets/figure/plots → bec_widgets-0.61.0/bec_widgets/widgets/buttons/stop_button}/__init__.py +0 -0
  58. {bec_widgets-0.60.0 → bec_widgets-0.61.0}/bec_widgets/widgets/dock/__init__.py +0 -0
  59. {bec_widgets-0.60.0 → bec_widgets-0.61.0}/bec_widgets/widgets/dock/dock.py +0 -0
  60. {bec_widgets-0.60.0 → bec_widgets-0.61.0}/bec_widgets/widgets/dock/dock_area.py +0 -0
  61. {bec_widgets-0.60.0 → bec_widgets-0.61.0}/bec_widgets/widgets/figure/__init__.py +0 -0
  62. {bec_widgets-0.60.0 → bec_widgets-0.61.0}/bec_widgets/widgets/figure/figure.py +0 -0
  63. {bec_widgets-0.60.0/bec_widgets/widgets/figure/plots/image → bec_widgets-0.61.0/bec_widgets/widgets/figure/plots}/__init__.py +0 -0
  64. {bec_widgets-0.60.0/bec_widgets/widgets/figure/plots/motor_map → bec_widgets-0.61.0/bec_widgets/widgets/figure/plots/image}/__init__.py +0 -0
  65. {bec_widgets-0.60.0 → bec_widgets-0.61.0}/bec_widgets/widgets/figure/plots/image/image.py +0 -0
  66. {bec_widgets-0.60.0 → bec_widgets-0.61.0}/bec_widgets/widgets/figure/plots/image/image_item.py +0 -0
  67. {bec_widgets-0.60.0 → bec_widgets-0.61.0}/bec_widgets/widgets/figure/plots/image/image_processor.py +0 -0
  68. {bec_widgets-0.60.0/bec_widgets/widgets/figure/plots/waveform → bec_widgets-0.61.0/bec_widgets/widgets/figure/plots/motor_map}/__init__.py +0 -0
  69. {bec_widgets-0.60.0 → bec_widgets-0.61.0}/bec_widgets/widgets/figure/plots/motor_map/motor_map.py +0 -0
  70. {bec_widgets-0.60.0 → bec_widgets-0.61.0}/bec_widgets/widgets/figure/plots/plot_base.py +0 -0
  71. {bec_widgets-0.60.0/bec_widgets/widgets/jupyter_console → bec_widgets-0.61.0/bec_widgets/widgets/figure/plots/waveform}/__init__.py +0 -0
  72. {bec_widgets-0.60.0 → bec_widgets-0.61.0}/bec_widgets/widgets/figure/plots/waveform/waveform.py +0 -0
  73. {bec_widgets-0.60.0 → bec_widgets-0.61.0}/bec_widgets/widgets/figure/plots/waveform/waveform_curve.py +0 -0
  74. {bec_widgets-0.60.0/bec_widgets/widgets/motor_control → bec_widgets-0.61.0/bec_widgets/widgets/jupyter_console}/__init__.py +0 -0
  75. {bec_widgets-0.60.0 → bec_widgets-0.61.0}/bec_widgets/widgets/jupyter_console/jupyter_console.py +0 -0
  76. {bec_widgets-0.60.0/bec_widgets/widgets/motor_control/motor_table → bec_widgets-0.61.0/bec_widgets/widgets/motor_control}/__init__.py +0 -0
  77. {bec_widgets-0.60.0 → bec_widgets-0.61.0}/bec_widgets/widgets/motor_control/motor_control.py +0 -0
  78. {bec_widgets-0.60.0/bec_widgets/widgets/motor_control/movement_absolute → bec_widgets-0.61.0/bec_widgets/widgets/motor_control/motor_table}/__init__.py +0 -0
  79. {bec_widgets-0.60.0 → bec_widgets-0.61.0}/bec_widgets/widgets/motor_control/motor_table/motor_table.py +0 -0
  80. {bec_widgets-0.60.0 → bec_widgets-0.61.0}/bec_widgets/widgets/motor_control/motor_table/motor_table.ui +0 -0
  81. {bec_widgets-0.60.0/bec_widgets/widgets/motor_control/movement_relative → bec_widgets-0.61.0/bec_widgets/widgets/motor_control/movement_absolute}/__init__.py +0 -0
  82. {bec_widgets-0.60.0 → bec_widgets-0.61.0}/bec_widgets/widgets/motor_control/movement_absolute/movement_absolute.py +0 -0
  83. {bec_widgets-0.60.0 → bec_widgets-0.61.0}/bec_widgets/widgets/motor_control/movement_absolute/movement_absolute.ui +0 -0
  84. {bec_widgets-0.60.0/bec_widgets/widgets/motor_control/selection → bec_widgets-0.61.0/bec_widgets/widgets/motor_control/movement_relative}/__init__.py +0 -0
  85. {bec_widgets-0.60.0 → bec_widgets-0.61.0}/bec_widgets/widgets/motor_control/movement_relative/movement_relative.py +0 -0
  86. {bec_widgets-0.60.0 → bec_widgets-0.61.0}/bec_widgets/widgets/motor_control/movement_relative/movement_relative.ui +0 -0
  87. {bec_widgets-0.60.0/bec_widgets/widgets/website → bec_widgets-0.61.0/bec_widgets/widgets/motor_control/selection}/__init__.py +0 -0
  88. {bec_widgets-0.60.0 → bec_widgets-0.61.0}/bec_widgets/widgets/motor_control/selection/selection.py +0 -0
  89. {bec_widgets-0.60.0 → bec_widgets-0.61.0}/bec_widgets/widgets/motor_control/selection/selection.ui +0 -0
  90. {bec_widgets-0.60.0 → bec_widgets-0.61.0}/bec_widgets/widgets/scan_control/__init__.py +0 -0
  91. {bec_widgets-0.60.0 → bec_widgets-0.61.0}/bec_widgets/widgets/scan_control/scan_control.py +0 -0
  92. {bec_widgets-0.60.0 → bec_widgets-0.61.0}/bec_widgets/widgets/spiral_progress_bar/__init__.py +0 -0
  93. {bec_widgets-0.60.0 → bec_widgets-0.61.0}/bec_widgets/widgets/spiral_progress_bar/ring.py +0 -0
  94. {bec_widgets-0.60.0 → bec_widgets-0.61.0}/bec_widgets/widgets/spiral_progress_bar/spiral_progress_bar.py +0 -0
  95. {bec_widgets-0.60.0 → bec_widgets-0.61.0}/bec_widgets/widgets/toolbar/__init__.py +0 -0
  96. {bec_widgets-0.60.0 → bec_widgets-0.61.0}/bec_widgets/widgets/toolbar/toolbar.py +0 -0
  97. {bec_widgets-0.60.0/tests → bec_widgets-0.61.0/bec_widgets/widgets/website}/__init__.py +0 -0
  98. {bec_widgets-0.60.0 → bec_widgets-0.61.0}/bec_widgets/widgets/website/website.py +0 -0
  99. {bec_widgets-0.60.0 → bec_widgets-0.61.0}/docs/Makefile +0 -0
  100. {bec_widgets-0.60.0 → bec_widgets-0.61.0}/docs/_static/custom.css +0 -0
  101. {bec_widgets-0.60.0 → bec_widgets-0.61.0}/docs/_templates/custom-class-template.rst +0 -0
  102. {bec_widgets-0.60.0 → bec_widgets-0.61.0}/docs/_templates/custom-module-template.rst +0 -0
  103. {bec_widgets-0.60.0 → bec_widgets-0.61.0}/docs/api_reference/api_reference.md +0 -0
  104. {bec_widgets-0.60.0 → bec_widgets-0.61.0}/docs/assets/apps_48dp.svg +0 -0
  105. {bec_widgets-0.60.0 → bec_widgets-0.61.0}/docs/assets/display_settings_48dp.svg +0 -0
  106. {bec_widgets-0.60.0 → bec_widgets-0.61.0}/docs/assets/index_api.svg +0 -0
  107. {bec_widgets-0.60.0 → bec_widgets-0.61.0}/docs/assets/index_contribute.svg +0 -0
  108. {bec_widgets-0.60.0 → bec_widgets-0.61.0}/docs/assets/index_getting_started.svg +0 -0
  109. {bec_widgets-0.60.0 → bec_widgets-0.61.0}/docs/assets/index_user_guide.svg +0 -0
  110. {bec_widgets-0.60.0 → bec_widgets-0.61.0}/docs/assets/rocket_launch_48dp.svg +0 -0
  111. {bec_widgets-0.60.0 → bec_widgets-0.61.0}/docs/conf.py +0 -0
  112. {bec_widgets-0.60.0 → bec_widgets-0.61.0}/docs/developer/developer.md +0 -0
  113. {bec_widgets-0.60.0 → bec_widgets-0.61.0}/docs/index.md +0 -0
  114. {bec_widgets-0.60.0 → bec_widgets-0.61.0}/docs/introduction/introduction.md +0 -0
  115. {bec_widgets-0.60.0 → bec_widgets-0.61.0}/docs/make.bat +0 -0
  116. {bec_widgets-0.60.0 → bec_widgets-0.61.0}/docs/requirements.txt +0 -0
  117. {bec_widgets-0.60.0 → bec_widgets-0.61.0}/docs/user/api_reference/api_reference.md +0 -0
  118. {bec_widgets-0.60.0 → bec_widgets-0.61.0}/docs/user/applications/applications.md +0 -0
  119. {bec_widgets-0.60.0 → bec_widgets-0.61.0}/docs/user/customisation.md +0 -0
  120. {bec_widgets-0.60.0 → bec_widgets-0.61.0}/docs/user/getting_started/BECDockArea.png +0 -0
  121. {bec_widgets-0.60.0 → bec_widgets-0.61.0}/docs/user/getting_started/auto_updates.md +0 -0
  122. {bec_widgets-0.60.0 → bec_widgets-0.61.0}/docs/user/getting_started/getting_started.md +0 -0
  123. {bec_widgets-0.60.0 → bec_widgets-0.61.0}/docs/user/getting_started/gui_complex_gui.gif +0 -0
  124. {bec_widgets-0.60.0 → bec_widgets-0.61.0}/docs/user/getting_started/installation.md +0 -0
  125. {bec_widgets-0.60.0 → bec_widgets-0.61.0}/docs/user/getting_started/quick_start.md +0 -0
  126. {bec_widgets-0.60.0 → bec_widgets-0.61.0}/docs/user/user.md +0 -0
  127. {bec_widgets-0.60.0 → bec_widgets-0.61.0}/docs/user/widgets/BECFigure.png +0 -0
  128. {bec_widgets-0.60.0 → bec_widgets-0.61.0}/docs/user/widgets/bec_figure.md +0 -0
  129. {bec_widgets-0.60.0 → bec_widgets-0.61.0}/docs/user/widgets/image_plot.gif +0 -0
  130. {bec_widgets-0.60.0 → bec_widgets-0.61.0}/docs/user/widgets/motor.gif +0 -0
  131. {bec_widgets-0.60.0 → bec_widgets-0.61.0}/docs/user/widgets/progress_bar.gif +0 -0
  132. {bec_widgets-0.60.0 → bec_widgets-0.61.0}/docs/user/widgets/scatter_2D.gif +0 -0
  133. {bec_widgets-0.60.0 → bec_widgets-0.61.0}/docs/user/widgets/spiral_progress_bar.md +0 -0
  134. {bec_widgets-0.60.0 → bec_widgets-0.61.0}/docs/user/widgets/w1D.gif +0 -0
  135. {bec_widgets-0.60.0 → bec_widgets-0.61.0}/docs/user/widgets/website.md +0 -0
  136. {bec_widgets-0.60.0/tests/end-2-end → bec_widgets-0.61.0/tests}/__init__.py +0 -0
  137. {bec_widgets-0.60.0/tests/unit_tests → bec_widgets-0.61.0/tests/end-2-end}/__init__.py +0 -0
  138. {bec_widgets-0.60.0 → bec_widgets-0.61.0}/tests/end-2-end/conftest.py +0 -0
  139. {bec_widgets-0.60.0 → bec_widgets-0.61.0}/tests/end-2-end/test_bec_figure_rpc_e2e.py +0 -0
  140. {bec_widgets-0.60.0 → bec_widgets-0.61.0}/tests/end-2-end/test_rpc_register_e2e.py +0 -0
  141. {bec_widgets-0.60.0/tests/unit_tests/test_msgs → bec_widgets-0.61.0/tests/unit_tests}/__init__.py +0 -0
  142. {bec_widgets-0.60.0 → bec_widgets-0.61.0}/tests/unit_tests/client_mocks.py +0 -0
  143. {bec_widgets-0.60.0 → bec_widgets-0.61.0}/tests/unit_tests/conftest.py +0 -0
  144. {bec_widgets-0.60.0 → bec_widgets-0.61.0}/tests/unit_tests/test_bec_connector.py +0 -0
  145. {bec_widgets-0.60.0 → bec_widgets-0.61.0}/tests/unit_tests/test_bec_dispatcher.py +0 -0
  146. {bec_widgets-0.60.0 → bec_widgets-0.61.0}/tests/unit_tests/test_bec_dock.py +0 -0
  147. {bec_widgets-0.60.0 → bec_widgets-0.61.0}/tests/unit_tests/test_bec_figure.py +0 -0
  148. {bec_widgets-0.60.0 → bec_widgets-0.61.0}/tests/unit_tests/test_bec_motor_map.py +0 -0
  149. {bec_widgets-0.60.0 → bec_widgets-0.61.0}/tests/unit_tests/test_client_utils.py +0 -0
  150. {bec_widgets-0.60.0 → bec_widgets-0.61.0}/tests/unit_tests/test_color_validation.py +0 -0
  151. {bec_widgets-0.60.0 → bec_widgets-0.61.0}/tests/unit_tests/test_configs/config_device.yaml +0 -0
  152. {bec_widgets-0.60.0 → bec_widgets-0.61.0}/tests/unit_tests/test_configs/config_device_no_entry.yaml +0 -0
  153. {bec_widgets-0.60.0 → bec_widgets-0.61.0}/tests/unit_tests/test_configs/config_scan.yaml +0 -0
  154. {bec_widgets-0.60.0 → bec_widgets-0.61.0}/tests/unit_tests/test_crosshair.py +0 -0
  155. {bec_widgets-0.60.0 → bec_widgets-0.61.0}/tests/unit_tests/test_generate_cli_client.py +0 -0
  156. {bec_widgets-0.60.0 → bec_widgets-0.61.0}/tests/unit_tests/test_motor_control.py +0 -0
  157. {bec_widgets-0.60.0 → bec_widgets-0.61.0}/tests/unit_tests/test_msgs/available_scans_message.py +0 -0
  158. {bec_widgets-0.60.0 → bec_widgets-0.61.0}/tests/unit_tests/test_plot_base.py +0 -0
  159. {bec_widgets-0.60.0 → bec_widgets-0.61.0}/tests/unit_tests/test_rpc_register.py +0 -0
  160. {bec_widgets-0.60.0 → bec_widgets-0.61.0}/tests/unit_tests/test_scan_control.py +0 -0
  161. {bec_widgets-0.60.0 → bec_widgets-0.61.0}/tests/unit_tests/test_spiral_progress_bar.py +0 -0
  162. {bec_widgets-0.60.0 → bec_widgets-0.61.0}/tests/unit_tests/test_waveform1d.py +0 -0
  163. {bec_widgets-0.60.0 → bec_widgets-0.61.0}/tests/unit_tests/test_website_widget.py +0 -0
  164. {bec_widgets-0.60.0 → bec_widgets-0.61.0}/tests/unit_tests/test_widget_io.py +0 -0
  165. {bec_widgets-0.60.0 → bec_widgets-0.61.0}/tests/unit_tests/test_yaml_dialog.py +0 -0
@@ -2,6 +2,17 @@
2
2
 
3
3
 
4
4
 
5
+ ## v0.61.0 (2024-06-12)
6
+
7
+ ### Feature
8
+
9
+ * feat(widgets/stop_button): General stop button added ([`61ba08d`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/61ba08d0b8df9f48f5c54c7c2b4e6d395206e7e6))
10
+
11
+ ### Refactor
12
+
13
+ * refactor: improve labe of auto_update script ([`40b5688`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/40b568815893cd41af3531bb2e647ca1e2e315f4))
14
+
15
+
5
16
  ## v0.60.0 (2024-06-08)
6
17
 
7
18
  ### Ci
@@ -150,11 +161,3 @@
150
161
  ### Documentation
151
162
 
152
163
  * docs(bar): docs updated ([`4be0d14`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/4be0d14b7445c2322c2aef86257db168a841265c))
153
-
154
- ### Fix
155
-
156
- * fix(ring): automatic updates are disabled uf user specify updates manually with .set_update; 'scan_progres' do not reset number of rings ([`e883dba`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/e883dbad814dbcc0a19c341041c6d836e58a5918))
157
-
158
- * fix(ring): enable_auto_updates(True) do not reset properties of already setup bars ([`a2abad3`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/a2abad344f4c0039516eb60a825afb6822c5b19a))
159
-
160
- * fix(ring): set_min_max accepts floats ([`d44b1cf`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/d44b1cf8b107cf02deedd9154b77d01c7f9ed05d))
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: bec_widgets
3
- Version: 0.60.0
3
+ Version: 0.61.0
4
4
  Summary: BEC Widgets
5
5
  Project-URL: Bug Tracker, https://gitlab.psi.ch/bec/bec_widgets/issues
6
6
  Project-URL: Homepage, https://gitlab.psi.ch/bec/bec_widgets
@@ -118,7 +118,7 @@ class AutoUpdates:
118
118
  if not dev_y:
119
119
  return
120
120
  fig.clear_all()
121
- plt = fig.plot(x_name=dev_x, y_name=dev_y)
121
+ plt = fig.plot(x_name=dev_x, y_name=dev_y, label=f"Scan {info.scan_number} - {dev_y}")
122
122
  plt.set(title=f"Scan {info.scan_number}", x_label=dev_x, y_label=dev_y)
123
123
 
124
124
  def simple_grid_scan(self, info: ScanInfo) -> None:
@@ -132,7 +132,9 @@ class AutoUpdates:
132
132
  dev_y = info.scan_report_devices[1]
133
133
  dev_z = self.get_selected_device(info.monitored_devices, self.gui.selected_device)
134
134
  fig.clear_all()
135
- plt = fig.plot(x_name=dev_x, y_name=dev_y, z_name=dev_z, label=f"Scan {info.scan_number}")
135
+ plt = fig.plot(
136
+ x_name=dev_x, y_name=dev_y, z_name=dev_z, label=f"Scan {info.scan_number} - {dev_z}"
137
+ )
136
138
  plt.set(title=f"Scan {info.scan_number}", x_label=dev_x, y_label=dev_y)
137
139
 
138
140
  def best_effort(self, info: ScanInfo) -> None:
@@ -147,5 +149,5 @@ class AutoUpdates:
147
149
  if not dev_y:
148
150
  return
149
151
  fig.clear_all()
150
- plt = fig.plot(x_name=dev_x, y_name=dev_y, label=f"Scan {info.scan_number}")
152
+ plt = fig.plot(x_name=dev_x, y_name=dev_y, label=f"Scan {info.scan_number} - {dev_y}")
151
153
  plt.set(title=f"Scan {info.scan_number}", x_label=dev_x, y_label=dev_y)
@@ -1,3 +1,4 @@
1
+ from .buttons import StopButton
1
2
  from .dock import BECDock, BECDockArea
2
3
  from .figure import BECFigure, FigureConfig
3
4
  from .scan_control import ScanControl
@@ -0,0 +1 @@
1
+ from .stop_button.stop_button import StopButton
@@ -0,0 +1,32 @@
1
+ from qtpy.QtWidgets import QPushButton
2
+
3
+ from bec_widgets.utils import BECConnector
4
+
5
+
6
+ class StopButton(BECConnector, QPushButton):
7
+ """A button that stops the current scan."""
8
+
9
+ def __init__(self, parent=None, client=None, config=None, gui_id=None):
10
+ super().__init__(client=client, config=config, gui_id=gui_id)
11
+ QPushButton.__init__(self, parent=parent)
12
+
13
+ self.get_bec_shortcuts()
14
+ self.setText("Stop")
15
+ self.setStyleSheet("background-color: #cc181e; color: white")
16
+ self.clicked.connect(self.stop_scan)
17
+
18
+ def stop_scan(self):
19
+ """Stop the scan."""
20
+ self.queue.request_scan_abortion()
21
+ self.queue.request_queue_reset()
22
+
23
+
24
+ if __name__ == "__main__": # pragma: no cover
25
+ import sys
26
+
27
+ from qtpy.QtWidgets import QApplication
28
+
29
+ app = QApplication(sys.argv)
30
+ widget = StopButton()
31
+ widget.show()
32
+ sys.exit(app.exec_())
@@ -0,0 +1,38 @@
1
+ (user.widgets.buttons)=
2
+
3
+ # Buttons Widgets
4
+
5
+ This section consolidates various custom buttons used within the BEC GUIs, facilitating the integration of these
6
+ controls into different layouts.
7
+
8
+ ## Stop Button
9
+
10
+ **Purpose:**
11
+
12
+ The `Stop Button` provides a user interface control to immediately halt the execution of the current operation in the
13
+ BEC Client. It is designed for easy integration into any BEC GUI layout.
14
+
15
+ **Key Features:**
16
+
17
+ - **Immediate Termination:** Halts the execution of the current script or process.
18
+ - **Queue Management:** Clears any pending operations in the scan queue, ensuring the system is ready for new tasks.
19
+
20
+ **Code example:**
21
+
22
+ Integrating the `StopButton` into a BEC GUI layout is straightforward. The following example demonstrates how to embed
23
+ a `StopButton` within a GUI layout:
24
+
25
+ ```python
26
+ from qtpy.QtWidgets import QWidget, QVBoxLayout
27
+ from bec_widgets.widgets import StopButton
28
+
29
+
30
+ class MyGui(QWidget):
31
+ def __init__(self):
32
+ super().__init__()
33
+ self.setLayout(QVBoxLayout(self)) # Initialize the layout for the widget
34
+
35
+ # Create and add the StopButton to the layout
36
+ self.stop_button = StopButton()
37
+ self.layout().addWidget(self.stop_button)
38
+ ```
@@ -11,6 +11,7 @@ hidden: false
11
11
  bec_figure/
12
12
  spiral_progress_bar/
13
13
  website/
14
+ buttons/
14
15
  ```
15
16
 
16
17
 
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
4
4
 
5
5
  [project]
6
6
  name = "bec_widgets"
7
- version = "0.60.0"
7
+ version = "0.61.0"
8
8
  description = "BEC Widgets"
9
9
  requires-python = ">=3.10"
10
10
  classifiers = [
@@ -253,8 +253,14 @@ def test_auto_update(bec_client_lib, rpc_server_dock):
253
253
  plt_data = widgets[0].get_all_data()
254
254
 
255
255
  # check plotted data
256
- assert plt_data["bpm4i-bpm4i"]["x"] == last_scan_data["samx"]["samx"].val
257
- assert plt_data["bpm4i-bpm4i"]["y"] == last_scan_data["bpm4i"]["bpm4i"].val
256
+ assert (
257
+ plt_data[f"Scan {status.scan.scan_number} - bpm4i"]["x"]
258
+ == last_scan_data["samx"]["samx"].val
259
+ )
260
+ assert (
261
+ plt_data[f"Scan {status.scan.scan_number} - bpm4i"]["y"]
262
+ == last_scan_data["bpm4i"]["bpm4i"].val
263
+ )
258
264
 
259
265
  status = scans.grid_scan(
260
266
  dev.samx, -10, 10, 5, dev.samy, -5, 5, 5, exp_time=0.05, relative=False
@@ -268,5 +274,11 @@ def test_auto_update(bec_client_lib, rpc_server_dock):
268
274
  last_scan_data = queue.scan_storage.storage[-1].data
269
275
 
270
276
  # check plotted data
271
- assert plt_data[f"Scan {status.scan.scan_number}"]["x"] == last_scan_data["samx"]["samx"].val
272
- assert plt_data[f"Scan {status.scan.scan_number}"]["y"] == last_scan_data["samy"]["samy"].val
277
+ assert (
278
+ plt_data[f"Scan {status.scan.scan_number} - {dock.selected_device}"]["x"]
279
+ == last_scan_data["samx"]["samx"].val
280
+ )
281
+ assert (
282
+ plt_data[f"Scan {status.scan.scan_number} - {dock.selected_device}"]["y"]
283
+ == last_scan_data["samy"]["samy"].val
284
+ )
@@ -0,0 +1,25 @@
1
+ # pylint: disable=missing-function-docstring, missing-module-docstring, unused-import
2
+
3
+ import pytest
4
+
5
+ from bec_widgets.widgets import StopButton
6
+
7
+ from .client_mocks import mocked_client
8
+
9
+
10
+ @pytest.fixture
11
+ def stop_button(qtbot, mocked_client):
12
+ widget = StopButton(client=mocked_client)
13
+ qtbot.addWidget(widget)
14
+ qtbot.waitExposed(widget)
15
+ yield widget
16
+ widget.close()
17
+
18
+
19
+ def test_stop_button(stop_button):
20
+ assert stop_button.text() == "Stop"
21
+ assert stop_button.styleSheet() == "background-color: #cc181e; color: white"
22
+ stop_button.click()
23
+ assert stop_button.queue.request_scan_abortion.called
24
+ assert stop_button.queue.request_queue_reset.called
25
+ stop_button.close()
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes