bec-widgets 0.112.0__py3-none-any.whl → 0.113.0__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 (33) hide show
  1. CHANGELOG.md +46 -48
  2. PKG-INFO +1 -1
  3. bec_widgets/applications/__init__.py +0 -0
  4. bec_widgets/applications/alignment/__init__.py +0 -0
  5. bec_widgets/applications/alignment/alignment_1d/__init__.py +0 -0
  6. bec_widgets/applications/alignment/alignment_1d/alignment_1d.py +265 -0
  7. bec_widgets/applications/alignment/alignment_1d/alignment_1d.ui +869 -0
  8. bec_widgets/assets/app_icons/alignment_1d.png +0 -0
  9. bec_widgets/qt_utils/toolbar.py +3 -1
  10. bec_widgets/utils/bec_signal_proxy.py +54 -0
  11. bec_widgets/utils/linear_region_selector.py +15 -3
  12. bec_widgets/utils/plot_indicator_items.py +247 -0
  13. bec_widgets/widgets/bec_status_box/bec_status_box.py +5 -9
  14. bec_widgets/widgets/bec_status_box/status_item.py +18 -9
  15. bec_widgets/widgets/dap_combo_box/dap_combo_box.py +12 -13
  16. bec_widgets/widgets/figure/plots/plot_base.py +5 -0
  17. bec_widgets/widgets/figure/plots/waveform/waveform.py +17 -15
  18. bec_widgets/widgets/lmfit_dialog/lmfit_dialog.py +151 -16
  19. bec_widgets/widgets/lmfit_dialog/lmfit_dialog_vertical.ui +47 -14
  20. bec_widgets/widgets/positioner_box/positioner_box.py +4 -1
  21. bec_widgets/widgets/scan_control/scan_control.py +38 -0
  22. bec_widgets/widgets/stop_button/stop_button.py +14 -2
  23. {bec_widgets-0.112.0.dist-info → bec_widgets-0.113.0.dist-info}/METADATA +1 -1
  24. {bec_widgets-0.112.0.dist-info → bec_widgets-0.113.0.dist-info}/RECORD +28 -25
  25. pyproject.toml +1 -1
  26. bec_widgets/assets/status_icons/error.svg +0 -3
  27. bec_widgets/assets/status_icons/not_connected.svg +0 -3
  28. bec_widgets/assets/status_icons/refresh.svg +0 -3
  29. bec_widgets/assets/status_icons/running.svg +0 -3
  30. bec_widgets/assets/status_icons/warning.svg +0 -3
  31. {bec_widgets-0.112.0.dist-info → bec_widgets-0.113.0.dist-info}/WHEEL +0 -0
  32. {bec_widgets-0.112.0.dist-info → bec_widgets-0.113.0.dist-info}/entry_points.txt +0 -0
  33. {bec_widgets-0.112.0.dist-info → bec_widgets-0.113.0.dist-info}/licenses/LICENSE +0 -0
@@ -1,12 +1,12 @@
1
1
  import os
2
2
 
3
- from bec_lib.endpoints import MessageEndpoints
4
3
  from bec_lib.logger import bec_logger
5
4
  from qtpy.QtCore import Property, Signal, Slot
6
- from qtpy.QtWidgets import QTreeWidgetItem, QVBoxLayout, QWidget
5
+ from qtpy.QtWidgets import QPushButton, QTreeWidgetItem, QVBoxLayout, QWidget
7
6
 
8
7
  from bec_widgets.utils import UILoader
9
8
  from bec_widgets.utils.bec_widget import BECWidget
9
+ from bec_widgets.utils.colors import get_accent_colors
10
10
 
11
11
  logger = bec_logger.logger
12
12
 
@@ -15,7 +15,10 @@ class LMFitDialog(BECWidget, QWidget):
15
15
  """Dialog for displaying the fit summary and params for LMFit DAP processes"""
16
16
 
17
17
  ICON_NAME = "monitoring"
18
+ # Signal to emit the currently selected fit curve_id
18
19
  selected_fit = Signal(str)
20
+ # Signal to emit a move action in form of a tuple (param_name, value)
21
+ move_action = Signal(tuple)
19
22
 
20
23
  def __init__(
21
24
  self,
@@ -49,9 +52,54 @@ class LMFitDialog(BECWidget, QWidget):
49
52
  self.summary_data = {}
50
53
  self._fit_curve_id = None
51
54
  self._deci_precision = 3
55
+ self._always_show_latest = False
52
56
  self.ui.curve_list.currentItemChanged.connect(self.display_fit_details)
53
57
  self.layout.setContentsMargins(0, 0, 0, 0)
54
58
  self.setLayout(self.layout)
59
+ self._active_actions = []
60
+ self._enable_actions = True
61
+ self._move_buttons = []
62
+ self._accent_colors = get_accent_colors()
63
+ self.action_buttons = {}
64
+
65
+ @property
66
+ def enable_actions(self) -> bool:
67
+ """Property to enable the move to buttons."""
68
+ return self._enable_actions
69
+
70
+ @enable_actions.setter
71
+ def enable_actions(self, enable: bool):
72
+ self._enable_actions = enable
73
+ for button in self.action_buttons.values():
74
+ button.setEnabled(enable)
75
+
76
+ @Property(list)
77
+ def active_action_list(self) -> list[str]:
78
+ """Property to list the names of the fit parameters for which actions should be enabled."""
79
+ return self._active_actions
80
+
81
+ @active_action_list.setter
82
+ def active_action_list(self, actions: list[str]):
83
+ self._active_actions = actions
84
+
85
+ # This slot needed?
86
+ @Slot(bool)
87
+ def set_actions_enabled(self, enable: bool) -> bool:
88
+ """Slot to enable the move to buttons.
89
+
90
+ Args:
91
+ enable (bool): Whether to enable the action buttons.
92
+ """
93
+ self.enable_actions = enable
94
+
95
+ @Property(bool)
96
+ def always_show_latest(self):
97
+ """Property to indicate if always the latest DAP update is displayed."""
98
+ return self._always_show_latest
99
+
100
+ @always_show_latest.setter
101
+ def always_show_latest(self, show: bool):
102
+ self._always_show_latest = show
55
103
 
56
104
  @Property(bool)
57
105
  def hide_curve_selection(self):
@@ -67,8 +115,36 @@ class LMFitDialog(BECWidget, QWidget):
67
115
  """
68
116
  self.ui.group_curve_selection.setVisible(not show)
69
117
 
118
+ @Property(bool)
119
+ def hide_summary(self) -> bool:
120
+ """Property for showing the summary."""
121
+ return not self.ui.group_summary.isVisible()
122
+
123
+ @hide_summary.setter
124
+ def hide_summary(self, show: bool):
125
+ """Setter for showing the summary.
126
+
127
+ Args:
128
+ show (bool): Whether to show the summary.
129
+ """
130
+ self.ui.group_summary.setVisible(not show)
131
+
132
+ @Property(bool)
133
+ def hide_parameters(self) -> bool:
134
+ """Property for showing the parameters."""
135
+ return not self.ui.group_parameters.isVisible()
136
+
137
+ @hide_parameters.setter
138
+ def hide_parameters(self, show: bool):
139
+ """Setter for showing the parameters.
140
+
141
+ Args:
142
+ show (bool): Whether to show the parameters.
143
+ """
144
+ self.ui.group_parameters.setVisible(not show)
145
+
70
146
  @property
71
- def fit_curve_id(self):
147
+ def fit_curve_id(self) -> str:
72
148
  """Property for the currently displayed fit curve_id."""
73
149
  return self._fit_curve_id
74
150
 
@@ -112,19 +188,34 @@ class LMFitDialog(BECWidget, QWidget):
112
188
  curve_id = metadata.get("curve_id", "")
113
189
  self.summary_data.update({curve_id: data})
114
190
  self.refresh_curve_list()
115
- if self.fit_curve_id is None:
191
+ if self.fit_curve_id is None or self.always_show_latest is True:
116
192
  self.fit_curve_id = curve_id
117
193
  if curve_id != self.fit_curve_id:
118
194
  return
119
195
  if data is None:
120
196
  return
121
197
  self.ui.summary_tree.clear()
198
+ chi_squared = data.get("chisqr", 0.0)
199
+ if isinstance(chi_squared, float) or isinstance(chi_squared, int):
200
+ chi_squared = f"{chi_squared:.{self._deci_precision}f}"
201
+ else:
202
+ chi_squared = "None"
203
+ reduced_chi_squared = data.get("redchi", 0.0)
204
+ if isinstance(reduced_chi_squared, float) or isinstance(reduced_chi_squared, int):
205
+ reduced_chi_squared = f"{reduced_chi_squared:.{self._deci_precision}f}"
206
+ else:
207
+ reduced_chi_squared = "None"
208
+ r_squared = data.get("rsquared", 0.0)
209
+ if isinstance(r_squared, float) or isinstance(r_squared, int):
210
+ r_squared = f"{r_squared:.{self._deci_precision}f}"
211
+ else:
212
+ r_squared = "None"
122
213
  properties = [
123
214
  ("Model", data.get("model", "")),
124
215
  ("Method", data.get("method", "")),
125
- ("Chi-Squared", f"{data.get('chisqr', 0.0):.{self._deci_precision}f}"),
126
- ("Reduced Chi-Squared", f"{data.get('redchi', 0.0):.{self._deci_precision}f}"),
127
- ("R-Squared", f"{data.get('rsquared', 0.0):.{self._deci_precision}f}"),
216
+ ("Chi-Squared", chi_squared),
217
+ ("Reduced Chi-Squared", reduced_chi_squared),
218
+ ("R-Squared", r_squared),
128
219
  ("Message", data.get("message", "")),
129
220
  ]
130
221
  for prop, val in properties:
@@ -149,18 +240,62 @@ class LMFitDialog(BECWidget, QWidget):
149
240
  Args:
150
241
  params (list): List of LMFit parameters for the fit curve.
151
242
  """
243
+ self._move_buttons = []
152
244
  self.ui.param_tree.clear()
153
245
  for param in params:
154
- param_name, param_value, param_std = (
155
- param[0],
156
- f"{param[1]:.{self._deci_precision}f}",
157
- f"{param[7]:.{self._deci_precision}f}",
158
- )
159
- QTreeWidgetItem(self.ui.param_tree, [param_name, param_value, param_std])
246
+ param_name = param[0]
247
+ param_value = param[1]
248
+ if isinstance(param_value, float) or isinstance(param_value, int):
249
+ param_value = f"{param_value:.{self._deci_precision}f}"
250
+ else:
251
+ param_value = "None"
252
+ param_std = param[7]
253
+ if isinstance(param_std, float) or isinstance(param_std, int):
254
+ param_std = f"{param_std:.{self._deci_precision}f}"
255
+ else:
256
+ param_std = "None"
257
+
258
+ tree_item = QTreeWidgetItem(self.ui.param_tree, [param_name, param_value, param_std])
259
+ if param_name in self.active_action_list: # pylint: disable=unsupported-membership-test
260
+ # Create a push button to move the motor to a specific position
261
+ widget = QWidget()
262
+ button = QPushButton(f"Move to {param_name}")
263
+ button.clicked.connect(self._create_move_action(param_name, param[1]))
264
+ if self.enable_actions is True:
265
+ button.setEnabled(True)
266
+ else:
267
+ button.setEnabled(False)
268
+ button.setStyleSheet(
269
+ f"""
270
+ QPushButton:enabled {{ background-color: {self._accent_colors.success.name()};color: white; }}
271
+ QPushButton:disabled {{ background-color: grey;color: white; }}
272
+ """
273
+ )
274
+ self.action_buttons[param_name] = button
275
+ layout = QVBoxLayout()
276
+ layout.addWidget(self.action_buttons[param_name])
277
+ layout.setContentsMargins(0, 0, 0, 0)
278
+ widget.setLayout(layout)
279
+ self.ui.param_tree.setItemWidget(tree_item, 3, widget)
280
+
281
+ def _create_move_action(self, param_name: str, param_value: float) -> callable:
282
+ """Create a move action for the given parameter name and value.
283
+
284
+ Args:
285
+ param_name (str): The name of the parameter.
286
+ param_value (float): The value of the parameter.
287
+ Returns:
288
+ callable: The move action with the given parameter name and value.
289
+ """
290
+
291
+ def move_action():
292
+ self.move_action.emit((param_name, param_value))
293
+
294
+ return move_action
160
295
 
161
296
  def populate_curve_list(self):
162
297
  """Populate the curve list with the available fit curves."""
163
- for curve_name in self.summary_data.keys():
298
+ for curve_name in self.summary_data:
164
299
  self.ui.curve_list.addItem(curve_name)
165
300
 
166
301
  def refresh_curve_list(self):
@@ -183,10 +318,10 @@ class LMFitDialog(BECWidget, QWidget):
183
318
  self.update_summary_tree(data, {"curve_id": curve_name})
184
319
 
185
320
 
186
- if __name__ == "__main__":
321
+ if __name__ == "__main__": # pragma: no cover
187
322
  import sys
188
323
 
189
- from qtpy.QtWidgets import QApplication
324
+ from qtpy.QtWidgets import QApplication # pylint: disable=ungrouped-imports
190
325
 
191
326
  app = QApplication(sys.argv)
192
327
  dialog = LMFitDialog()
@@ -6,12 +6,12 @@
6
6
  <rect>
7
7
  <x>0</x>
8
8
  <y>0</y>
9
- <width>274</width>
10
- <height>568</height>
9
+ <width>303</width>
10
+ <height>457</height>
11
11
  </rect>
12
12
  </property>
13
13
  <property name="sizePolicy">
14
- <sizepolicy hsizetype="Expanding" vsizetype="Expanding">
14
+ <sizepolicy hsizetype="Preferred" vsizetype="Preferred">
15
15
  <horstretch>0</horstretch>
16
16
  <verstretch>0</verstretch>
17
17
  </sizepolicy>
@@ -19,15 +19,40 @@
19
19
  <property name="windowTitle">
20
20
  <string>Form</string>
21
21
  </property>
22
- <layout class="QVBoxLayout" name="verticalLayout_4" stretch="0,0,0">
22
+ <layout class="QVBoxLayout" name="verticalLayout_4" stretch="1,2,2">
23
+ <property name="leftMargin">
24
+ <number>0</number>
25
+ </property>
26
+ <property name="topMargin">
27
+ <number>0</number>
28
+ </property>
29
+ <property name="rightMargin">
30
+ <number>0</number>
31
+ </property>
32
+ <property name="bottomMargin">
33
+ <number>0</number>
34
+ </property>
23
35
  <item>
24
36
  <widget class="QGroupBox" name="group_curve_selection">
37
+ <property name="sizePolicy">
38
+ <sizepolicy hsizetype="Minimum" vsizetype="Minimum">
39
+ <horstretch>0</horstretch>
40
+ <verstretch>0</verstretch>
41
+ </sizepolicy>
42
+ </property>
25
43
  <property name="title">
26
44
  <string>Select Curve</string>
27
45
  </property>
28
46
  <layout class="QVBoxLayout" name="verticalLayout" stretch="3">
29
47
  <item>
30
- <widget class="QListWidget" name="curve_list"/>
48
+ <widget class="QListWidget" name="curve_list">
49
+ <property name="sizePolicy">
50
+ <sizepolicy hsizetype="Ignored" vsizetype="Ignored">
51
+ <horstretch>0</horstretch>
52
+ <verstretch>0</verstretch>
53
+ </sizepolicy>
54
+ </property>
55
+ </widget>
31
56
  </item>
32
57
  </layout>
33
58
  </widget>
@@ -35,15 +60,15 @@
35
60
  <item>
36
61
  <widget class="QGroupBox" name="group_summary">
37
62
  <property name="sizePolicy">
38
- <sizepolicy hsizetype="MinimumExpanding" vsizetype="MinimumExpanding">
63
+ <sizepolicy hsizetype="Minimum" vsizetype="Minimum">
39
64
  <horstretch>0</horstretch>
40
65
  <verstretch>0</verstretch>
41
66
  </sizepolicy>
42
67
  </property>
43
68
  <property name="minimumSize">
44
69
  <size>
45
- <width>250</width>
46
- <height>200</height>
70
+ <width>0</width>
71
+ <height>0</height>
47
72
  </size>
48
73
  </property>
49
74
  <property name="title">
@@ -53,7 +78,7 @@
53
78
  <item>
54
79
  <widget class="QTreeWidget" name="summary_tree">
55
80
  <property name="sizePolicy">
56
- <sizepolicy hsizetype="Expanding" vsizetype="Expanding">
81
+ <sizepolicy hsizetype="Ignored" vsizetype="Ignored">
57
82
  <horstretch>0</horstretch>
58
83
  <verstretch>0</verstretch>
59
84
  </sizepolicy>
@@ -88,15 +113,15 @@
88
113
  <item>
89
114
  <widget class="QGroupBox" name="group_parameters">
90
115
  <property name="sizePolicy">
91
- <sizepolicy hsizetype="MinimumExpanding" vsizetype="MinimumExpanding">
116
+ <sizepolicy hsizetype="Minimum" vsizetype="Minimum">
92
117
  <horstretch>0</horstretch>
93
118
  <verstretch>0</verstretch>
94
119
  </sizepolicy>
95
120
  </property>
96
121
  <property name="minimumSize">
97
122
  <size>
98
- <width>250</width>
99
- <height>200</height>
123
+ <width>0</width>
124
+ <height>0</height>
100
125
  </size>
101
126
  </property>
102
127
  <property name="title">
@@ -106,7 +131,7 @@
106
131
  <item>
107
132
  <widget class="QTreeWidget" name="param_tree">
108
133
  <property name="sizePolicy">
109
- <sizepolicy hsizetype="Expanding" vsizetype="Expanding">
134
+ <sizepolicy hsizetype="Ignored" vsizetype="Ignored">
110
135
  <horstretch>0</horstretch>
111
136
  <verstretch>0</verstretch>
112
137
  </sizepolicy>
@@ -117,8 +142,11 @@
117
142
  <height>0</height>
118
143
  </size>
119
144
  </property>
145
+ <property name="columnCount">
146
+ <number>4</number>
147
+ </property>
120
148
  <attribute name="headerDefaultSectionSize">
121
- <number>80</number>
149
+ <number>70</number>
122
150
  </attribute>
123
151
  <column>
124
152
  <property name="text">
@@ -135,6 +163,11 @@
135
163
  <string>Std</string>
136
164
  </property>
137
165
  </column>
166
+ <column>
167
+ <property name="text">
168
+ <string>Action</string>
169
+ </property>
170
+ </column>
138
171
  </widget>
139
172
  </item>
140
173
  </layout>
@@ -33,6 +33,8 @@ class PositionerBox(BECWidget, QWidget):
33
33
  ICON_NAME = "switch_right"
34
34
  USER_ACCESS = ["set_positioner"]
35
35
  device_changed = Signal(str, str)
36
+ # Signal emitted to inform listeners about a position update
37
+ position_update = Signal(float)
36
38
 
37
39
  def __init__(self, parent=None, device: Positioner = None, **kwargs):
38
40
  """Initialize the PositionerBox widget.
@@ -245,6 +247,7 @@ class PositionerBox(BECWidget, QWidget):
245
247
 
246
248
  if readback_val is not None:
247
249
  self.ui.readback.setText(f"{readback_val:.{precision}f}")
250
+ self.position_update.emit(readback_val)
248
251
 
249
252
  if setpoint_val is not None:
250
253
  self.ui.setpoint.setText(f"{setpoint_val:.{precision}f}")
@@ -318,7 +321,7 @@ class PositionerBox(BECWidget, QWidget):
318
321
  if __name__ == "__main__": # pragma: no cover
319
322
  import sys
320
323
 
321
- from qtpy.QtWidgets import QApplication
324
+ from qtpy.QtWidgets import QApplication # pylint: disable=ungrouped-imports
322
325
 
323
326
  app = QApplication(sys.argv)
324
327
  set_theme("dark")
@@ -243,6 +243,44 @@ class ScanControl(BECWidget, QWidget):
243
243
  """
244
244
  self.current_scan = scan_name
245
245
 
246
+ @Property(bool)
247
+ def hide_arg_box(self):
248
+ """Property to hide the argument box."""
249
+ if self.arg_box is None:
250
+ return True
251
+ return not self.arg_box.isVisible()
252
+
253
+ @hide_arg_box.setter
254
+ def hide_arg_box(self, hide: bool):
255
+ """Setter for the hide_arg_box property.
256
+
257
+ Args:
258
+ hide(bool): Hide or show the argument box.
259
+ """
260
+ if self.arg_box is not None:
261
+ self.arg_box.setVisible(not hide)
262
+
263
+ @Property(bool)
264
+ def hide_kwarg_boxes(self):
265
+ """Property to hide the keyword argument boxes."""
266
+ if len(self.kwarg_boxes) == 0:
267
+ return True
268
+
269
+ for box in self.kwarg_boxes:
270
+ if box is not None:
271
+ return not box.isVisible()
272
+
273
+ @hide_kwarg_boxes.setter
274
+ def hide_kwarg_boxes(self, hide: bool):
275
+ """Setter for the hide_kwarg_boxes property.
276
+
277
+ Args:
278
+ hide(bool): Hide or show the keyword argument boxes.
279
+ """
280
+ if len(self.kwarg_boxes) > 0:
281
+ for box in self.kwarg_boxes:
282
+ box.setVisible(not hide)
283
+
246
284
  @Property(bool)
247
285
  def hide_scan_remember_toggle(self):
248
286
  """Property to hide the scan remember toggle."""
@@ -1,6 +1,6 @@
1
1
  from bec_qthemes import material_icon
2
2
  from qtpy.QtCore import Qt
3
- from qtpy.QtWidgets import QHBoxLayout, QPushButton, QToolButton, QWidget
3
+ from qtpy.QtWidgets import QHBoxLayout, QPushButton, QSizePolicy, QToolButton, QWidget
4
4
 
5
5
  from bec_widgets.qt_utils.error_popups import SafeSlot
6
6
  from bec_widgets.utils.bec_widget import BECWidget
@@ -28,9 +28,10 @@ class StopButton(BECWidget, QWidget):
28
28
  self.button.setToolTip("Stop the scan queue")
29
29
  else:
30
30
  self.button = QPushButton()
31
+ self.button.setSizePolicy(QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Expanding)
31
32
  self.button.setText("Stop")
32
33
  self.button.setStyleSheet(
33
- "background-color: #cc181e; color: white; font-weight: bold; font-size: 12px;"
34
+ f"background-color: #cc181e; color: white; font-weight: bold; font-size: 12px;"
34
35
  )
35
36
  self.button.clicked.connect(self.stop_scan)
36
37
 
@@ -47,3 +48,14 @@ class StopButton(BECWidget, QWidget):
47
48
  scan_id(str|None): The scan id to stop. If None, the current scan will be stopped.
48
49
  """
49
50
  self.queue.request_scan_halt()
51
+
52
+
53
+ if __name__ == "__main__": # pragma: no cover
54
+ import sys
55
+
56
+ from qtpy.QtWidgets import QApplication
57
+
58
+ app = QApplication(sys.argv)
59
+ w = StopButton()
60
+ w.show()
61
+ sys.exit(app.exec_())
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: bec_widgets
3
- Version: 0.112.0
3
+ Version: 0.113.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
@@ -2,24 +2,25 @@
2
2
  .gitlab-ci.yml,sha256=Dc1iDjsc72UxdUtihx4uSZU0lrTQeR8hZwGx1MQBfKE,8432
3
3
  .pylintrc,sha256=eeY8YwSI74oFfq6IYIbCqnx3Vk8ZncKaatv96n_Y8Rs,18544
4
4
  .readthedocs.yaml,sha256=aSOc277LqXcsTI6lgvm_JY80lMlr69GbPKgivua2cS0,603
5
- CHANGELOG.md,sha256=eBCIo9UocDEQFnCYzk2QiUopr_UUYPYld3sIFdFkiZY,7150
5
+ CHANGELOG.md,sha256=MsTSF60CZ8CIFVa6uxezN4uFqtKKwx3EtNpXThid_0g,6989
6
6
  LICENSE,sha256=YRKe85CBRyP7UpEAWwU8_qSIyuy5-l_9C-HKg5Qm8MQ,1511
7
- PKG-INFO,sha256=ybdBdJUN55C1pniCas8sTK3pfBdB_onvbV2DqZaYs2E,1334
7
+ PKG-INFO,sha256=C4C8XhGH6pOZ-_r4CnJWLdDM-x8W0u4MwToUKkVTD0I,1334
8
8
  README.md,sha256=Od69x-RS85Hph0-WwWACwal4yUd67XkEn4APEfHhHFw,2649
9
- pyproject.toml,sha256=wYZG1Ce2ViBWk97i9KVIy0E0b_nyfOx5yUc5cu3q35Q,2544
9
+ pyproject.toml,sha256=i4en2BSq0FQlp72LBk4g93_t1N4lyRd3UCXW_oeFCuQ,2544
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
13
13
  .gitlab/issue_templates/feature_request_template.md,sha256=vjxCnmj53Mp4FPzCrNxhkO-8StRQUZ36PlXu4K8VGaI,1543
14
14
  .gitlab/merge_request_templates/default.md,sha256=tfyFA0hRCsIunbLGSlGbxWBQFeB3USpsA3H7IvwQ5UY,715
15
15
  bec_widgets/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
16
+ bec_widgets/applications/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
17
+ bec_widgets/applications/alignment/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
18
+ bec_widgets/applications/alignment/alignment_1d/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
19
+ bec_widgets/applications/alignment/alignment_1d/alignment_1d.py,sha256=V3blVi6iZbZBfzd7hzAk1ZGdSwiV2C6ZvZr9OUBAfNg,11293
20
+ bec_widgets/applications/alignment/alignment_1d/alignment_1d.ui,sha256=-ZrQelty_vHKPICgtOmoxRsLp13StOOwegTuJp0Xshw,27154
16
21
  bec_widgets/assets/app_icons/BEC-General-App.png,sha256=hc2ktly53DZAbl_rE3cb-vdRa5gtdCmBEjfwm2y5P4g,447581
22
+ bec_widgets/assets/app_icons/alignment_1d.png,sha256=5VouaWieb4lVv3wUBNHaO5ovUW2Fk25aTKYQzOWy0mg,2071069
17
23
  bec_widgets/assets/app_icons/bec_widgets_icon.png,sha256=K8dgGwIjalDh9PRHUsSQBqgdX7a00nM3igZdc20pkYM,1747017
18
- bec_widgets/assets/status_icons/error.svg,sha256=U_-8qDHAeCH8Z9sUXoU5zSPf0RyVx-CAWK6h2gH99C4,718
19
- bec_widgets/assets/status_icons/not_connected.svg,sha256=wuNdFzNHuZrd_pguRi-mUw3l6uRSkb37yGFJ6kKyMQo,721
20
- bec_widgets/assets/status_icons/refresh.svg,sha256=Em_236ARgCdkSof-HU5EYGwv2hXPhOH0NYj2mKaIrwI,559
21
- bec_widgets/assets/status_icons/running.svg,sha256=nlc6rKh_f-uOxQSk0BkBNyWnPAJU5hf6P_NRcII7FBg,604
22
- bec_widgets/assets/status_icons/warning.svg,sha256=CNx88p9kbDG51s9ztKf-cfYan4JdDBbk3-IFKfOOFlI,364
23
24
  bec_widgets/cli/__init__.py,sha256=d0Q6Fn44e7wFfLabDOBxpcJ1DPKWlFunGYDUBmO-4hA,22
24
25
  bec_widgets/cli/auto_updates.py,sha256=DwzRChcFIWPH2kCYvp8H7dXvyYSKGYv6LwCmK2sDR2E,5676
25
26
  bec_widgets/cli/client.py,sha256=PaNh9ih6HXlOEDo6MHa4L3Yl3pjZSWZ0bCk-2G7RWiU,82154
@@ -47,11 +48,12 @@ bec_widgets/qt_utils/error_popups.py,sha256=y9gKKWaafp468ioHr96nBhf02ZpEgjDc-BAV
47
48
  bec_widgets/qt_utils/palette_viewer.py,sha256=PGhJ-4XI0f7gNnC1djNgcIHYg6HDO6hPju4pfWj9rvg,6311
48
49
  bec_widgets/qt_utils/redis_message_waiter.py,sha256=fvL_QgC0cTDv_FPJdRyp5AKjf401EJU4z3r38p47ydY,1745
49
50
  bec_widgets/qt_utils/settings_dialog.py,sha256=NhtzTer_xzlB2lLLrGklkI1QYLJEWQpJoZbCz4o5daI,3645
50
- bec_widgets/qt_utils/toolbar.py,sha256=QMXTbEFowVzbQzblXZVJcAhgd_zrqaqBISyd4QlPv1A,8576
51
+ bec_widgets/qt_utils/toolbar.py,sha256=6D6GL0OjXEtuP9G83OiDxycyy6m8mqY2ChtPwinN9Ec,8735
51
52
  bec_widgets/utils/__init__.py,sha256=1930ji1Jj6dVuY81Wd2kYBhHYNV-2R0bN_L4o9zBj1U,533
52
53
  bec_widgets/utils/bec_connector.py,sha256=I9M_4g-_-WaMmhyXzChFCGXAElelx0mG6E1g0KvtEQs,10059
53
54
  bec_widgets/utils/bec_designer.py,sha256=Z3MeMju-KmTz8POtm23VQfp4rvtD2sF6eIOKQkl2F7w,4729
54
55
  bec_widgets/utils/bec_dispatcher.py,sha256=OFmkx9vOz4pA4Sdc14QreyDZ870QYskJ4B5daVVeYg4,6325
56
+ bec_widgets/utils/bec_signal_proxy.py,sha256=PKJ7v8pKrAaqA9XNDMZZBlhVtEInX-ae6_0m2cQhiEw,2107
55
57
  bec_widgets/utils/bec_table.py,sha256=nA2b8ukSeUfquFMAxGrUVOqdrzMoDYD6O_4EYbOG2zk,717
56
58
  bec_widgets/utils/bec_widget.py,sha256=1lrHNuvW6uOuPpr-cJBYJNbFekTsqpnQdfTo3P5tbWI,3330
57
59
  bec_widgets/utils/colors.py,sha256=aUQkDMTRjTjS9lQfgO5NrUllU2r4ygDTTSUROtTBX90,12838
@@ -60,7 +62,8 @@ bec_widgets/utils/crosshair.py,sha256=8lik9k69WI2WMj5FGLbrKtny9duxqXUJAhpX8tHoyp
60
62
  bec_widgets/utils/entry_validator.py,sha256=3skJIsUwTYicT76AMHm_M78RiWtUgyD2zb-Rxo2HdHQ,1313
61
63
  bec_widgets/utils/generate_designer_plugin.py,sha256=eidqauS8YLgoxkPntPL0oSG_lYqI2D7fSyOZvOtCU_U,5891
62
64
  bec_widgets/utils/layout_manager.py,sha256=H0nKsIMaPxRkof1MEXlSmW6w1dFxA6astaGzf4stI84,4727
63
- bec_widgets/utils/linear_region_selector.py,sha256=kRLoZ0P0FttcsFvDBN8NGPm3swCIBv7Ax9AuqmjkRjE,2719
65
+ bec_widgets/utils/linear_region_selector.py,sha256=83qMSGnxCePdI5UL8_M4sMeK_BU9sZBzcw0o3Z_Jgxw,3286
66
+ bec_widgets/utils/plot_indicator_items.py,sha256=OGL7wq-cj1IBn5dfNPP12HBcT55RiBriibQPT00wK7c,9819
64
67
  bec_widgets/utils/plugin_utils.py,sha256=njvVdvF-AR47Yn80ntpvFldEvLuFx9GV-qEX4p_n4AI,5263
65
68
  bec_widgets/utils/reference_utils.py,sha256=8pq06TOvZBZdim0G6hvPJXzVDib7ve4o-Ptvfp563nk,2859
66
69
  bec_widgets/utils/rpc_decorator.py,sha256=pIvtqySQLnuS7l2Ti_UAe4WX7CRivZnsE5ZdKAihxh0,479
@@ -85,11 +88,11 @@ bec_widgets/widgets/bec_queue/bec_queue.pyproject,sha256=VhoNmAv1DQUl9dg7dELyf5i
85
88
  bec_widgets/widgets/bec_queue/bec_queue_plugin.py,sha256=cotVUNKphAXQAp6mWtKoyzJ-vyAnfd86tGf4yNp0CjU,1341
86
89
  bec_widgets/widgets/bec_queue/register_bec_queue.py,sha256=XnwtUSa1asK1b80knKWodcyX9qJy4DnKsQL_FoDfZy4,463
87
90
  bec_widgets/widgets/bec_status_box/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
88
- bec_widgets/widgets/bec_status_box/bec_status_box.py,sha256=Ky1SJuULdPyqGFTk956OX_MJzmaIE43eeHlS8zAUEac,13131
91
+ bec_widgets/widgets/bec_status_box/bec_status_box.py,sha256=4ZZ3rgimxBpTHzQcjHXLdmmygmcsNpO6mZy0u6ZFr3k,13038
89
92
  bec_widgets/widgets/bec_status_box/bec_status_box.pyproject,sha256=JWtx3Csfn2h7ODtk10HtyBNLf6tFIqyU6g04rMWOO1U,32
90
93
  bec_widgets/widgets/bec_status_box/bec_status_box_plugin.py,sha256=UmsXAmeHg7FRkzirOLBPi3LwbRbG75w8LglYt4jn6Fc,1412
91
94
  bec_widgets/widgets/bec_status_box/register_bec_status_box.py,sha256=EiQITnkNw7IU7hE776wAeXro97eZd9XlsB9essgCebE,481
92
- bec_widgets/widgets/bec_status_box/status_item.py,sha256=3aNaa-e64PmkBoAWfItYAmhB1EFhWRiFLzXWWz0dS_8,5317
95
+ bec_widgets/widgets/bec_status_box/status_item.py,sha256=8ePcKMcj9GBSuczk-k0d98lL_zMiVtTF-RRTG-Khec0,5525
93
96
  bec_widgets/widgets/button_abort/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
94
97
  bec_widgets/widgets/button_abort/abort_button.pyproject,sha256=UtuaE0Lvs6uOGufhatUyJS_n2l6EBbYaGuILj_BNCLs,30
95
98
  bec_widgets/widgets/button_abort/abort_button_plugin.py,sha256=3q0a4UE2O9s96Jjg6wi03CpXdQ7CnOI20ep7etEdxMo,1285
@@ -120,7 +123,7 @@ bec_widgets/widgets/console/console.pyproject,sha256=JcoDuZG03g1Bxkd3Aipo7jjLexu
120
123
  bec_widgets/widgets/console/console_plugin.py,sha256=Jc1m24cjwyZI6cZB5twDTq9zjleeAMTaCDEJo5l5Q88,1349
121
124
  bec_widgets/widgets/console/register_console.py,sha256=T05uIV0UsBaNsG8DzLpYMmdcA4_RW1RgGaXjG51lyAs,463
122
125
  bec_widgets/widgets/dap_combo_box/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
123
- bec_widgets/widgets/dap_combo_box/dap_combo_box.py,sha256=MmDsEFxSYJBG4R9ql_UF0K0OtnZCQMDTvKWxzPmFleA,5596
126
+ bec_widgets/widgets/dap_combo_box/dap_combo_box.py,sha256=tNjz9QX_MsUy4gBFLzpiQkkXEtdkOUyqBuMjd9TGgFg,5797
124
127
  bec_widgets/widgets/dap_combo_box/dap_combo_box.pyproject,sha256=3TzD8j0F6UYw8TPwKxVDeXdobnYIRXNrAUrXzqWjk4M,31
125
128
  bec_widgets/widgets/dap_combo_box/dap_combo_box_plugin.py,sha256=WVR8k10SESRFm-hQUrcUfgycuNu7HIcZqV--24nw-TU,1270
126
129
  bec_widgets/widgets/dap_combo_box/register_dap_combo_box.py,sha256=RGFzFmldBwQjpKB7wbIxJU20uprjXtqCVnUkt0Zc7aA,477
@@ -158,7 +161,7 @@ bec_widgets/widgets/figure/figure.py,sha256=IzQaV_9utjViJyjMydOa3-EJ9k-FVG2PTVm8
158
161
  bec_widgets/widgets/figure/plots/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
159
162
  bec_widgets/widgets/figure/plots/axis_settings.py,sha256=grgrX4t4eAzccW4jj4HYtMSxy8Wgcd9N9J1aU7UHtIs,3723
160
163
  bec_widgets/widgets/figure/plots/axis_settings.ui,sha256=ye-guaRU_jhu7sHZS-9AjBjLrCtA1msOD0dszu4o9x8,11785
161
- bec_widgets/widgets/figure/plots/plot_base.py,sha256=ByzXVZ8pjIN9947iI7OLNksjpwO2_I58uezQSgWCZVQ,15676
164
+ bec_widgets/widgets/figure/plots/plot_base.py,sha256=pWaeT35pPYh5L3_N_Fw5fzC7t5TlsRdNZCVBMpC3BBc,15974
162
165
  bec_widgets/widgets/figure/plots/image/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
163
166
  bec_widgets/widgets/figure/plots/image/image.py,sha256=rq2zy-vwZLd3___rFRNEBnPFGKSu88T5T4ngrTkcbr0,25014
164
167
  bec_widgets/widgets/figure/plots/image/image_item.py,sha256=DhlBbI-c8nVbJ8tREQhyNr8Qk4W6PXF0HgBhrIoYQPo,11012
@@ -166,7 +169,7 @@ bec_widgets/widgets/figure/plots/image/image_processor.py,sha256=GeTtWjbldy6VejM
166
169
  bec_widgets/widgets/figure/plots/motor_map/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
167
170
  bec_widgets/widgets/figure/plots/motor_map/motor_map.py,sha256=AiDq4bmcEoj9PlkRQtHCk-5cwvOFGPBcfxPNNr8E53Y,18399
168
171
  bec_widgets/widgets/figure/plots/waveform/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
169
- bec_widgets/widgets/figure/plots/waveform/waveform.py,sha256=y18zurrvyw0VSy1DMc0h323qlQFocoV1KKjFOs2SigM,56301
172
+ bec_widgets/widgets/figure/plots/waveform/waveform.py,sha256=wESdww5oTdAfVsW4M_kOZlxvEy5fFKKlDaf7NQuXXts,56296
170
173
  bec_widgets/widgets/figure/plots/waveform/waveform_curve.py,sha256=RUo4GfXwlaCei8BBvWBQF3IEB8h-KgpvaHur6JUvT6s,8682
171
174
  bec_widgets/widgets/image/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
172
175
  bec_widgets/widgets/image/bec_image_widget.pyproject,sha256=PHisdBo5_5UCApd27GkizzqgfdjsDx2bFZa_p9LiSW8,30
@@ -178,9 +181,9 @@ bec_widgets/widgets/jupyter_console/jupyter_console.py,sha256=-e7HQOECeH5eDrJYh4
178
181
  bec_widgets/widgets/lmfit_dialog/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
179
182
  bec_widgets/widgets/lmfit_dialog/lm_fit_dialog.pyproject,sha256=PTvg1ddrW_R2_gd1cfA8UyxeVlgg5B-y71-F3lY6vKI,30
180
183
  bec_widgets/widgets/lmfit_dialog/lm_fit_dialog_plugin.py,sha256=X73Wn6tBkRSfhBEbg0ZZGIMCG6ujkidoJMXTQPuk2Y8,1267
181
- bec_widgets/widgets/lmfit_dialog/lmfit_dialog.py,sha256=0rUNECLs3S4hcqV115H87JQsqSWQLVb5S9iiCbG9PVs,6450
184
+ bec_widgets/widgets/lmfit_dialog/lmfit_dialog.py,sha256=gFjxi_2HKAiNUmNRpo7ImFQjKw9mqwdHyZoycFrYerA,11656
182
185
  bec_widgets/widgets/lmfit_dialog/lmfit_dialog_compact.ui,sha256=JbdMEPzbA3p2Ekz6U6NwXs1BqdBr71NUJNVOnhrN1dE,3397
183
- bec_widgets/widgets/lmfit_dialog/lmfit_dialog_vertical.ui,sha256=TS8FJSihTBShbx0QoXpCGAHEWVVwRxWsMazS8QxLrO4,4009
186
+ bec_widgets/widgets/lmfit_dialog/lmfit_dialog_vertical.ui,sha256=LQCQKQMcocdDElz-TbgC5kN6FTl4kUYh2zFbCjqtUQc,4877
184
187
  bec_widgets/widgets/lmfit_dialog/register_lm_fit_dialog.py,sha256=a96eq_Lm_QtC0DAEcDrnF5PLj1LsDtxfNtmku7YPNw8,476
185
188
  bec_widgets/widgets/motor_map/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
186
189
  bec_widgets/widgets/motor_map/bec_motor_map_widget.pyproject,sha256=NAI8s5gRKz80ED4KY7OgD2OgSH5HEsjt2ux2BYp66yg,63
@@ -196,7 +199,7 @@ bec_widgets/widgets/position_indicator/position_indicator.pyproject,sha256=s0JEf
196
199
  bec_widgets/widgets/position_indicator/position_indicator_plugin.py,sha256=ehQPpwkjJ7k365i4gdwtmAmCbVmB1tvQLEo60J_ivo4,1413
197
200
  bec_widgets/widgets/position_indicator/register_position_indicator.py,sha256=OZNiMgM_80TPSAXK_0hXAkne4vUh8DGvh_OdpOiMpwI,516
198
201
  bec_widgets/widgets/positioner_box/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
199
- bec_widgets/widgets/positioner_box/positioner_box.py,sha256=j2NblvZI1g_ltnAdjHNUj4cXa6mHM-jv3CO-uyK_nOI,11503
202
+ bec_widgets/widgets/positioner_box/positioner_box.py,sha256=xrANDL3dJM40c0AYhhessLGBdHkXSPOA-8KRvY5kKx0,11693
200
203
  bec_widgets/widgets/positioner_box/positioner_box.pyproject,sha256=7966pHdDseaHciaPNEKgdQgbUThSZf5wEDCeAEJh9po,32
201
204
  bec_widgets/widgets/positioner_box/positioner_box.ui,sha256=7LZlM9smIqmkvS2KAIDkBamn04mBAkXeG9T1fpKRQe8,6093
202
205
  bec_widgets/widgets/positioner_box/positioner_box_plugin.py,sha256=kJtQgRFGkJYWbZqJ7K7o0UhdsgAlODUVZL8pKJWwMhs,1413
@@ -214,7 +217,7 @@ bec_widgets/widgets/ring_progress_bar/ring_progress_bar.pyproject,sha256=ZNYDnKD
214
217
  bec_widgets/widgets/ring_progress_bar/ring_progress_bar_plugin.py,sha256=-rw9ZSThgAH0Ubbr3X-L5x-ZqMXUGnauyFb4OmfUvD4,1394
215
218
  bec_widgets/widgets/scan_control/__init__.py,sha256=IOfHl15vxb_uC6KN62-PeUzbBha_vQyqkkXbJ2HU674,38
216
219
  bec_widgets/widgets/scan_control/register_scan_control.py,sha256=xUX2yR0-MaIMg9_y9qe50yDDphzsh2x1b5PMrF90yPM,475
217
- bec_widgets/widgets/scan_control/scan_control.py,sha256=PVy_gqivO_Nut6ZxdOhgXfRyRPcQ92wSGOGY8duxXlE,18074
220
+ bec_widgets/widgets/scan_control/scan_control.py,sha256=wW_UwZbu9wgzRHTaB4gjtcr7txz9Hy27aKruNmMmK2w,19180
218
221
  bec_widgets/widgets/scan_control/scan_control.pyproject,sha256=eTgVDFKToIH8_BbJjM2RvbOLr7HnYoidX0SAHx640DM,30
219
222
  bec_widgets/widgets/scan_control/scan_control_plugin.py,sha256=7GaqmaRgbwIPjVoXcyKVDl8UpfqC2weViup-YFfzUsM,1270
220
223
  bec_widgets/widgets/scan_control/scan_group_box.py,sha256=H2QQFvRlmpF-lilmRRNB-vsAcYQkDYhbHZo32hPRVr8,10488
@@ -225,7 +228,7 @@ bec_widgets/widgets/spinner/spinner_widget.pyproject,sha256=zzLajGB3DTgVnrSqMey2
225
228
  bec_widgets/widgets/spinner/spinner_widget_plugin.py,sha256=AZYJJe40olMzqL6Edk6J-X_iNHcXrU-EQN4mCUCp_Fo,1355
226
229
  bec_widgets/widgets/stop_button/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
227
230
  bec_widgets/widgets/stop_button/register_stop_button.py,sha256=U7r3fEOH-uPhAQI-nTituHXDDXDWR4JQZ7_vD6b_dfM,471
228
- bec_widgets/widgets/stop_button/stop_button.py,sha256=ODcyoBZChJZnLn2jDO94ECLHnpf3Y5DkmiAl3SUopms,1707
231
+ bec_widgets/widgets/stop_button/stop_button.py,sha256=Y_6GPSZ3NjmMBbZFW8moJYO2C-Ay5Zp-u9RuNKZaFB0,2022
229
232
  bec_widgets/widgets/stop_button/stop_button.pyproject,sha256=Cc_xbv-zfzNVpsdg_1QyzuTlrJaM9_BkIjes70umrx0,29
230
233
  bec_widgets/widgets/stop_button/stop_button_plugin.py,sha256=VT-WVLq89fw7PwML7JDMCF1bqfopLCZIgMA4yetl65M,1365
231
234
  bec_widgets/widgets/text_box/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -259,8 +262,8 @@ bec_widgets/widgets/website/register_website_widget.py,sha256=LIQJpV9uqcBiPR9cEA
259
262
  bec_widgets/widgets/website/website.py,sha256=42pncCc_zI2eqeMArIurVmPUukRo5bTxa2h1Skah-io,3012
260
263
  bec_widgets/widgets/website/website_widget.pyproject,sha256=scOiV3cV1_BjbzpPzy2N8rIJL5P2qIZz8ObTJ-Uvdtg,25
261
264
  bec_widgets/widgets/website/website_widget_plugin.py,sha256=pz38_C2cZ0yvPPS02wdIPcmhFo_yiwUhflsASocAPQQ,1341
262
- bec_widgets-0.112.0.dist-info/METADATA,sha256=ybdBdJUN55C1pniCas8sTK3pfBdB_onvbV2DqZaYs2E,1334
263
- bec_widgets-0.112.0.dist-info/WHEEL,sha256=1yFddiXMmvYK7QYTqtRNtX66WJ0Mz8PYEiEUoOUUxRY,87
264
- bec_widgets-0.112.0.dist-info/entry_points.txt,sha256=3otEkCdDB9LZJuBLzG4pFLK5Di0CVybN_12IsZrQ-58,166
265
- bec_widgets-0.112.0.dist-info/licenses/LICENSE,sha256=YRKe85CBRyP7UpEAWwU8_qSIyuy5-l_9C-HKg5Qm8MQ,1511
266
- bec_widgets-0.112.0.dist-info/RECORD,,
265
+ bec_widgets-0.113.0.dist-info/METADATA,sha256=C4C8XhGH6pOZ-_r4CnJWLdDM-x8W0u4MwToUKkVTD0I,1334
266
+ bec_widgets-0.113.0.dist-info/WHEEL,sha256=1yFddiXMmvYK7QYTqtRNtX66WJ0Mz8PYEiEUoOUUxRY,87
267
+ bec_widgets-0.113.0.dist-info/entry_points.txt,sha256=3otEkCdDB9LZJuBLzG4pFLK5Di0CVybN_12IsZrQ-58,166
268
+ bec_widgets-0.113.0.dist-info/licenses/LICENSE,sha256=YRKe85CBRyP7UpEAWwU8_qSIyuy5-l_9C-HKg5Qm8MQ,1511
269
+ bec_widgets-0.113.0.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.112.0"
7
+ version = "0.113.0"
8
8
  description = "BEC Widgets"
9
9
  requires-python = ">=3.10"
10
10
  classifiers = [