bec-widgets 0.81.1__py3-none-any.whl → 0.82.1__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 (64) hide show
  1. CHANGELOG.md +44 -40
  2. PKG-INFO +1 -1
  3. bec_widgets/cli/client.py +1 -0
  4. bec_widgets/qt_utils/settings_dialog.py +107 -0
  5. bec_widgets/{widgets/toolbar → qt_utils}/toolbar.py +1 -30
  6. bec_widgets/widgets/{device_inputs → base_classes}/device_input_base.py +2 -0
  7. bec_widgets/widgets/{buttons/color_button → color_button}/color_button_plugin.py +1 -1
  8. bec_widgets/widgets/{buttons/color_button → color_button}/register_color_button.py +1 -1
  9. bec_widgets/widgets/device_combobox/assets/device_combobox_icon.png +0 -0
  10. bec_widgets/widgets/{device_inputs/device_combobox → device_combobox}/device_combobox.py +2 -2
  11. bec_widgets/widgets/device_combobox/device_combobox.pyproject +3 -0
  12. bec_widgets/widgets/{device_inputs/device_combobox → device_combobox}/device_combobox_plugin.py +6 -3
  13. bec_widgets/widgets/{device_inputs/device_combobox → device_combobox}/register_device_combobox.py +1 -3
  14. bec_widgets/widgets/device_line_edit/__init__.py +0 -0
  15. bec_widgets/widgets/device_line_edit/assets/line_edit_icon.png +0 -0
  16. bec_widgets/widgets/{device_inputs/device_line_edit → device_line_edit}/device_line_edit.py +2 -2
  17. bec_widgets/widgets/device_line_edit/device_line_edit.pyproject +3 -0
  18. bec_widgets/widgets/{device_inputs/device_line_edit → device_line_edit}/device_line_edit_plugin.py +6 -3
  19. bec_widgets/widgets/{device_inputs/device_line_edit → device_line_edit}/register_device_line_edit.py +1 -3
  20. bec_widgets/widgets/figure/plots/motor_map/motor_map.py +10 -8
  21. bec_widgets/widgets/figure/plots/waveform/waveform.py +8 -2
  22. bec_widgets/widgets/motor_map/motor_map_dialog/motor_map_settings.py +5 -31
  23. bec_widgets/widgets/motor_map/motor_map_dialog/motor_map_toolbar.py +2 -2
  24. bec_widgets/widgets/motor_map/motor_map_widget.py +6 -15
  25. bec_widgets/widgets/scan_control/scan_control.py +1 -1
  26. bec_widgets/widgets/scan_control/scan_group_box.py +1 -1
  27. bec_widgets/widgets/stop_button/__init__.py +0 -0
  28. bec_widgets/widgets/stop_button/assets/stop.png +0 -0
  29. bec_widgets/widgets/stop_button/register_stop_button.py +15 -0
  30. bec_widgets/widgets/{buttons/stop_button → stop_button}/stop_button.py +5 -12
  31. bec_widgets/widgets/stop_button/stop_button.pyproject +1 -0
  32. bec_widgets/widgets/stop_button/stop_button_plugin.py +57 -0
  33. bec_widgets/widgets/toggle/__init__.py +0 -0
  34. bec_widgets/widgets/toggle/register_toggle_switch.py +15 -0
  35. bec_widgets/widgets/toggle/toggle.py +149 -0
  36. bec_widgets/widgets/toggle/toggle_switch.pyproject +1 -0
  37. bec_widgets/widgets/toggle/toggle_switch_plugin.py +54 -0
  38. {bec_widgets-0.81.1.dist-info → bec_widgets-0.82.1.dist-info}/METADATA +1 -1
  39. {bec_widgets-0.81.1.dist-info → bec_widgets-0.82.1.dist-info}/RECORD +57 -45
  40. pyproject.toml +1 -1
  41. tests/unit_tests/client_mocks.py +8 -0
  42. tests/unit_tests/test_device_input_base.py +2 -2
  43. tests/unit_tests/test_device_input_widgets.py +4 -2
  44. tests/unit_tests/test_motor_map_widget.py +196 -0
  45. tests/unit_tests/test_setting_dialog.py +97 -0
  46. tests/unit_tests/test_stop_button.py +5 -2
  47. tests/unit_tests/test_toggle.py +38 -0
  48. bec_widgets/widgets/buttons/__init__.py +0 -1
  49. bec_widgets/widgets/device_inputs/__init__.py +0 -2
  50. bec_widgets/widgets/device_inputs/device_combobox/device_combobox.pyproject +0 -4
  51. bec_widgets/widgets/device_inputs/device_combobox/launch_device_combobox.py +0 -11
  52. bec_widgets/widgets/device_inputs/device_line_edit/device_line_edit.pyproject +0 -4
  53. bec_widgets/widgets/device_inputs/device_line_edit/launch_device_line_edit.py +0 -11
  54. bec_widgets/widgets/toolbar/__init__.py +0 -1
  55. /bec_widgets/{widgets/buttons/color_button → qt_utils}/__init__.py +0 -0
  56. /bec_widgets/widgets/{buttons/stop_button → base_classes}/__init__.py +0 -0
  57. /bec_widgets/widgets/{device_inputs/device_combobox → color_button}/__init__.py +0 -0
  58. /bec_widgets/widgets/{buttons/color_button → color_button}/assets/color_button.png +0 -0
  59. /bec_widgets/widgets/{buttons/color_button → color_button}/color_button.py +0 -0
  60. /bec_widgets/widgets/{buttons/color_button → color_button}/color_button.pyproject +0 -0
  61. /bec_widgets/widgets/{device_inputs/device_line_edit → device_combobox}/__init__.py +0 -0
  62. {bec_widgets-0.81.1.dist-info → bec_widgets-0.82.1.dist-info}/WHEEL +0 -0
  63. {bec_widgets-0.81.1.dist-info → bec_widgets-0.82.1.dist-info}/entry_points.txt +0 -0
  64. {bec_widgets-0.81.1.dist-info → bec_widgets-0.82.1.dist-info}/licenses/LICENSE +0 -0
@@ -0,0 +1,15 @@
1
+ def main(): # pragma: no cover
2
+ from qtpy import PYSIDE6
3
+
4
+ if not PYSIDE6:
5
+ print("PYSIDE6 is not available in the environment. Cannot patch designer.")
6
+ return
7
+ from PySide6.QtDesigner import QPyDesignerCustomWidgetCollection
8
+
9
+ from bec_widgets.widgets.stop_button.stop_button_plugin import StopButtonPlugin
10
+
11
+ QPyDesignerCustomWidgetCollection.addCustomWidget(StopButtonPlugin())
12
+
13
+
14
+ if __name__ == "__main__": # pragma: no cover
15
+ main()
@@ -1,3 +1,4 @@
1
+ from qtpy.QtCore import Slot
1
2
  from qtpy.QtWidgets import QPushButton
2
3
 
3
4
  from bec_widgets.utils import BECConnector
@@ -12,21 +13,13 @@ class StopButton(BECConnector, QPushButton):
12
13
 
13
14
  self.get_bec_shortcuts()
14
15
  self.setText("Stop")
15
- self.setStyleSheet("background-color: #cc181e; color: white")
16
+ self.setStyleSheet(
17
+ "background-color: #cc181e; color: white; font-weight: bold; font-size: 12px;"
18
+ )
16
19
  self.clicked.connect(self.stop_scan)
17
20
 
21
+ @Slot()
18
22
  def stop_scan(self):
19
23
  """Stop the scan."""
20
24
  self.queue.request_scan_abortion()
21
25
  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 @@
1
+ {'files': ['stop_button.py']}
@@ -0,0 +1,57 @@
1
+ # Copyright (C) 2022 The Qt Company Ltd.
2
+ # SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
3
+ import os
4
+
5
+ from qtpy.QtDesigner import QDesignerCustomWidgetInterface
6
+ from qtpy.QtGui import QIcon
7
+
8
+ from bec_widgets.widgets.stop_button.stop_button import StopButton
9
+
10
+ DOM_XML = """
11
+ <ui language='c++'>
12
+ <widget class='StopButton' name='stop_button'>
13
+ </widget>
14
+ </ui>
15
+ """
16
+
17
+
18
+ class StopButtonPlugin(QDesignerCustomWidgetInterface): # pragma: no cover
19
+ def __init__(self):
20
+ super().__init__()
21
+ self._form_editor = None
22
+
23
+ def createWidget(self, parent):
24
+ t = StopButton(parent)
25
+ return t
26
+
27
+ def domXml(self):
28
+ return DOM_XML
29
+
30
+ def group(self):
31
+ return "BEC Buttons"
32
+
33
+ def icon(self):
34
+ current_path = os.path.dirname(__file__)
35
+ icon_path = os.path.join(current_path, "assets", "stop.png")
36
+ return QIcon(icon_path)
37
+
38
+ def includeFile(self):
39
+ return "stop_button"
40
+
41
+ def initialize(self, form_editor):
42
+ self._form_editor = form_editor
43
+
44
+ def isContainer(self):
45
+ return False
46
+
47
+ def isInitialized(self):
48
+ return self._form_editor is not None
49
+
50
+ def name(self):
51
+ return "StopButton"
52
+
53
+ def toolTip(self):
54
+ return "A button that stops the current scan."
55
+
56
+ def whatsThis(self):
57
+ return self.toolTip()
File without changes
@@ -0,0 +1,15 @@
1
+ def main(): # pragma: no cover
2
+ from qtpy import PYSIDE6
3
+
4
+ if not PYSIDE6:
5
+ print("PYSIDE6 is not available in the environment. Cannot patch designer.")
6
+ return
7
+ from PySide6.QtDesigner import QPyDesignerCustomWidgetCollection
8
+
9
+ from bec_widgets.widgets.toggle.toggle_switch_plugin import ToggleSwitchPlugin
10
+
11
+ QPyDesignerCustomWidgetCollection.addCustomWidget(ToggleSwitchPlugin())
12
+
13
+
14
+ if __name__ == "__main__": # pragma: no cover
15
+ main()
@@ -0,0 +1,149 @@
1
+ import sys
2
+
3
+ from qtpy.QtCore import Property, QEasingCurve, QPointF, QPropertyAnimation, Qt
4
+ from qtpy.QtGui import QColor, QPainter
5
+ from qtpy.QtWidgets import QApplication, QWidget
6
+
7
+
8
+ class ToggleSwitch(QWidget):
9
+ """
10
+ A simple toggle.
11
+ """
12
+
13
+ def __init__(self, parent=None):
14
+ super().__init__(parent)
15
+ self.setFixedSize(40, 21)
16
+
17
+ self._thumb_pos = QPointF(3, 2) # Use QPointF for the thumb position
18
+ self._active_track_color = QColor(33, 150, 243)
19
+ self._active_thumb_color = QColor(255, 255, 255)
20
+ self._inactive_track_color = QColor(200, 200, 200)
21
+ self._inactive_thumb_color = QColor(255, 255, 255)
22
+
23
+ self._checked = False
24
+ self._track_color = self.inactive_track_color
25
+ self._thumb_color = self.inactive_thumb_color
26
+
27
+ self._animation = QPropertyAnimation(self, b"thumb_pos")
28
+ self._animation.setDuration(200)
29
+ self._animation.setEasingCurve(QEasingCurve.Type.OutBack)
30
+ self.setProperty("checked", True)
31
+
32
+ @Property(bool)
33
+ def checked(self):
34
+ """
35
+ The checked state of the toggle switch.
36
+ """
37
+ return self._checked
38
+
39
+ @checked.setter
40
+ def checked(self, state):
41
+ self._checked = state
42
+ self.update_colors()
43
+ self.set_thumb_pos_to_state()
44
+
45
+ @Property(QPointF)
46
+ def thumb_pos(self):
47
+ return self._thumb_pos
48
+
49
+ @thumb_pos.setter
50
+ def thumb_pos(self, pos):
51
+ self._thumb_pos = pos
52
+ self.update()
53
+
54
+ @Property(QColor)
55
+ def active_track_color(self):
56
+ return self._active_track_color
57
+
58
+ @active_track_color.setter
59
+ def active_track_color(self, color):
60
+ self._active_track_color = color
61
+ self.update_colors()
62
+ self.update()
63
+
64
+ @Property(QColor)
65
+ def active_thumb_color(self):
66
+ return self._active_thumb_color
67
+
68
+ @active_thumb_color.setter
69
+ def active_thumb_color(self, color):
70
+ self._active_thumb_color = color
71
+ self.update_colors()
72
+ self.update()
73
+
74
+ @Property(QColor)
75
+ def inactive_track_color(self):
76
+ return self._inactive_track_color
77
+
78
+ @inactive_track_color.setter
79
+ def inactive_track_color(self, color):
80
+ self._inactive_track_color = color
81
+ self.update_colors()
82
+ self.update()
83
+
84
+ @Property(QColor)
85
+ def inactive_thumb_color(self):
86
+ return self._inactive_thumb_color
87
+
88
+ @inactive_thumb_color.setter
89
+ def inactive_thumb_color(self, color):
90
+ self._inactive_thumb_color = color
91
+ self.update_colors()
92
+ self.update()
93
+
94
+ def paintEvent(self, event):
95
+ painter = QPainter(self)
96
+ painter.setRenderHint(QPainter.Antialiasing)
97
+
98
+ # Draw track
99
+ painter.setBrush(self._track_color)
100
+ painter.setPen(Qt.NoPen)
101
+ painter.drawRoundedRect(
102
+ 0, 0, self.width(), self.height(), self.height() / 2, self.height() / 2
103
+ )
104
+
105
+ # Draw thumb
106
+ painter.setBrush(self._thumb_color)
107
+ diameter = int(self.height() * 0.8)
108
+ painter.drawEllipse(int(self._thumb_pos.x()), int(self._thumb_pos.y()), diameter, diameter)
109
+
110
+ def mousePressEvent(self, event):
111
+ if event.button() == Qt.LeftButton:
112
+ self._checked = not self._checked
113
+ self.update_colors()
114
+ self.animate_thumb()
115
+
116
+ def update_colors(self):
117
+
118
+ self._thumb_color = self.active_thumb_color if self._checked else self.inactive_thumb_color
119
+ self._track_color = self.active_track_color if self._checked else self.inactive_track_color
120
+
121
+ def get_thumb_pos(self, checked):
122
+ return QPointF(self.width() - self.height() + 3, 2) if checked else QPointF(3, 2)
123
+
124
+ def set_thumb_pos_to_state(self):
125
+ # this is to avoid that linter complains about the thumb_pos setter
126
+ self.setProperty("thumb_pos", self.get_thumb_pos(self._checked))
127
+ self.update_colors()
128
+
129
+ def animate_thumb(self):
130
+ start_pos = self.thumb_pos
131
+ end_pos = self.get_thumb_pos(self._checked)
132
+
133
+ self._animation.stop()
134
+ self._animation.setStartValue(start_pos)
135
+ self._animation.setEndValue(end_pos)
136
+ self._animation.start()
137
+
138
+ def sizeHint(self):
139
+ return self.minimumSizeHint()
140
+
141
+ def minimumSizeHint(self):
142
+ return self.size()
143
+
144
+
145
+ if __name__ == "__main__": # pragma: no cover
146
+ app = QApplication(sys.argv)
147
+ window = ToggleSwitch()
148
+ window.show()
149
+ sys.exit(app.exec())
@@ -0,0 +1 @@
1
+ {'files': ['toggle.py']}
@@ -0,0 +1,54 @@
1
+ # Copyright (C) 2022 The Qt Company Ltd.
2
+ # SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
3
+
4
+ from qtpy.QtDesigner import QDesignerCustomWidgetInterface
5
+ from qtpy.QtGui import QIcon
6
+
7
+ from bec_widgets.widgets.toggle.toggle import ToggleSwitch
8
+
9
+ DOM_XML = """
10
+ <ui language='c++'>
11
+ <widget class='ToggleSwitch' name='toggle_switch'>
12
+ </widget>
13
+ </ui>
14
+ """
15
+
16
+
17
+ class ToggleSwitchPlugin(QDesignerCustomWidgetInterface): # pragma: no cover
18
+ def __init__(self):
19
+ super().__init__()
20
+ self._form_editor = None
21
+
22
+ def createWidget(self, parent):
23
+ t = ToggleSwitch(parent)
24
+ return t
25
+
26
+ def domXml(self):
27
+ return DOM_XML
28
+
29
+ def group(self):
30
+ return ""
31
+
32
+ def icon(self):
33
+ return QIcon()
34
+
35
+ def includeFile(self):
36
+ return "toggle_switch"
37
+
38
+ def initialize(self, form_editor):
39
+ self._form_editor = form_editor
40
+
41
+ def isContainer(self):
42
+ return False
43
+
44
+ def isInitialized(self):
45
+ return self._form_editor is not None
46
+
47
+ def name(self):
48
+ return "ToggleSwitch"
49
+
50
+ def toolTip(self):
51
+ return "ToggleSwitch"
52
+
53
+ def whatsThis(self):
54
+ return self.toolTip()
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: bec_widgets
3
- Version: 0.81.1
3
+ Version: 0.82.1
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,11 +2,11 @@
2
2
  .gitlab-ci.yml,sha256=vuDJPAYOK0995_H6fu0N5dIgIrOJgTvKr0HZkNWlxMw,8142
3
3
  .pylintrc,sha256=eeY8YwSI74oFfq6IYIbCqnx3Vk8ZncKaatv96n_Y8Rs,18544
4
4
  .readthedocs.yaml,sha256=aSOc277LqXcsTI6lgvm_JY80lMlr69GbPKgivua2cS0,603
5
- CHANGELOG.md,sha256=W9XR-rYh7t3zY1bRlnIahn2zpqaDrPcTt7aRKTXwAwc,6826
5
+ CHANGELOG.md,sha256=51OXCmE8Hehc5TNpYDvNRXUi5tTewjqPN-MzOIpdoFY,6575
6
6
  LICENSE,sha256=YRKe85CBRyP7UpEAWwU8_qSIyuy5-l_9C-HKg5Qm8MQ,1511
7
- PKG-INFO,sha256=iC_enZjkeS3eb0_OWFePjHBFeUAK_XzT9m58EUz5_8U,1309
7
+ PKG-INFO,sha256=HDswJisHfyksMUD6G3xvmym8cQlpX85Mf6i16-m6jKM,1309
8
8
  README.md,sha256=Od69x-RS85Hph0-WwWACwal4yUd67XkEn4APEfHhHFw,2649
9
- pyproject.toml,sha256=v0tcEeOW9aQHcN_w9BuTjwLWzw0NZG1fWwXZ4DdrAcI,2358
9
+ pyproject.toml,sha256=BzRmQleEbvlRpmEbGMq6GfGWaVHIQMQxoqypM_B_yZ8,2358
10
10
  .git_hooks/pre-commit,sha256=n3RofIZHJl8zfJJIUomcMyYGFi_rwq4CC19z0snz3FI,286
11
11
  .gitlab/issue_templates/bug_report_template.md,sha256=gAuyEwl7XlnebBrkiJ9AqffSNOywmr8vygUFWKTuQeI,386
12
12
  .gitlab/issue_templates/documentation_update_template.md,sha256=FHLdb3TS_D9aL4CYZCjyXSulbaW5mrN2CmwTaeLPbNw,860
@@ -17,7 +17,7 @@ bec_widgets/assets/bec_widgets_icon.png,sha256=K8dgGwIjalDh9PRHUsSQBqgdX7a00nM3i
17
17
  bec_widgets/assets/terminal_icon.png,sha256=bJl7Tft4Fi2uxvuXI8o14uMHnI9eAWKSU2uftXCH9ws,3889
18
18
  bec_widgets/cli/__init__.py,sha256=d0Q6Fn44e7wFfLabDOBxpcJ1DPKWlFunGYDUBmO-4hA,22
19
19
  bec_widgets/cli/auto_updates.py,sha256=DyBV3HnjMSH-cvVkYNcDiYKVf0Xut4Qy2qGQqkW47Bw,4833
20
- bec_widgets/cli/client.py,sha256=J011qUzqWpdwclRzB2yA8zqytALAwCwgZLgruUKeyv0,60054
20
+ bec_widgets/cli/client.py,sha256=MMDy1edr1j9klgVGZZmD1dzLxi74gp75Jf4FNed9al8,60084
21
21
  bec_widgets/cli/client_utils.py,sha256=zq1gPW7t4n9Nsn4MLkdUeKwwl-9nUcf5UjuN8lZr9iY,12281
22
22
  bec_widgets/cli/generate_cli.py,sha256=Ea5px9KblUlcGg-1JbJBTIU7laGg2n8PM7Efw9WVVzM,5889
23
23
  bec_widgets/cli/rpc_register.py,sha256=QxXUZu5XNg00Yf5O3UHWOXg3-f_pzKjjoZYMOa-MOJc,2216
@@ -34,6 +34,9 @@ bec_widgets/examples/plugin_example_pyside/taskmenuextension.pyproject,sha256=O_
34
34
  bec_widgets/examples/plugin_example_pyside/tictactoe.py,sha256=s3rCurXloVcmMdzZiSzDS7Lgj0Qe6x8-wkxCeiXYX80,4904
35
35
  bec_widgets/examples/plugin_example_pyside/tictactoeplugin.py,sha256=BBt3MD8oDLUMCCY3mioJa1QRR0WQdW6DuvVmK1Taovk,1734
36
36
  bec_widgets/examples/plugin_example_pyside/tictactoetaskmenu.py,sha256=LNwplI6deUdKY6FOhUuWBanotxk9asF2G-6k7lFfA8Y,2301
37
+ bec_widgets/qt_utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
38
+ bec_widgets/qt_utils/settings_dialog.py,sha256=rR_Zk4RGTnI4dz5OEzCc13lVpxlOKuwOf4_7wqXSbRw,3373
39
+ bec_widgets/qt_utils/toolbar.py,sha256=r6H4A8_3s2AItmdV8JS9UMSM4hV8Fx_162grYL2Pwzw,2111
37
40
  bec_widgets/utils/__init__.py,sha256=1930ji1Jj6dVuY81Wd2kYBhHYNV-2R0bN_L4o9zBj1U,533
38
41
  bec_widgets/utils/bec_connector.py,sha256=JScGWHEt4kh6C-C0O_JV_bOuiQlBjYTAPJktqgeAj70,9534
39
42
  bec_widgets/utils/bec_designer.py,sha256=ak3G8FdojUPjVBBwdPXw7tN5P2Uxr-SSoQt394jXeAA,4308
@@ -56,6 +59,8 @@ bec_widgets/utils/yaml_dialog.py,sha256=T6UyGNGdmpXW74fa_7Nk6b99T5pp2Wvyw3AOauRc
56
59
  bec_widgets/utils/plugin_templates/plugin.template,sha256=JHkUvYegesW-xEhZuY4FQVGqyEMBRLaPY4JNI8Ni_vE,1182
57
60
  bec_widgets/utils/plugin_templates/register.template,sha256=XyL3OZPT_FTArLAM8tHd5qMqv2ZuAbJAZLsNNnHcagU,417
58
61
  bec_widgets/widgets/__init__.py,sha256=AbpHGcgLb-kRsJGnwFEktk7uzpZOCcBY74-YBdrKVGs,1
62
+ bec_widgets/widgets/base_classes/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
63
+ bec_widgets/widgets/base_classes/device_input_base.py,sha256=k7-hIJBvoh1xPCnMCdJ-hdVvtqG1QMtk4sF3EZwvdCU,3918
59
64
  bec_widgets/widgets/bec_queue/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
60
65
  bec_widgets/widgets/bec_queue/bec_queue.py,sha256=voIsj599a5t-u-H15tpSqjGBmy5ra6LsHpZnqEZFrI8,3551
61
66
  bec_widgets/widgets/bec_queue/bec_queue.pyproject,sha256=VhoNmAv1DQUl9dg7dELyf5i4pZ5k65N3GnqOYiSwbQo,27
@@ -67,30 +72,25 @@ bec_widgets/widgets/bec_status_box/bec_status_box.pyproject,sha256=JWtx3Csfn2h7O
67
72
  bec_widgets/widgets/bec_status_box/bec_status_box_plugin.py,sha256=CNFIETpkORLQ9J3l91jefiRLJs5Ru3nsWIPoUwaRbB0,1242
68
73
  bec_widgets/widgets/bec_status_box/register_bec_status_box.py,sha256=EiQITnkNw7IU7hE776wAeXro97eZd9XlsB9essgCebE,481
69
74
  bec_widgets/widgets/bec_status_box/status_item.py,sha256=2SoMmgHL_MFnr7XiStFjLolHh0Vs3P68ZvP8kMIGc8w,5046
70
- bec_widgets/widgets/buttons/__init__.py,sha256=74ucIRU6-anoqQ-zT7wbrysmxhg_3_04xGhN_kllNUI,48
71
- bec_widgets/widgets/buttons/color_button/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
72
- bec_widgets/widgets/buttons/color_button/color_button.py,sha256=Faszdcu6iJo2n0fdAORvKMf926Le9f454t6JIIZRc-0,1049
73
- bec_widgets/widgets/buttons/color_button/color_button.pyproject,sha256=LUYF4VkDOB4ttVe7YfvLh64K-XZg0-xaVT06BqCT3UA,30
74
- bec_widgets/widgets/buttons/color_button/color_button_plugin.py,sha256=4phedgYl94PAn2VL-_IPIU3rKq6dwDGgHXyk5c2HcgU,1264
75
- bec_widgets/widgets/buttons/color_button/register_color_button.py,sha256=PqsqOMNcdBL956mRIRFau4emb0bExuEtI9_l1l6rf88,483
76
- bec_widgets/widgets/buttons/color_button/assets/color_button.png,sha256=dkjgGHSdxu98nM68O16fGpxBjxkkeLN8iu9M_8i5-NY,5618
77
- bec_widgets/widgets/buttons/stop_button/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
78
- bec_widgets/widgets/buttons/stop_button/stop_button.py,sha256=x4a7RvlMkHzOd05zKOGYkyTmBza7Me7jgOL9WIgA_c4,906
75
+ bec_widgets/widgets/color_button/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
76
+ bec_widgets/widgets/color_button/color_button.py,sha256=Faszdcu6iJo2n0fdAORvKMf926Le9f454t6JIIZRc-0,1049
77
+ bec_widgets/widgets/color_button/color_button.pyproject,sha256=LUYF4VkDOB4ttVe7YfvLh64K-XZg0-xaVT06BqCT3UA,30
78
+ bec_widgets/widgets/color_button/color_button_plugin.py,sha256=CvO3L6r8pBd-0DNuqjQ7uKF9u1mU6xFs23sS_dsj4tw,1256
79
+ bec_widgets/widgets/color_button/register_color_button.py,sha256=ZAx3t7G2VI2S-1qcEof31Xi9O0X8deLeZNgS651L1JI,475
80
+ bec_widgets/widgets/color_button/assets/color_button.png,sha256=dkjgGHSdxu98nM68O16fGpxBjxkkeLN8iu9M_8i5-NY,5618
79
81
  bec_widgets/widgets/console/console.py,sha256=EgKYlbW3NrRPoQwIr8x739sLd1IRBWkEy286VDQw0gA,17838
80
- bec_widgets/widgets/device_inputs/__init__.py,sha256=BcWvcSASPh6YdDu5jfC48xqI2_iBj1epUt4doYJQHEs,122
81
- bec_widgets/widgets/device_inputs/device_input_base.py,sha256=AP0Pgto87CKqgTuzrmFL3a7MOW9_qm1rmyiI2ZrvCOM,3839
82
- bec_widgets/widgets/device_inputs/device_combobox/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
83
- bec_widgets/widgets/device_inputs/device_combobox/device_combobox.py,sha256=0IMwb7A2A9HosgYQXpzYbOj6iQAhoMSrOTTGYbhJyDc,2826
84
- bec_widgets/widgets/device_inputs/device_combobox/device_combobox.pyproject,sha256=AH6Oz_4aDCzsBbHWnCNK_ALvQ0Qwj-z24sUG1oNSK3I,75
85
- bec_widgets/widgets/device_inputs/device_combobox/device_combobox_plugin.py,sha256=VfbP0PrLwME8OB1bz1kVmy8vJCZDRONvas5j5cPyd08,1218
86
- bec_widgets/widgets/device_inputs/device_combobox/launch_device_combobox.py,sha256=jr9JJHtIPmbUNLpGLUESS_bYcITnbv-W3EdrZCHq2Rg,267
87
- bec_widgets/widgets/device_inputs/device_combobox/register_device_combobox.py,sha256=V6QcxBU9Lli4qy2Vhf9bFfpTsofsc-bT-_vEp0heBsM,518
88
- bec_widgets/widgets/device_inputs/device_line_edit/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
89
- bec_widgets/widgets/device_inputs/device_line_edit/device_line_edit.py,sha256=DJbUvO5ewg-IG4-CgW69OSH3qvxd3bWuCGdy8q5NTrY,3379
90
- bec_widgets/widgets/device_inputs/device_line_edit/device_line_edit.pyproject,sha256=0GTk3WfNUHl-6tFEAY0pel5XBpVR0oyRX2BU-LNzVps,77
91
- bec_widgets/widgets/device_inputs/device_line_edit/device_line_edit_plugin.py,sha256=J1MNrtXkgBrwEsUXnf0pGRoNJ1g_OWqk-xafSpV4ot8,1239
92
- bec_widgets/widgets/device_inputs/device_line_edit/launch_device_line_edit.py,sha256=3sVZ-5Hoy1smhgBcnzO9SXHk5_oUEaWFnRfslXAW3_4,267
93
- bec_widgets/widgets/device_inputs/device_line_edit/register_device_line_edit.py,sha256=GXHPRe1kSkJ2NKDWQJWabI4a6Maw__niA2g5wLiheX8,520
82
+ bec_widgets/widgets/device_combobox/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
83
+ bec_widgets/widgets/device_combobox/device_combobox.py,sha256=L6hPOk3LkTy9U_HRdU7bvqCH1L1Y_BuPYTTfl1eqShg,2824
84
+ bec_widgets/widgets/device_combobox/device_combobox.pyproject,sha256=wI2eXR5ky_IM9-BCHJnH_9CEqYcZwIuLcgitSEr8OJU,40
85
+ bec_widgets/widgets/device_combobox/device_combobox_plugin.py,sha256=CQszPKVXoa4wRxucQjVIqblP5rtGvwWn8FZOR_OE_-o,1406
86
+ bec_widgets/widgets/device_combobox/register_device_combobox.py,sha256=xzz2qM82cgFIrj77c9zyUpJ-1QHZRMrLkyeq8uGNsmE,487
87
+ bec_widgets/widgets/device_combobox/assets/device_combobox_icon.png,sha256=ydC7WZmoU-UjjIOGFuUIDjQ30p4L66si2emHawc_inU,2592
88
+ bec_widgets/widgets/device_line_edit/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
89
+ bec_widgets/widgets/device_line_edit/device_line_edit.py,sha256=SnNWR_DrXwe3-FvaDosfIaSOqXiDy8_UcfRrPGwdKm0,3377
90
+ bec_widgets/widgets/device_line_edit/device_line_edit.pyproject,sha256=tqAYXRbxsHR41MwqmAxvfq1CFeZ1IRv84whUG67HjjE,41
91
+ bec_widgets/widgets/device_line_edit/device_line_edit_plugin.py,sha256=7aJR2jsEdbq2UuH9p-7lqKzndkrtY4ZcqnNLIVc7rzk,1423
92
+ bec_widgets/widgets/device_line_edit/register_device_line_edit.py,sha256=8gEPnC8djYCw-idoZAENNB3bPOxM6pbzEp9A366EAGg,489
93
+ bec_widgets/widgets/device_line_edit/assets/line_edit_icon.png,sha256=nxVykqQY4kgMJP7GELzv6N_dghqIzBJb2MWqxs4B-Ug,3391
94
94
  bec_widgets/widgets/dock/__init__.py,sha256=B7foHt02gnhM7mFksa7GJVwT7n0j_JvYDCt6wc6XR5g,61
95
95
  bec_widgets/widgets/dock/dock.py,sha256=joymi8NRoIuzuugUj9ccF9e1m57HwLQhhMmjaWiwTnM,7597
96
96
  bec_widgets/widgets/dock/dock_area.py,sha256=WKIt61v7w2YXahfIL4nddWHPfpTpw52uphX4QCbS3q0,7913
@@ -105,35 +105,44 @@ bec_widgets/widgets/figure/plots/image/image.py,sha256=8J-20r12FD9_Wtv-YSzJsWdq3
105
105
  bec_widgets/widgets/figure/plots/image/image_item.py,sha256=TyarahdWEn0jgalj5fqSAmcznXSbENkqHrrlL2GVdU4,10558
106
106
  bec_widgets/widgets/figure/plots/image/image_processor.py,sha256=GeTtWjbldy6VejMwPGQgM-o3d6bmLglCjdoktu19xfA,5262
107
107
  bec_widgets/widgets/figure/plots/motor_map/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
108
- bec_widgets/widgets/figure/plots/motor_map/motor_map.py,sha256=QYeXKcb87DPti19MaAFFr6LGma4F7GijaxnC1vx8Kng,18013
108
+ bec_widgets/widgets/figure/plots/motor_map/motor_map.py,sha256=FH3ZSYThGco98jS29r9EGcIh5fYx8e5eOs_nYJNrr48,18210
109
109
  bec_widgets/widgets/figure/plots/waveform/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
110
- bec_widgets/widgets/figure/plots/waveform/waveform.py,sha256=GW8dInC7Wd4sNp6vCGYOHdhvqFrLrKJr3GmtLc-yW8c,29033
110
+ bec_widgets/widgets/figure/plots/waveform/waveform.py,sha256=e401GGvUF11rZKf4onB4zYlcUWIv8Zsnm4GcysaXi6U,29226
111
111
  bec_widgets/widgets/figure/plots/waveform/waveform_curve.py,sha256=yQZGPKs--3X_9Qg2pv0GUiL5WLBQVC3z_PJKRnsHqPU,8293
112
112
  bec_widgets/widgets/jupyter_console/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
113
113
  bec_widgets/widgets/jupyter_console/jupyter_console.py,sha256=ioLYJL31RdBoAOGFSS8PVSnUhkWPWmLC3tiKp7CouO8,2251
114
114
  bec_widgets/widgets/motor_map/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
115
115
  bec_widgets/widgets/motor_map/bec_motor_map_widget.pyproject,sha256=NAI8s5gRKz80ED4KY7OgD2OgSH5HEsjt2ux2BYp66yg,63
116
116
  bec_widgets/widgets/motor_map/bec_motor_map_widget_plugin.py,sha256=PIfDE78Zqvsu7-xwoh9DdYkH8a7eOUFSaEl0bNrHYHc,1292
117
- bec_widgets/widgets/motor_map/motor_map_widget.py,sha256=16gcr_soWytWyUC8yl077KeKC691pLt3a-ZJSdj7dRM,7492
117
+ bec_widgets/widgets/motor_map/motor_map_widget.py,sha256=92v90z6IrxORzxYrPIt1dFXZL8cJg9viFcGzNHGOeBw,7243
118
118
  bec_widgets/widgets/motor_map/register_bec_motor_map_widget.py,sha256=qRG8PtWGjso0pWbvj_DXKnbUfmQzfGqPSrnAozXfM7o,492
119
119
  bec_widgets/widgets/motor_map/assets/connection.svg,sha256=czIb1BnshmxJnER8ssU3WcLENrFSIUfMwberajWOGAk,341
120
120
  bec_widgets/widgets/motor_map/assets/history.svg,sha256=bd6p5saxRiNRpd5OsSwIOvRWvel0WFEHul9zw4y9vH0,392
121
121
  bec_widgets/widgets/motor_map/assets/motor_map.png,sha256=xd6GFBM8gAb5c-xRgswxTZFtvo449yK57-EbkFvidOI,9746
122
122
  bec_widgets/widgets/motor_map/assets/settings.svg,sha256=ro30oa9CF1YijOXoUl-hz2DilJcqTy4rlTrMYhggumQ,1473
123
123
  bec_widgets/widgets/motor_map/motor_map_dialog/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
124
- bec_widgets/widgets/motor_map/motor_map_dialog/motor_map_settings.py,sha256=ADXqL535WK9gz8Cfgnru6mHU_22pma5XKjMVh8U22L4,2931
124
+ bec_widgets/widgets/motor_map/motor_map_dialog/motor_map_settings.py,sha256=terJ5NHRzAsiUwdqg-hTbkQ5gadnRT0Ol0_Fm66kPF4,2011
125
125
  bec_widgets/widgets/motor_map/motor_map_dialog/motor_map_settings.ui,sha256=nv5vPftt6vcIl60OOZLRvwD29rdHVWOoGmz168BnwKw,2685
126
- bec_widgets/widgets/motor_map/motor_map_dialog/motor_map_toolbar.py,sha256=SKS45caPdLSwiikk9karcPzkMcC33ToQ0MZAVLRiSzw,2183
126
+ bec_widgets/widgets/motor_map/motor_map_dialog/motor_map_toolbar.py,sha256=R6pmxhB_1ouc6f6cNQQvbxTHb3Ko3K_gTGs5WIYgnRI,2194
127
127
  bec_widgets/widgets/ring_progress_bar/__init__.py,sha256=_uoJKnDM2YAeUBfwc5WLbIHSJj7zm_FAurSKP3WRaCw,47
128
128
  bec_widgets/widgets/ring_progress_bar/ring.py,sha256=19zFj-6ZrIPLXYqvs5EPcrmDWnfnSLlEOmzJffL4d3A,11241
129
129
  bec_widgets/widgets/ring_progress_bar/ring_progress_bar.py,sha256=sU4Dur2XzBVfDYAYazI6pjOZOhzggoQIuc9VD3PWgac,24073
130
130
  bec_widgets/widgets/scan_control/__init__.py,sha256=IOfHl15vxb_uC6KN62-PeUzbBha_vQyqkkXbJ2HU674,38
131
- bec_widgets/widgets/scan_control/scan_control.py,sha256=lrnT3Oz7XH-zy65qSgVPoCRTAyJmryMZoBhvcY-ZP2M,7697
132
- bec_widgets/widgets/scan_control/scan_group_box.py,sha256=8XGpYcdKTEtiqOFbBxZ6xV07ZJ_tg9R-JDfsdTdqXSI,7400
131
+ bec_widgets/widgets/scan_control/scan_control.py,sha256=EHibpeK8vpG6rlg8zhvDDz8GDUzDmvhYH0aX7-Xo4m8,7689
132
+ bec_widgets/widgets/scan_control/scan_group_box.py,sha256=wrrJLfI0apfll0NKpqM8ymlbl5NaqA9cKNgyfVdYR00,7420
133
+ bec_widgets/widgets/stop_button/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
134
+ bec_widgets/widgets/stop_button/register_stop_button.py,sha256=U7r3fEOH-uPhAQI-nTituHXDDXDWR4JQZ7_vD6b_dfM,471
135
+ bec_widgets/widgets/stop_button/stop_button.py,sha256=icJQT1k5G_nvdHWZZkGEZVQupt-mWd2viK8zYg5B5dI,793
136
+ bec_widgets/widgets/stop_button/stop_button.pyproject,sha256=Cc_xbv-zfzNVpsdg_1QyzuTlrJaM9_BkIjes70umrx0,29
137
+ bec_widgets/widgets/stop_button/stop_button_plugin.py,sha256=-90MqPp1cFumsrHGaFgc_nahdCoew98M5bS1oqSRhDk,1346
138
+ bec_widgets/widgets/stop_button/assets/stop.png,sha256=9nGdvR-qwOz1YP4xYoBjmDnnj9ns2cLLhfvTz9amyKc,8424
133
139
  bec_widgets/widgets/text_box/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
134
140
  bec_widgets/widgets/text_box/text_box.py,sha256=dg2gpOqdBZNKD08mygb40twweFBiG-xsXz0GlIhfXV0,4240
135
- bec_widgets/widgets/toolbar/__init__.py,sha256=d-TP4_cr_VbpwreMM4ePnfZ5YXsEPQ45ibEf75nuGoE,36
136
- bec_widgets/widgets/toolbar/toolbar.py,sha256=rloOsr3TVGHLI4OJNKYWEBb1Z9_yJ0ZYIyf9RlPlxwY,3194
141
+ bec_widgets/widgets/toggle/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
142
+ bec_widgets/widgets/toggle/register_toggle_switch.py,sha256=8pVtkeEeiDOjV4OPoZq1I30F9JDzl4nQE7e7xoWyWBs,472
143
+ bec_widgets/widgets/toggle/toggle.py,sha256=JzCGYoyHBrlBWCoyL94QX4zSLyEwWbCNHMegjlnSy2E,4442
144
+ bec_widgets/widgets/toggle/toggle_switch.pyproject,sha256=Msa-AS5H5XlqW65r8GlX2AxD8FnFnDyDgGnbKcXqKOw,24
145
+ bec_widgets/widgets/toggle/toggle_switch_plugin.py,sha256=8e8JjUx6T5CIx7ixWLwVdT9JOJTbQ8aWwd3_9VAc_Mw,1177
137
146
  bec_widgets/widgets/vscode/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
138
147
  bec_widgets/widgets/vscode/vscode.py,sha256=ZyJJCJapYrGhqgudEt8JQn723DDqLdwjsXxXa5q3EkU,2544
139
148
  bec_widgets/widgets/website/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -194,7 +203,7 @@ tests/end-2-end/test_bec_figure_rpc_e2e.py,sha256=mjg29huqTivLnukG_XyoMtjOy2P_7J
194
203
  tests/end-2-end/test_rpc_register_e2e.py,sha256=blhMiW7HVHX1kGm5dg8Sv0PeCuJ0gnBz3evznQFz_B8,1619
195
204
  tests/end-2-end/test_scan_control_e2e.py,sha256=u7oLgFyltkMW2apSZKDukMIXvYrbhHrU32p4mBdn8VE,2276
196
205
  tests/unit_tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
197
- tests/unit_tests/client_mocks.py,sha256=FEb875yuDu-LGvWsyzqCSruqVV63d4TTjovvJpKcvwA,4255
206
+ tests/unit_tests/client_mocks.py,sha256=BTBpA75CqeJhqYCI5M5XSX2-e4wMoHxi2rnc1PnmsuE,4549
198
207
  tests/unit_tests/conftest.py,sha256=KrnktXPWmZhnKNue-xGWOLD1XGEvdz9Vf7V2eO3XQ3A,596
199
208
  tests/unit_tests/test_bec_connector.py,sha256=zGDfNHwLFZTbpyX6-yc7Pwzr2jWO_HGZ8T4NFCNo4IE,2444
200
209
  tests/unit_tests/test_bec_dispatcher.py,sha256=rYPiRizHaswhGZw55IBMneDFxmPiCCLAZQBqjEkpdyY,3992
@@ -207,10 +216,11 @@ tests/unit_tests/test_bec_status_box.py,sha256=gZdjyy9DNuUP9UwleTLj2Dp5HUImiqnkH
207
216
  tests/unit_tests/test_client_utils.py,sha256=eViJ1Tz-HX9TkMvQH6W8cO-c3_1I8bUc4_Yen6LOc0E,830
208
217
  tests/unit_tests/test_color_validation.py,sha256=xbFbtFDia36XLgaNrX2IwvAX3IDC_Odpj5BGoJSgiIE,2389
209
218
  tests/unit_tests/test_crosshair.py,sha256=3OMAJ2ZaISYXMOtkXf1rPdy94vCr8njeLi6uHblBL9Q,5045
210
- tests/unit_tests/test_device_input_base.py,sha256=Bf2lk_utvLsDqDX5NWgyArSAo-dWMQ72yiCPGoWVwxM,2431
211
- tests/unit_tests/test_device_input_widgets.py,sha256=PmUL8aJXg_BYwWDE3Gh1kGm8q6fQZD5sWlVXz3KLwI0,5837
219
+ tests/unit_tests/test_device_input_base.py,sha256=r1tI7BFAhpv7V7gf_n5gjusyrBFOfuCqIkdVg7YA7vY,2444
220
+ tests/unit_tests/test_device_input_widgets.py,sha256=Q40xNKGvJT2dvNttRH68WZi0au8PwpUgBi2EB4LXfC8,5841
212
221
  tests/unit_tests/test_generate_cli_client.py,sha256=ng-eV5iF7Dhm-6YpxYo99CMY0KgqoaZBQNkMeKULDBU,3355
213
222
  tests/unit_tests/test_generate_plugin.py,sha256=9603ucZChM-pYpHadzsR94U1Zec1KZT34WedX9qzgMo,4464
223
+ tests/unit_tests/test_motor_map_widget.py,sha256=3nbINg3NYvWUrrGGMRPs8SDtePjXhoehSY_CShFGvEI,7507
214
224
  tests/unit_tests/test_plot_base.py,sha256=vWbt-QO5blSoE5C1392MIFha9A9JnUsx_D_9yTqhcRo,3845
215
225
  tests/unit_tests/test_plugin_utils.py,sha256=ayksWdrFY7kOiA0wVEjKFmFCF3UhH3lG8tzPVOpwysk,528
216
226
  tests/unit_tests/test_ring_progress_bar.py,sha256=hDlqkQho7FR7HAfM4Zrr4q1m773a3_rQ8CbM1GqDDSE,12252
@@ -218,8 +228,10 @@ tests/unit_tests/test_rpc_register.py,sha256=hECjZEimd440mwRrO0rg7L3PKN7__3DgjmE
218
228
  tests/unit_tests/test_rpc_widget_handler.py,sha256=ceQ3BPnBIFY2Hy-sDPw0wxxREVTTphILts0gvX9qoUw,234
219
229
  tests/unit_tests/test_scan_control.py,sha256=Wr6KcE8av4sEIOx5VgYbzVCem3Jgb4Kzx_oOuvwlmkE,13459
220
230
  tests/unit_tests/test_scan_control_group_box.py,sha256=HNqjP10B_NonikspNwKz9upJU-t7xf6hwBerNhbC-uo,5563
221
- tests/unit_tests/test_stop_button.py,sha256=2OH9dhs_-S5QovPPgU-5hJoViE1YKZa0gxisb4vOY28,712
231
+ tests/unit_tests/test_setting_dialog.py,sha256=QbHWwLa1VGFwYie-SN3rjS3ICo7A44S4AKN2qeNvIKY,3137
232
+ tests/unit_tests/test_stop_button.py,sha256=tpQanzBUyl7qLXjbMUQqm3U3vShbKKARcnLpgsu3P0E,789
222
233
  tests/unit_tests/test_text_box_widget.py,sha256=cT0uEHt_6d-FwST0A_wE9sFW9E3F_nJbKhuBAeU4yHg,1862
234
+ tests/unit_tests/test_toggle.py,sha256=Amzgres7te0tTQIDR2WMKSx9Kce44TxMpIPR6HZygXQ,832
223
235
  tests/unit_tests/test_vscode_widget.py,sha256=NVB23ppLqIj-Opd8QnapqUJzDMz6mIZfm3wGPnFXyUE,2788
224
236
  tests/unit_tests/test_waveform1d.py,sha256=inc-CyRA_3-PE99WnR6vDdfRE1vgp-ZoLVJ-Qbq0qFY,15967
225
237
  tests/unit_tests/test_website_widget.py,sha256=fBADIJJBAHU4Ro7u95kdemFVNv196UOcuO9oLHuHt8A,761
@@ -230,8 +242,8 @@ tests/unit_tests/test_configs/config_device_no_entry.yaml,sha256=hdvue9KLc_kfNzG
230
242
  tests/unit_tests/test_configs/config_scan.yaml,sha256=vo484BbWOjA_e-h6bTjSV9k7QaQHrlAvx-z8wtY-P4E,1915
231
243
  tests/unit_tests/test_msgs/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
232
244
  tests/unit_tests/test_msgs/available_scans_message.py,sha256=m_z97hIrjHXXMa2Ex-UvsPmTxOYXfjxyJaGkIY6StTY,46532
233
- bec_widgets-0.81.1.dist-info/METADATA,sha256=iC_enZjkeS3eb0_OWFePjHBFeUAK_XzT9m58EUz5_8U,1309
234
- bec_widgets-0.81.1.dist-info/WHEEL,sha256=1yFddiXMmvYK7QYTqtRNtX66WJ0Mz8PYEiEUoOUUxRY,87
235
- bec_widgets-0.81.1.dist-info/entry_points.txt,sha256=3otEkCdDB9LZJuBLzG4pFLK5Di0CVybN_12IsZrQ-58,166
236
- bec_widgets-0.81.1.dist-info/licenses/LICENSE,sha256=YRKe85CBRyP7UpEAWwU8_qSIyuy5-l_9C-HKg5Qm8MQ,1511
237
- bec_widgets-0.81.1.dist-info/RECORD,,
245
+ bec_widgets-0.82.1.dist-info/METADATA,sha256=HDswJisHfyksMUD6G3xvmym8cQlpX85Mf6i16-m6jKM,1309
246
+ bec_widgets-0.82.1.dist-info/WHEEL,sha256=1yFddiXMmvYK7QYTqtRNtX66WJ0Mz8PYEiEUoOUUxRY,87
247
+ bec_widgets-0.82.1.dist-info/entry_points.txt,sha256=3otEkCdDB9LZJuBLzG4pFLK5Di0CVybN_12IsZrQ-58,166
248
+ bec_widgets-0.82.1.dist-info/licenses/LICENSE,sha256=YRKe85CBRyP7UpEAWwU8_qSIyuy5-l_9C-HKg5Qm8MQ,1511
249
+ bec_widgets-0.82.1.dist-info/RECORD,,
pyproject.toml CHANGED
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
4
4
 
5
5
  [project]
6
6
  name = "bec_widgets"
7
- version = "0.81.1"
7
+ version = "0.82.1"
8
8
  description = "BEC Widgets"
9
9
  requires-python = ">=3.10"
10
10
  classifiers = [
@@ -72,6 +72,13 @@ class FakePositioner(FakeDevice):
72
72
  return MagicMock(get=MagicMock(return_value=self.read_value))
73
73
 
74
74
 
75
+ class Positioner(FakePositioner):
76
+ """just placeholder for testing embeded isinstance check in DeviceCombobox"""
77
+
78
+ def __init__(self, name="test", limits=None, read_value=1.0):
79
+ super().__init__(name, limits, read_value)
80
+
81
+
75
82
  class DMMock:
76
83
  def __init__(self):
77
84
  self.devices = DeviceContainer()
@@ -95,6 +102,7 @@ DEVICES = [
95
102
  FakeDevice("bpm3a"),
96
103
  FakeDevice("bpm3i"),
97
104
  FakeDevice("eiger"),
105
+ Positioner("test", limits=[-10, 10], read_value=2.0),
98
106
  ]
99
107
 
100
108
 
@@ -1,6 +1,6 @@
1
1
  import pytest
2
2
 
3
- from bec_widgets.widgets.device_inputs.device_input_base import DeviceInputBase
3
+ from bec_widgets.widgets.base_classes.device_input_base import DeviceInputBase
4
4
 
5
5
  from .client_mocks import mocked_client
6
6
 
@@ -63,4 +63,4 @@ def test_device_input_base_get_device_list(device_input_base):
63
63
 
64
64
  def test_device_input_base_get_filters(device_input_base):
65
65
  filters = device_input_base.get_available_filters()
66
- assert filters == {"FakePositioner", "FakeDevice"}
66
+ assert filters == {"FakePositioner", "FakeDevice", "Positioner"}
@@ -1,7 +1,7 @@
1
1
  import pytest
2
2
 
3
- from bec_widgets.widgets.device_inputs.device_combobox.device_combobox import DeviceComboBox
4
- from bec_widgets.widgets.device_inputs.device_line_edit.device_line_edit import DeviceLineEdit
3
+ from bec_widgets.widgets.device_combobox.device_combobox import DeviceComboBox
4
+ from bec_widgets.widgets.device_line_edit.device_line_edit import DeviceLineEdit
5
5
 
6
6
  from .client_mocks import mocked_client
7
7
 
@@ -67,6 +67,7 @@ def test_device_input_combobox_init(device_input_combobox):
67
67
  "bpm3a",
68
68
  "bpm3i",
69
69
  "eiger",
70
+ "test",
70
71
  ]
71
72
 
72
73
 
@@ -153,6 +154,7 @@ def test_device_input_line_edit_init(device_input_line_edit):
153
154
  "bpm3a",
154
155
  "bpm3i",
155
156
  "eiger",
157
+ "test",
156
158
  ]
157
159
 
158
160