bec-widgets 0.99.8__py3-none-any.whl → 0.99.10__py3-none-any.whl

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 (157) hide show
  1. CHANGELOG.md +18 -20
  2. PKG-INFO +1 -1
  3. bec_widgets/widgets/positioner_box/positioner_box.py +23 -11
  4. bec_widgets/widgets/stop_button/stop_button.py +30 -13
  5. {bec_widgets-0.99.8.dist-info → bec_widgets-0.99.10.dist-info}/METADATA +1 -1
  6. {bec_widgets-0.99.8.dist-info → bec_widgets-0.99.10.dist-info}/RECORD +10 -157
  7. pyproject.toml +6 -1
  8. docs/Makefile +0 -20
  9. docs/_static/custom.css +0 -170
  10. docs/_templates/custom-class-template.rst +0 -34
  11. docs/_templates/custom-module-template.rst +0 -66
  12. docs/api_reference/api_reference.md +0 -12
  13. docs/assets/apps_48dp.svg +0 -1
  14. docs/assets/display_settings_48dp.svg +0 -1
  15. docs/assets/index_api.svg +0 -97
  16. docs/assets/index_contribute.svg +0 -76
  17. docs/assets/index_getting_started.svg +0 -66
  18. docs/assets/index_user_guide.svg +0 -67
  19. docs/assets/rocket_launch_48dp.svg +0 -1
  20. docs/assets/widget_screenshots/buttons.png +0 -0
  21. docs/assets/widget_screenshots/device_box.png +0 -0
  22. docs/assets/widget_screenshots/device_browser.png +0 -0
  23. docs/assets/widget_screenshots/device_inputs.png +0 -0
  24. docs/assets/widget_screenshots/dock_area.png +0 -0
  25. docs/assets/widget_screenshots/figure.png +0 -0
  26. docs/assets/widget_screenshots/image_widget.png +0 -0
  27. docs/assets/widget_screenshots/motor_map_widget.png +0 -0
  28. docs/assets/widget_screenshots/position_indicator.png +0 -0
  29. docs/assets/widget_screenshots/queue.png +0 -0
  30. docs/assets/widget_screenshots/ring_progress_bar.png +0 -0
  31. docs/assets/widget_screenshots/scan_controller.png +0 -0
  32. docs/assets/widget_screenshots/spinner.gif +0 -0
  33. docs/assets/widget_screenshots/status_box.png +0 -0
  34. docs/assets/widget_screenshots/text_box.png +0 -0
  35. docs/assets/widget_screenshots/toggle.png +0 -0
  36. docs/assets/widget_screenshots/waveform_widget.png +0 -0
  37. docs/assets/widget_screenshots/website.png +0 -0
  38. docs/conf.py +0 -82
  39. docs/developer/developer.md +0 -52
  40. docs/developer/introduction/concepts.md +0 -14
  41. docs/developer/introduction/contributing.md +0 -28
  42. docs/developer/introduction/introduction.md +0 -16
  43. docs/developer/introduction/useful_links.md +0 -23
  44. docs/developer/widget_development/bec_dispatcher.md +0 -143
  45. docs/developer/widget_development/widget_base_class.md +0 -171
  46. docs/developer/widget_development/widget_development.md +0 -14
  47. docs/index.md +0 -74
  48. docs/introduction/introduction.md +0 -18
  49. docs/make.bat +0 -35
  50. docs/requirements.txt +0 -12
  51. docs/user/api_reference/api_reference.md +0 -11
  52. docs/user/applications/applications.md +0 -10
  53. docs/user/customisation.md +0 -123
  54. docs/user/getting_started/BECDockArea.png +0 -0
  55. docs/user/getting_started/auto_updates.md +0 -82
  56. docs/user/getting_started/getting_started.md +0 -15
  57. docs/user/getting_started/gui_complex_gui.gif +0 -0
  58. docs/user/getting_started/installation.md +0 -33
  59. docs/user/getting_started/quick_start.md +0 -110
  60. docs/user/getting_started/video_tutorials.md +0 -17
  61. docs/user/user.md +0 -71
  62. docs/user/widgets/bec_figure/BECFigure.png +0 -0
  63. docs/user/widgets/bec_figure/bec_figure.md +0 -105
  64. docs/user/widgets/bec_status_box/bec_status_box.gif +0 -0
  65. docs/user/widgets/bec_status_box/bec_status_box.md +0 -38
  66. docs/user/widgets/buttons/buttons.md +0 -90
  67. docs/user/widgets/buttons/dark_mode_disabled.png +0 -0
  68. docs/user/widgets/buttons/dark_mode_enabled.png +0 -0
  69. docs/user/widgets/device_browser/device_browser.md +0 -36
  70. docs/user/widgets/device_browser/device_browser.png +0 -0
  71. docs/user/widgets/device_input/device_input.md +0 -100
  72. docs/user/widgets/dock_area/BECDockArea.png +0 -0
  73. docs/user/widgets/dock_area/bec_dock_area.md +0 -109
  74. docs/user/widgets/image/image_plot.gif +0 -0
  75. docs/user/widgets/image/image_widget.md +0 -84
  76. docs/user/widgets/motor_map/motor.gif +0 -0
  77. docs/user/widgets/motor_map/motor_map.md +0 -80
  78. docs/user/widgets/position_indicator/position_indicator.md +0 -69
  79. docs/user/widgets/positioner_box/positioner_box.md +0 -63
  80. docs/user/widgets/progress_bar/progress_bar.gif +0 -0
  81. docs/user/widgets/progress_bar/ring_progress_bar.md +0 -103
  82. docs/user/widgets/queue/queue.md +0 -41
  83. docs/user/widgets/scan_control/hide_scan_control.png +0 -0
  84. docs/user/widgets/scan_control/scan_control.gif +0 -0
  85. docs/user/widgets/scan_control/scan_control.md +0 -54
  86. docs/user/widgets/spinner/spinner.md +0 -68
  87. docs/user/widgets/text_box/text_box.md +0 -74
  88. docs/user/widgets/toggle/toggle.md +0 -66
  89. docs/user/widgets/waveform/bec_figure_dap.gif +0 -0
  90. docs/user/widgets/waveform/scatter_2D.gif +0 -0
  91. docs/user/widgets/waveform/w1D.gif +0 -0
  92. docs/user/widgets/waveform/waveform_widget.md +0 -132
  93. docs/user/widgets/website/website.md +0 -69
  94. docs/user/widgets/widgets.md +0 -220
  95. tests/__init__.py +0 -0
  96. tests/end-2-end/__init__.py +0 -0
  97. tests/end-2-end/conftest.py +0 -53
  98. tests/end-2-end/test_bec_dock_rpc_e2e.py +0 -298
  99. tests/end-2-end/test_bec_figure_rpc_e2e.py +0 -212
  100. tests/end-2-end/test_rpc_register_e2e.py +0 -40
  101. tests/end-2-end/test_scan_control_e2e.py +0 -71
  102. tests/references/SpinnerWidget/SpinnerWidget_darwin.png +0 -0
  103. tests/references/SpinnerWidget/SpinnerWidget_linux.png +0 -0
  104. tests/references/SpinnerWidget/SpinnerWidget_started_darwin.png +0 -0
  105. tests/references/SpinnerWidget/SpinnerWidget_started_linux.png +0 -0
  106. tests/unit_tests/__init__.py +0 -0
  107. tests/unit_tests/client_mocks.py +0 -189
  108. tests/unit_tests/conftest.py +0 -64
  109. tests/unit_tests/test_bec_connector.py +0 -80
  110. tests/unit_tests/test_bec_dispatcher.py +0 -119
  111. tests/unit_tests/test_bec_dock.py +0 -155
  112. tests/unit_tests/test_bec_figure.py +0 -270
  113. tests/unit_tests/test_bec_image.py +0 -63
  114. tests/unit_tests/test_bec_image_widget.py +0 -217
  115. tests/unit_tests/test_bec_motor_map.py +0 -282
  116. tests/unit_tests/test_bec_queue.py +0 -111
  117. tests/unit_tests/test_bec_status_box.py +0 -123
  118. tests/unit_tests/test_client_utils.py +0 -76
  119. tests/unit_tests/test_color_map_selector.py +0 -42
  120. tests/unit_tests/test_color_validation.py +0 -75
  121. tests/unit_tests/test_configs/config_device.yaml +0 -33
  122. tests/unit_tests/test_configs/config_device_no_entry.yaml +0 -27
  123. tests/unit_tests/test_configs/config_scan.yaml +0 -82
  124. tests/unit_tests/test_crosshair.py +0 -143
  125. tests/unit_tests/test_dark_mode_button.py +0 -70
  126. tests/unit_tests/test_device_browser.py +0 -83
  127. tests/unit_tests/test_device_input_base.py +0 -76
  128. tests/unit_tests/test_device_input_widgets.py +0 -178
  129. tests/unit_tests/test_error_utils.py +0 -63
  130. tests/unit_tests/test_generate_cli_client.py +0 -123
  131. tests/unit_tests/test_generate_plugin.py +0 -155
  132. tests/unit_tests/test_motor_map_widget.py +0 -194
  133. tests/unit_tests/test_msgs/__init__.py +0 -0
  134. tests/unit_tests/test_msgs/available_scans_message.py +0 -989
  135. tests/unit_tests/test_plot_base.py +0 -95
  136. tests/unit_tests/test_plugin_utils.py +0 -13
  137. tests/unit_tests/test_positioner_box.py +0 -130
  138. tests/unit_tests/test_ring_progress_bar.py +0 -337
  139. tests/unit_tests/test_rpc_register.py +0 -52
  140. tests/unit_tests/test_rpc_server.py +0 -42
  141. tests/unit_tests/test_rpc_widget_handler.py +0 -7
  142. tests/unit_tests/test_scan_control.py +0 -324
  143. tests/unit_tests/test_scan_control_group_box.py +0 -160
  144. tests/unit_tests/test_setting_dialog.py +0 -96
  145. tests/unit_tests/test_spinner.py +0 -31
  146. tests/unit_tests/test_stop_button.py +0 -27
  147. tests/unit_tests/test_text_box_widget.py +0 -54
  148. tests/unit_tests/test_toggle.py +0 -38
  149. tests/unit_tests/test_vscode_widget.py +0 -75
  150. tests/unit_tests/test_waveform1d.py +0 -712
  151. tests/unit_tests/test_waveform_widget.py +0 -462
  152. tests/unit_tests/test_website_widget.py +0 -25
  153. tests/unit_tests/test_widget_io.py +0 -90
  154. tests/unit_tests/test_yaml_dialog.py +0 -163
  155. {bec_widgets-0.99.8.dist-info → bec_widgets-0.99.10.dist-info}/WHEEL +0 -0
  156. {bec_widgets-0.99.8.dist-info → bec_widgets-0.99.10.dist-info}/entry_points.txt +0 -0
  157. {bec_widgets-0.99.8.dist-info → bec_widgets-0.99.10.dist-info}/licenses/LICENSE +0 -0
@@ -1,194 +0,0 @@
1
- from unittest.mock import MagicMock, patch
2
-
3
- import pytest
4
-
5
- from bec_widgets.widgets.motor_map.motor_map_dialog.motor_map_settings import MotorMapSettings
6
- from bec_widgets.widgets.motor_map.motor_map_widget import BECMotorMapWidget
7
-
8
- from .client_mocks import mocked_client
9
-
10
-
11
- @pytest.fixture
12
- def motor_map_widget(qtbot, mocked_client):
13
- widget = BECMotorMapWidget(client=mocked_client())
14
- widget.toolbar.widgets["motor_x"].device_combobox.set_device_filter("FakePositioner")
15
- widget.toolbar.widgets["motor_y"].device_combobox.set_device_filter("FakePositioner")
16
- qtbot.addWidget(widget)
17
- qtbot.waitExposed(widget)
18
- yield widget
19
-
20
-
21
- @pytest.fixture
22
- def mock_motor_map(motor_map_widget):
23
- motor_map_mock = MagicMock()
24
- motor_map_widget.map = motor_map_mock
25
- return motor_map_mock
26
-
27
-
28
- def test_motor_map_widget_init(motor_map_widget):
29
- assert motor_map_widget is not None
30
- assert motor_map_widget.client is not None
31
- assert isinstance(motor_map_widget, BECMotorMapWidget)
32
- assert motor_map_widget.config.widget_class == "BECMotorMapWidget"
33
-
34
- # check initial state of toolbar actions
35
- assert motor_map_widget.toolbar.widgets["connect"].action.isEnabled() == True
36
- assert motor_map_widget.toolbar.widgets["config"].action.isEnabled() == False
37
- assert motor_map_widget.toolbar.widgets["history"].action.isEnabled() == False
38
- assert (
39
- motor_map_widget.toolbar.widgets["motor_x"].device_combobox.config.device_filter
40
- == "FakePositioner"
41
- )
42
- assert (
43
- motor_map_widget.toolbar.widgets["motor_y"].device_combobox.config.device_filter
44
- == "FakePositioner"
45
- )
46
- assert motor_map_widget.map.motor_x is None
47
- assert motor_map_widget.map.motor_y is None
48
-
49
-
50
- ###################################
51
- # Toolbar Actions
52
- ###################################
53
-
54
-
55
- def test_motor_map_widget_change_motors_enable_toolbar(motor_map_widget):
56
- motor_map_widget.change_motors("samx", "samy")
57
- assert motor_map_widget.map.motor_x == "samx"
58
- assert motor_map_widget.map.motor_y == "samy"
59
- assert motor_map_widget.toolbar.widgets["motor_x"].device_combobox.currentText() == "samx"
60
- assert motor_map_widget.toolbar.widgets["motor_y"].device_combobox.currentText() == "samy"
61
- assert motor_map_widget.toolbar.widgets["config"].action.isEnabled() == True
62
- assert motor_map_widget.toolbar.widgets["history"].action.isEnabled() == True
63
-
64
-
65
- ###################################
66
- # Wrapper methods for MotorMap
67
- ###################################
68
-
69
-
70
- def test_change_motors(motor_map_widget, mock_motor_map):
71
- motor_map_widget.change_motors("motor_x", "motor_y", "motor_x_entry", "motor_y_entry", True)
72
- mock_motor_map.change_motors.assert_called_once_with(
73
- "motor_x", "motor_y", "motor_x_entry", "motor_y_entry", True
74
- )
75
-
76
-
77
- def test_get_data(motor_map_widget, mock_motor_map):
78
- motor_map_widget.get_data()
79
- mock_motor_map.get_data.assert_called_once()
80
-
81
-
82
- def test_reset_history(motor_map_widget, mock_motor_map):
83
- motor_map_widget.reset_history()
84
- mock_motor_map.reset_history.assert_called_once()
85
-
86
-
87
- def test_set_color(motor_map_widget, mock_motor_map):
88
- motor_map_widget.set_color("blue")
89
- mock_motor_map.set_color.assert_called_once_with("blue")
90
-
91
-
92
- def test_set_max_points(motor_map_widget, mock_motor_map):
93
- motor_map_widget.set_max_points(100)
94
- mock_motor_map.set_max_points.assert_called_once_with(100)
95
-
96
-
97
- def test_set_precision(motor_map_widget, mock_motor_map):
98
- motor_map_widget.set_precision(2)
99
- mock_motor_map.set_precision.assert_called_once_with(2)
100
-
101
-
102
- def test_set_num_dim_points(motor_map_widget, mock_motor_map):
103
- motor_map_widget.set_num_dim_points(50)
104
- mock_motor_map.set_num_dim_points.assert_called_once_with(50)
105
-
106
-
107
- def test_set_background_value(motor_map_widget, mock_motor_map):
108
- motor_map_widget.set_background_value(128)
109
- mock_motor_map.set_background_value.assert_called_once_with(128)
110
-
111
-
112
- def test_set_scatter_size(motor_map_widget, mock_motor_map):
113
- motor_map_widget.set_scatter_size(10)
114
- mock_motor_map.set_scatter_size.assert_called_once_with(10)
115
-
116
-
117
- ###################################
118
- # MotorMap Dialog
119
- ###################################
120
-
121
-
122
- def test_motor_map_widget_clicked(motor_map_widget, qtbot):
123
- motor_map_widget.toolbar.widgets["motor_x"].device_combobox.setCurrentText("samx")
124
- motor_map_widget.toolbar.widgets["motor_y"].device_combobox.setCurrentText("samy")
125
- motor_map_widget.toolbar.widgets["connect"].action.trigger()
126
-
127
- qtbot.wait(200)
128
-
129
- assert motor_map_widget.map.motor_x == "samx"
130
- assert motor_map_widget.map.motor_y == "samy"
131
- assert motor_map_widget.toolbar.widgets["config"].action.isEnabled() == True
132
- assert motor_map_widget.toolbar.widgets["history"].action.isEnabled() == True
133
-
134
-
135
- @pytest.fixture
136
- def motor_map_settings(qtbot):
137
- widget = MotorMapSettings()
138
- qtbot.addWidget(widget)
139
- qtbot.waitExposed(widget)
140
- yield widget
141
-
142
-
143
- def test_display_current_settings(motor_map_settings):
144
- config = {
145
- "max_points": 100,
146
- "num_dim_points": 50,
147
- "precision": 2,
148
- "scatter_size": 10,
149
- "background_value": 128,
150
- "color": (255, 0, 0, 255),
151
- }
152
-
153
- with patch("bec_widgets.utils.widget_io.WidgetIO.set_value") as mock_set_value:
154
- with patch.object(motor_map_settings.ui.color, "setColor") as mock_set_color:
155
- motor_map_settings.display_current_settings(config)
156
- mock_set_value.assert_any_call(motor_map_settings.ui.max_points, config["max_points"])
157
- mock_set_value.assert_any_call(
158
- motor_map_settings.ui.trace_dim, config["num_dim_points"]
159
- )
160
- mock_set_value.assert_any_call(motor_map_settings.ui.precision, config["precision"])
161
- mock_set_value.assert_any_call(
162
- motor_map_settings.ui.scatter_size, config["scatter_size"]
163
- )
164
- mock_set_value.assert_any_call(
165
- motor_map_settings.ui.background_value, 50
166
- ) # 128/255*100 = 50
167
- mock_set_color.assert_called_once_with(config["color"])
168
-
169
-
170
- def test_accept_changes(motor_map_settings):
171
- with patch(
172
- "bec_widgets.utils.widget_io.WidgetIO.get_value", side_effect=[100, 50, 2, 10, 50]
173
- ) as mock_get_value:
174
- with patch.object(
175
- motor_map_settings.ui.color, "get_color", return_value=(255, 0, 0, 255)
176
- ) as mock_get_color:
177
- mock_target_widget = MagicMock()
178
- motor_map_settings.set_target_widget(mock_target_widget)
179
-
180
- motor_map_settings.accept_changes()
181
-
182
- mock_get_value.assert_any_call(motor_map_settings.ui.max_points)
183
- mock_get_value.assert_any_call(motor_map_settings.ui.trace_dim)
184
- mock_get_value.assert_any_call(motor_map_settings.ui.precision)
185
- mock_get_value.assert_any_call(motor_map_settings.ui.scatter_size)
186
- mock_get_value.assert_any_call(motor_map_settings.ui.background_value)
187
- mock_get_color.assert_called_once()
188
-
189
- mock_target_widget.set_max_points.assert_called_once_with(100)
190
- mock_target_widget.set_num_dim_points.assert_called_once_with(50)
191
- mock_target_widget.set_precision.assert_called_once_with(2)
192
- mock_target_widget.set_scatter_size.assert_called_once_with(10)
193
- mock_target_widget.set_background_value.assert_called_once_with(127)
194
- mock_target_widget.set_color.assert_called_once_with((255, 0, 0, 255))
File without changes