bec-widgets 2.7.1__py3-none-any.whl → 2.8.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.
- CHANGELOG.md +29 -0
- PKG-INFO +1 -1
- bec_widgets/applications/launch_window.py +69 -3
- bec_widgets/cli/server.py +0 -1
- bec_widgets/utils/toolbar.py +7 -0
- bec_widgets/widgets/plots/image/toolbar_bundles/processing.py +19 -6
- bec_widgets/widgets/plots/plot_base.py +44 -4
- bec_widgets/widgets/plots/waveform/waveform.py +5 -5
- {bec_widgets-2.7.1.dist-info → bec_widgets-2.8.1.dist-info}/METADATA +1 -1
- {bec_widgets-2.7.1.dist-info → bec_widgets-2.8.1.dist-info}/RECORD +14 -14
- pyproject.toml +1 -1
- {bec_widgets-2.7.1.dist-info → bec_widgets-2.8.1.dist-info}/WHEEL +0 -0
- {bec_widgets-2.7.1.dist-info → bec_widgets-2.8.1.dist-info}/entry_points.txt +0 -0
- {bec_widgets-2.7.1.dist-info → bec_widgets-2.8.1.dist-info}/licenses/LICENSE +0 -0
CHANGELOG.md
CHANGED
@@ -1,6 +1,35 @@
|
|
1
1
|
# CHANGELOG
|
2
2
|
|
3
3
|
|
4
|
+
## v2.8.1 (2025-05-27)
|
5
|
+
|
6
|
+
### Bug Fixes
|
7
|
+
|
8
|
+
- **launch_window**: Font and tile size fixed across OSs, closes #607
|
9
|
+
([`ada0977`](https://github.com/bec-project/bec_widgets/commit/ada0977a1b50e750c2e2c848ce9b80895e0e524a))
|
10
|
+
|
11
|
+
|
12
|
+
## v2.8.0 (2025-05-26)
|
13
|
+
|
14
|
+
### Bug Fixes
|
15
|
+
|
16
|
+
- **ImageProcessing**: Use target widget as parent
|
17
|
+
([`d8547c7`](https://github.com/bec-project/bec_widgets/commit/d8547c7a56cea72dd41a2020c47adfd93969139f))
|
18
|
+
|
19
|
+
### Features
|
20
|
+
|
21
|
+
- **plot_base**: Add option to specify units
|
22
|
+
([`3484507`](https://github.com/bec-project/bec_widgets/commit/3484507c75500dc1b1a53853ff01937ad9ad8913))
|
23
|
+
|
24
|
+
### Refactoring
|
25
|
+
|
26
|
+
- **server**: Minor cleanup of imports
|
27
|
+
([`8abebb7`](https://github.com/bec-project/bec_widgets/commit/8abebb72862c44d32a24f5e692319dec7a0891bf))
|
28
|
+
|
29
|
+
- **toolbar**: Add warning if no parent is provided as it may lead to segfaults
|
30
|
+
([`4f69f5d`](https://github.com/bec-project/bec_widgets/commit/4f69f5da45420d92fd985801a8920ecf10166554))
|
31
|
+
|
32
|
+
|
4
33
|
## v2.7.1 (2025-05-26)
|
5
34
|
|
6
35
|
### Bug Fixes
|
PKG-INFO
CHANGED
@@ -6,7 +6,7 @@ from typing import TYPE_CHECKING, Callable
|
|
6
6
|
|
7
7
|
from bec_lib.logger import bec_logger
|
8
8
|
from qtpy.QtCore import Qt, Signal # type: ignore
|
9
|
-
from qtpy.QtGui import QPainter, QPainterPath, QPixmap
|
9
|
+
from qtpy.QtGui import QFontMetrics, QPainter, QPainterPath, QPixmap
|
10
10
|
from qtpy.QtWidgets import (
|
11
11
|
QApplication,
|
12
12
|
QComboBox,
|
@@ -44,6 +44,7 @@ MODULE_PATH = os.path.dirname(bec_widgets.__file__)
|
|
44
44
|
|
45
45
|
|
46
46
|
class LaunchTile(RoundedFrame):
|
47
|
+
DEFAULT_SIZE = (250, 300)
|
47
48
|
open_signal = Signal()
|
48
49
|
|
49
50
|
def __init__(
|
@@ -54,9 +55,15 @@ class LaunchTile(RoundedFrame):
|
|
54
55
|
main_label: str | None = None,
|
55
56
|
description: str | None = None,
|
56
57
|
show_selector: bool = False,
|
58
|
+
tile_size: tuple[int, int] | None = None,
|
57
59
|
):
|
58
60
|
super().__init__(parent=parent, orientation="vertical")
|
59
61
|
|
62
|
+
# Provide a per‑instance TILE_SIZE so the class can compute layout
|
63
|
+
if tile_size is None:
|
64
|
+
tile_size = self.DEFAULT_SIZE
|
65
|
+
self.tile_size = tile_size
|
66
|
+
|
60
67
|
self.icon_label = QLabel(parent=self)
|
61
68
|
self.icon_label.setFixedSize(100, 100)
|
62
69
|
self.icon_label.setScaledContents(True)
|
@@ -87,12 +94,26 @@ class LaunchTile(RoundedFrame):
|
|
87
94
|
|
88
95
|
# Main label
|
89
96
|
self.main_label = QLabel(main_label)
|
97
|
+
|
98
|
+
# Desired default appearance
|
90
99
|
font_main = self.main_label.font()
|
91
100
|
font_main.setPointSize(14)
|
92
101
|
font_main.setBold(True)
|
93
102
|
self.main_label.setFont(font_main)
|
94
|
-
self.main_label.setWordWrap(True)
|
95
103
|
self.main_label.setAlignment(Qt.AlignCenter)
|
104
|
+
|
105
|
+
# Shrink font if the default would wrap on this platform / DPI
|
106
|
+
content_width = (
|
107
|
+
self.tile_size[0]
|
108
|
+
- self.layout.contentsMargins().left()
|
109
|
+
- self.layout.contentsMargins().right()
|
110
|
+
)
|
111
|
+
self._fit_label_to_width(self.main_label, content_width)
|
112
|
+
|
113
|
+
# Give every tile the same reserved height for the title so the
|
114
|
+
# description labels start at an identical y‑offset.
|
115
|
+
self.main_label.setFixedHeight(QFontMetrics(self.main_label.font()).height() + 2)
|
116
|
+
|
96
117
|
self.layout.addWidget(self.main_label)
|
97
118
|
|
98
119
|
self.spacer_top = QSpacerItem(0, 10, QSizePolicy.Fixed, QSizePolicy.Fixed)
|
@@ -133,6 +154,29 @@ class LaunchTile(RoundedFrame):
|
|
133
154
|
)
|
134
155
|
self.layout.addWidget(self.action_button, alignment=Qt.AlignCenter)
|
135
156
|
|
157
|
+
def _fit_label_to_width(self, label: QLabel, max_width: int, min_pt: int = 10):
|
158
|
+
"""
|
159
|
+
Fit the label text to the specified maximum width by adjusting the font size.
|
160
|
+
|
161
|
+
Args:
|
162
|
+
label(QLabel): The label to adjust.
|
163
|
+
max_width(int): The maximum width the label can occupy.
|
164
|
+
min_pt(int): The minimum font point size to use.
|
165
|
+
"""
|
166
|
+
font = label.font()
|
167
|
+
for pt in range(font.pointSize(), min_pt - 1, -1):
|
168
|
+
font.setPointSize(pt)
|
169
|
+
metrics = QFontMetrics(font)
|
170
|
+
if metrics.horizontalAdvance(label.text()) <= max_width:
|
171
|
+
label.setFont(font)
|
172
|
+
label.setWordWrap(False)
|
173
|
+
return
|
174
|
+
# If nothing fits, fall back to eliding
|
175
|
+
metrics = QFontMetrics(font)
|
176
|
+
label.setFont(font)
|
177
|
+
label.setWordWrap(False)
|
178
|
+
label.setText(metrics.elidedText(label.text(), Qt.ElideRight, max_width))
|
179
|
+
|
136
180
|
|
137
181
|
class LaunchWindow(BECMainWindow):
|
138
182
|
RPC = True
|
@@ -146,6 +190,8 @@ class LaunchWindow(BECMainWindow):
|
|
146
190
|
|
147
191
|
self.app = QApplication.instance()
|
148
192
|
self.tiles: dict[str, LaunchTile] = {}
|
193
|
+
# Track the smallest main‑label font size chosen so far
|
194
|
+
self._min_main_label_pt: int | None = None
|
149
195
|
|
150
196
|
# Toolbar
|
151
197
|
self.dark_mode_button = DarkModeButton(parent=self, toolbar=True)
|
@@ -250,14 +296,34 @@ class LaunchWindow(BECMainWindow):
|
|
250
296
|
main_label=main_label,
|
251
297
|
description=description,
|
252
298
|
show_selector=show_selector,
|
299
|
+
tile_size=self.TILE_SIZE,
|
253
300
|
)
|
254
|
-
tile.
|
301
|
+
tile.setFixedWidth(self.TILE_SIZE[0])
|
302
|
+
tile.setMinimumHeight(self.TILE_SIZE[1])
|
303
|
+
tile.setSizePolicy(QSizePolicy.Fixed, QSizePolicy.MinimumExpanding)
|
255
304
|
if action_button:
|
256
305
|
tile.action_button.clicked.connect(action_button)
|
257
306
|
if show_selector and selector_items:
|
258
307
|
tile.selector.addItems(selector_items)
|
259
308
|
self.central_widget.layout.addWidget(tile)
|
260
309
|
|
310
|
+
# keep all tiles' main labels at a unified point size
|
311
|
+
current_pt = tile.main_label.font().pointSize()
|
312
|
+
if self._min_main_label_pt is None or current_pt < self._min_main_label_pt:
|
313
|
+
# New global minimum – shrink every existing tile to this size
|
314
|
+
self._min_main_label_pt = current_pt
|
315
|
+
for t in self.tiles.values():
|
316
|
+
f = t.main_label.font()
|
317
|
+
f.setPointSize(self._min_main_label_pt)
|
318
|
+
t.main_label.setFont(f)
|
319
|
+
t.main_label.setFixedHeight(QFontMetrics(f).height() + 2)
|
320
|
+
elif current_pt > self._min_main_label_pt:
|
321
|
+
# Tile is larger than global minimum – shrink it to match
|
322
|
+
f = tile.main_label.font()
|
323
|
+
f.setPointSize(self._min_main_label_pt)
|
324
|
+
tile.main_label.setFont(f)
|
325
|
+
tile.main_label.setFixedHeight(QFontMetrics(f).height() + 2)
|
326
|
+
|
261
327
|
self.tiles[name] = tile
|
262
328
|
|
263
329
|
def launch(
|
bec_widgets/cli/server.py
CHANGED
bec_widgets/utils/toolbar.py
CHANGED
@@ -7,6 +7,7 @@ from abc import ABC, abstractmethod
|
|
7
7
|
from collections import defaultdict
|
8
8
|
from typing import Dict, List, Literal, Tuple
|
9
9
|
|
10
|
+
from bec_lib.logger import bec_logger
|
10
11
|
from bec_qthemes._icon.material_icons import material_icon
|
11
12
|
from qtpy.QtCore import QSize, Qt, QTimer
|
12
13
|
from qtpy.QtGui import QAction, QColor, QIcon
|
@@ -31,6 +32,8 @@ from bec_widgets.widgets.utility.visual.dark_mode_button.dark_mode_button import
|
|
31
32
|
|
32
33
|
MODULE_PATH = os.path.dirname(bec_widgets.__file__)
|
33
34
|
|
35
|
+
logger = bec_logger.logger
|
36
|
+
|
34
37
|
# Ensure that icons are shown in menus (especially on macOS)
|
35
38
|
QApplication.setAttribute(Qt.AA_DontShowIconsInMenus, False)
|
36
39
|
|
@@ -173,6 +176,10 @@ class MaterialIconAction(ToolBarAction):
|
|
173
176
|
filled=self.filled,
|
174
177
|
color=self.color,
|
175
178
|
)
|
179
|
+
if parent is None:
|
180
|
+
logger.warning(
|
181
|
+
"MaterialIconAction was created without a parent. Please consider adding one. Using None as parent may cause issues."
|
182
|
+
)
|
176
183
|
self.action = QAction(icon=self.icon, text=self.tooltip, parent=parent)
|
177
184
|
self.action.setCheckable(self.checkable)
|
178
185
|
|
@@ -11,18 +11,31 @@ class ImageProcessingToolbarBundle(ToolbarBundle):
|
|
11
11
|
super().__init__(bundle_id=bundle_id, actions=[], **kwargs)
|
12
12
|
self.target_widget = target_widget
|
13
13
|
|
14
|
-
self.fft = MaterialIconAction(
|
15
|
-
|
14
|
+
self.fft = MaterialIconAction(
|
15
|
+
icon_name="fft", tooltip="Toggle FFT", checkable=True, parent=self.target_widget
|
16
|
+
)
|
17
|
+
self.log = MaterialIconAction(
|
18
|
+
icon_name="log_scale", tooltip="Toggle Log", checkable=True, parent=self.target_widget
|
19
|
+
)
|
16
20
|
self.transpose = MaterialIconAction(
|
17
|
-
icon_name="transform",
|
21
|
+
icon_name="transform",
|
22
|
+
tooltip="Transpose Image",
|
23
|
+
checkable=True,
|
24
|
+
parent=self.target_widget,
|
18
25
|
)
|
19
26
|
self.right = MaterialIconAction(
|
20
|
-
icon_name="rotate_right",
|
27
|
+
icon_name="rotate_right",
|
28
|
+
tooltip="Rotate image clockwise by 90 deg",
|
29
|
+
parent=self.target_widget,
|
21
30
|
)
|
22
31
|
self.left = MaterialIconAction(
|
23
|
-
icon_name="rotate_left",
|
32
|
+
icon_name="rotate_left",
|
33
|
+
tooltip="Rotate image counterclockwise by 90 deg",
|
34
|
+
parent=self.target_widget,
|
35
|
+
)
|
36
|
+
self.reset = MaterialIconAction(
|
37
|
+
icon_name="reset_settings", tooltip="Reset Image Settings", parent=self.target_widget
|
24
38
|
)
|
25
|
-
self.reset = MaterialIconAction(icon_name="reset_settings", tooltip="Reset Image Settings")
|
26
39
|
|
27
40
|
self.add_action("fft", self.fft)
|
28
41
|
self.add_action("log", self.log)
|
@@ -112,8 +112,10 @@ class PlotBase(BECWidget, QWidget):
|
|
112
112
|
self.fps_label = QLabel(alignment=Qt.AlignmentFlag.AlignRight)
|
113
113
|
self._user_x_label = ""
|
114
114
|
self._x_label_suffix = ""
|
115
|
+
self._x_axis_units = ""
|
115
116
|
self._user_y_label = ""
|
116
117
|
self._y_label_suffix = ""
|
118
|
+
self._y_axis_units = ""
|
117
119
|
|
118
120
|
# Plot Indicator Items
|
119
121
|
self.tick_item = BECTickItem(parent=self, plot_item=self.plot_item)
|
@@ -473,12 +475,31 @@ class PlotBase(BECWidget, QWidget):
|
|
473
475
|
self._x_label_suffix = suffix
|
474
476
|
self._apply_x_label()
|
475
477
|
|
478
|
+
@property
|
479
|
+
def x_label_units(self) -> str:
|
480
|
+
"""
|
481
|
+
The units of the x-axis.
|
482
|
+
"""
|
483
|
+
return self._x_axis_units
|
484
|
+
|
485
|
+
@x_label_units.setter
|
486
|
+
def x_label_units(self, units: str):
|
487
|
+
"""
|
488
|
+
The units of the x-axis.
|
489
|
+
|
490
|
+
Args:
|
491
|
+
units(str): The units to set.
|
492
|
+
"""
|
493
|
+
self._x_axis_units = units
|
494
|
+
self._apply_x_label()
|
495
|
+
|
476
496
|
@property
|
477
497
|
def x_label_combined(self) -> str:
|
478
498
|
"""
|
479
|
-
The final label shown on the axis = user portion + suffix.
|
499
|
+
The final label shown on the axis = user portion + suffix + [units].
|
480
500
|
"""
|
481
|
-
|
501
|
+
units = f" [{self._x_axis_units}]" if self._x_axis_units else ""
|
502
|
+
return self._user_x_label + self._x_label_suffix + units
|
482
503
|
|
483
504
|
def _apply_x_label(self):
|
484
505
|
"""
|
@@ -521,12 +542,31 @@ class PlotBase(BECWidget, QWidget):
|
|
521
542
|
self._y_label_suffix = suffix
|
522
543
|
self._apply_y_label()
|
523
544
|
|
545
|
+
@property
|
546
|
+
def y_label_units(self) -> str:
|
547
|
+
"""
|
548
|
+
The units of the y-axis.
|
549
|
+
"""
|
550
|
+
return self._y_axis_units
|
551
|
+
|
552
|
+
@y_label_units.setter
|
553
|
+
def y_label_units(self, units: str):
|
554
|
+
"""
|
555
|
+
The units of the y-axis.
|
556
|
+
|
557
|
+
Args:
|
558
|
+
units(str): The units to set.
|
559
|
+
"""
|
560
|
+
self._y_axis_units = units
|
561
|
+
self._apply_y_label()
|
562
|
+
|
524
563
|
@property
|
525
564
|
def y_label_combined(self) -> str:
|
526
565
|
"""
|
527
|
-
The final y label shown on the axis = user portion + suffix.
|
566
|
+
The final y label shown on the axis = user portion + suffix + [units].
|
528
567
|
"""
|
529
|
-
|
568
|
+
units = f" [{self._y_axis_units}]" if self._y_axis_units else ""
|
569
|
+
return self._user_y_label + self._y_label_suffix + units
|
530
570
|
|
531
571
|
def _apply_y_label(self):
|
532
572
|
"""
|
@@ -1468,7 +1468,7 @@ class Waveform(PlotBase):
|
|
1468
1468
|
x_data = data.get(x_name, {}).get(x_entry, {}).get(access_key, [0])
|
1469
1469
|
else: # history data
|
1470
1470
|
x_data = data.get(x_name, {}).get(x_entry, {}).read().get("value", [0])
|
1471
|
-
new_suffix = f"
|
1471
|
+
new_suffix = f" (custom: {x_name}-{x_entry})"
|
1472
1472
|
|
1473
1473
|
# 2 User wants timestamp
|
1474
1474
|
if self.x_axis_mode["name"] == "timestamp":
|
@@ -1477,19 +1477,19 @@ class Waveform(PlotBase):
|
|
1477
1477
|
else: # history data
|
1478
1478
|
timestamps = data[device_name][device_entry].read().get("timestamp", [0])
|
1479
1479
|
x_data = timestamps
|
1480
|
-
new_suffix = "
|
1480
|
+
new_suffix = " (timestamp)"
|
1481
1481
|
|
1482
1482
|
# 3 User wants index
|
1483
1483
|
if self.x_axis_mode["name"] == "index":
|
1484
1484
|
x_data = None
|
1485
|
-
new_suffix = "
|
1485
|
+
new_suffix = " (index)"
|
1486
1486
|
|
1487
1487
|
# 4 Best effort automatic mode
|
1488
1488
|
if self.x_axis_mode["name"] is None or self.x_axis_mode["name"] == "auto":
|
1489
1489
|
# 4.1 If there are async curves, use index
|
1490
1490
|
if len(self._async_curves) > 0:
|
1491
1491
|
x_data = None
|
1492
|
-
new_suffix = "
|
1492
|
+
new_suffix = " (auto: index)"
|
1493
1493
|
# 4.2 If there are sync curves, use the first device from the scan report
|
1494
1494
|
else:
|
1495
1495
|
try:
|
@@ -1503,7 +1503,7 @@ class Waveform(PlotBase):
|
|
1503
1503
|
x_data = data.get(x_name, {}).get(x_entry, {}).get(access_key, None)
|
1504
1504
|
else:
|
1505
1505
|
x_data = data.get(x_name, {}).get(x_entry, {}).read().get("value", None)
|
1506
|
-
new_suffix = f"
|
1506
|
+
new_suffix = f" (auto: {x_name}-{x_entry})"
|
1507
1507
|
self._update_x_label_suffix(new_suffix)
|
1508
1508
|
return x_data
|
1509
1509
|
|
@@ -2,11 +2,11 @@
|
|
2
2
|
.gitlab-ci.yml,sha256=1nMYldzVk0tFkBWYTcUjumOrdSADASheWOAc0kOFDYs,9509
|
3
3
|
.pylintrc,sha256=eeY8YwSI74oFfq6IYIbCqnx3Vk8ZncKaatv96n_Y8Rs,18544
|
4
4
|
.readthedocs.yaml,sha256=ivqg3HTaOxNbEW3bzWh9MXAkrekuGoNdj0Mj3SdRYuw,639
|
5
|
-
CHANGELOG.md,sha256=
|
5
|
+
CHANGELOG.md,sha256=3L7_BBe-CABry-ucSXFIclXSzJ5bCCScyEHhTT6D1mw,288801
|
6
6
|
LICENSE,sha256=Daeiu871NcAp8uYi4eB_qHgvypG-HX0ioRQyQxFwjeg,1531
|
7
|
-
PKG-INFO,sha256=
|
7
|
+
PKG-INFO,sha256=6BSOcvVZIpTyTU1dz24T2PXsYCsI-OvDy_LeMSoL-10,1273
|
8
8
|
README.md,sha256=oY5Jc1uXehRASuwUJ0umin2vfkFh7tHF-LLruHTaQx0,3560
|
9
|
-
pyproject.toml,sha256=
|
9
|
+
pyproject.toml,sha256=OE4KwC7qc4Wn8YWnyLB4yDi_ziqibPuilvcIdNhrJJA,2902
|
10
10
|
.git_hooks/pre-commit,sha256=n3RofIZHJl8zfJJIUomcMyYGFi_rwq4CC19z0snz3FI,286
|
11
11
|
.github/pull_request_template.md,sha256=F_cJXzooWMFgMGtLK-7KeGcQt0B4AYFse5oN0zQ9p6g,801
|
12
12
|
.github/ISSUE_TEMPLATE/bug_report.yml,sha256=WdRnt7HGxvsIBLzhkaOWNfg8IJQYa_oV9_F08Ym6znQ,1081
|
@@ -27,7 +27,7 @@ pyproject.toml,sha256=g_0rYxfWFe_V6RoaJwQtEAEz8MlETNPBzBRvlywaFf8,2902
|
|
27
27
|
bec_widgets/__init__.py,sha256=mZhbU6zfFt8-A7q_do74ie89budSevwpKZ6FKtEBdmo,170
|
28
28
|
bec_widgets/applications/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
29
29
|
bec_widgets/applications/bw_launch.py,sha256=4lngXb8Ht_cvQtCwjjbAoqPNuE2V0Ja5WIPHpwgjcRI,687
|
30
|
-
bec_widgets/applications/launch_window.py,sha256=
|
30
|
+
bec_widgets/applications/launch_window.py,sha256=vKuGNv47jBYlkydk5NrDcrlZhU9wehIYfu7s-IOh7ks,21862
|
31
31
|
bec_widgets/assets/app_icons/BEC-General-App.png,sha256=hc2ktly53DZAbl_rE3cb-vdRa5gtdCmBEjfwm2y5P4g,447581
|
32
32
|
bec_widgets/assets/app_icons/alignment_1d.png,sha256=5VouaWieb4lVv3wUBNHaO5ovUW2Fk25aTKYQzOWy0mg,2071069
|
33
33
|
bec_widgets/assets/app_icons/auto_update.png,sha256=YKoAJTWAlWzreYvOm0BttDRFr29tulolZgKirRhAFlA,2197066
|
@@ -38,7 +38,7 @@ bec_widgets/cli/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
38
38
|
bec_widgets/cli/client.py,sha256=GOlZajpUb1yMhAJgpsw8kjMFYIudA83l4jN7-XMSsvA,93483
|
39
39
|
bec_widgets/cli/client_utils.py,sha256=F2hyt--jL53bN8NoWifNUMqwwx5FbpS6I1apERdTRzM,18114
|
40
40
|
bec_widgets/cli/generate_cli.py,sha256=xcPNyJoa3IjddX1yEDY45tT-Cs4jO5cQLUmcEubKs44,10976
|
41
|
-
bec_widgets/cli/server.py,sha256=
|
41
|
+
bec_widgets/cli/server.py,sha256=h7QyBOOGjyrP_fxJIIOSEMc4E06cLG0JyaofjNV6oCA,5671
|
42
42
|
bec_widgets/cli/rpc/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
43
43
|
bec_widgets/cli/rpc/rpc_base.py,sha256=lqRr3IUqEKNLS_wHYrFbIr824kj6OYH6ky0Lwb-NovU,11130
|
44
44
|
bec_widgets/cli/rpc/rpc_register.py,sha256=2XBqPdMhJyWPsbV0ZVhl7YL6Yk6gh-VA8BOYi9jistM,5820
|
@@ -94,7 +94,7 @@ bec_widgets/utils/serialization.py,sha256=_SO8q0ylC0MWckT9yTbCtF0QNsRoT6ysL8WnN8
|
|
94
94
|
bec_widgets/utils/settings_dialog.py,sha256=1z6noC9k6BSIGAw12DvHHiW3LmvPquaGMjWSe5wdmek,4307
|
95
95
|
bec_widgets/utils/side_panel.py,sha256=enxcQOwJOMfD3MxgPA9mQSKSX_F6Omy2zePncYDW1FA,14193
|
96
96
|
bec_widgets/utils/thread_checker.py,sha256=rDNuA3X6KQyA7JPb67mccTg0z8YkInynLAENQDQpbuE,1607
|
97
|
-
bec_widgets/utils/toolbar.py,sha256=
|
97
|
+
bec_widgets/utils/toolbar.py,sha256=nQM2h5WqTmQDxlU4GMk6OyRJr-0_4VAKSbug7yOUwWY,40769
|
98
98
|
bec_widgets/utils/ui_loader.py,sha256=1PtGW36FWxEaHq0_T0ECLANisFyZcMDQJezEKgSwwIg,5118
|
99
99
|
bec_widgets/utils/validator_delegate.py,sha256=Emj1WF6W8Ke1ruBWUfmHdVJpmOSPezuOt4zvQTay_44,442
|
100
100
|
bec_widgets/utils/widget_io.py,sha256=afR7i59fw2WrEQCmkH5dwhz1uNjfMPnJTIhE8NWVBsU,21552
|
@@ -257,7 +257,7 @@ bec_widgets/widgets/games/minesweeper.pyproject,sha256=wHrLKY3H8uNiVgb9BIrj4S0Je
|
|
257
257
|
bec_widgets/widgets/games/minesweeper_plugin.py,sha256=oPEjSTpdIIkvuGThHxhVS8Rp47DWiaXHROtm8NJWYwo,1255
|
258
258
|
bec_widgets/widgets/games/register_minesweeper.py,sha256=8fgMBD3yB-5_eGqhG_qxpj3igXDK9WZfHrdYcA1aqz8,467
|
259
259
|
bec_widgets/widgets/plots/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
260
|
-
bec_widgets/widgets/plots/plot_base.py,sha256=
|
260
|
+
bec_widgets/widgets/plots/plot_base.py,sha256=l8qzLybw6PEBZI5gRXaLY0AX_v81e50TFxOO1Muh774,34872
|
261
261
|
bec_widgets/widgets/plots/image/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
262
262
|
bec_widgets/widgets/plots/image/image.py,sha256=FA2a583iWkDi_zydw_OYi4NEiGHXtM_O0PxxSmdgUiY,42042
|
263
263
|
bec_widgets/widgets/plots/image/image.pyproject,sha256=_sRCIu4MNgToaB4D7tUMWq3xKX6T2VoRS3UzGNIseHQ,23
|
@@ -270,7 +270,7 @@ bec_widgets/widgets/plots/image/setting_widgets/__init__.py,sha256=47DEQpj8HBSa-
|
|
270
270
|
bec_widgets/widgets/plots/image/setting_widgets/image_roi_tree.py,sha256=nlllg-yTNCjG5DxCEDSGzCNabNSTJ3TZn9mawzIiAq4,14255
|
271
271
|
bec_widgets/widgets/plots/image/toolbar_bundles/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
272
272
|
bec_widgets/widgets/plots/image/toolbar_bundles/image_selection.py,sha256=gJhDAdHB4cAsPw7E6W6Y2iR3nF_3n_v-ElGqj4TgIGo,2646
|
273
|
-
bec_widgets/widgets/plots/image/toolbar_bundles/processing.py,sha256=
|
273
|
+
bec_widgets/widgets/plots/image/toolbar_bundles/processing.py,sha256=99hgd1q86ZUhQYTTsFCk3Ml8oAEeZJy-WqdmsMO4bzA,3367
|
274
274
|
bec_widgets/widgets/plots/motor_map/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
275
275
|
bec_widgets/widgets/plots/motor_map/motor_map.py,sha256=pcQStrIJJOsxC2sW3FDMDIFmFXM94uXQVdAjPi-vBvM,29209
|
276
276
|
bec_widgets/widgets/plots/motor_map/motor_map.pyproject,sha256=KSG9y3kKpX2e9J7V9MQqlW1IoEA37tLW07gvG00x8gk,27
|
@@ -315,7 +315,7 @@ bec_widgets/widgets/plots/toolbar_bundles/save_state.py,sha256=H3fu-bRzNIycCUFb2
|
|
315
315
|
bec_widgets/widgets/plots/waveform/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
316
316
|
bec_widgets/widgets/plots/waveform/curve.py,sha256=KlcGbd60lPO9BYcca08fMhWkfx5qu4O9IbSNTwvajGM,10401
|
317
317
|
bec_widgets/widgets/plots/waveform/register_waveform.py,sha256=pdcLCYKkLkSb-5DqbJdC6M3JyoXQBRVAKf7BZVCto80,467
|
318
|
-
bec_widgets/widgets/plots/waveform/waveform.py,sha256=
|
318
|
+
bec_widgets/widgets/plots/waveform/waveform.py,sha256=tNoeqcPPv0nsJT87qSwJFv2jGATvRayxQQjAoaaLKmQ,68552
|
319
319
|
bec_widgets/widgets/plots/waveform/waveform.pyproject,sha256=X2T6d4JGt9YSI28e-myjXh1YkUM4Yr3kNb0-F84KvUA,26
|
320
320
|
bec_widgets/widgets/plots/waveform/waveform_plugin.py,sha256=2AZPtBHs75l9cdhwQnY3jpIMRPUUqK3RNvQbTvrFyvg,1237
|
321
321
|
bec_widgets/widgets/plots/waveform/settings/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
@@ -404,8 +404,8 @@ bec_widgets/widgets/utility/visual/dark_mode_button/dark_mode_button.py,sha256=O
|
|
404
404
|
bec_widgets/widgets/utility/visual/dark_mode_button/dark_mode_button.pyproject,sha256=Lbi9zb6HNlIq14k6hlzR-oz6PIFShBuF7QxE6d87d64,34
|
405
405
|
bec_widgets/widgets/utility/visual/dark_mode_button/dark_mode_button_plugin.py,sha256=CzChz2SSETYsR8-36meqWnsXCT-FIy_J_xeU5coWDY8,1350
|
406
406
|
bec_widgets/widgets/utility/visual/dark_mode_button/register_dark_mode_button.py,sha256=rMpZ1CaoucwobgPj1FuKTnt07W82bV1GaSYdoqcdMb8,521
|
407
|
-
bec_widgets-2.
|
408
|
-
bec_widgets-2.
|
409
|
-
bec_widgets-2.
|
410
|
-
bec_widgets-2.
|
411
|
-
bec_widgets-2.
|
407
|
+
bec_widgets-2.8.1.dist-info/METADATA,sha256=6BSOcvVZIpTyTU1dz24T2PXsYCsI-OvDy_LeMSoL-10,1273
|
408
|
+
bec_widgets-2.8.1.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
|
409
|
+
bec_widgets-2.8.1.dist-info/entry_points.txt,sha256=dItMzmwA1wizJ1Itx15qnfJ0ZzKVYFLVJ1voxT7K7D4,214
|
410
|
+
bec_widgets-2.8.1.dist-info/licenses/LICENSE,sha256=Daeiu871NcAp8uYi4eB_qHgvypG-HX0ioRQyQxFwjeg,1531
|
411
|
+
bec_widgets-2.8.1.dist-info/RECORD,,
|
pyproject.toml
CHANGED
File without changes
|
File without changes
|
File without changes
|