bec-widgets 2.1.0__py3-none-any.whl → 2.1.2__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.
- .gitlab-ci.yml +2 -2
- CHANGELOG.md +35 -0
- PKG-INFO +1 -1
- bec_widgets/cli/client.py +13 -0
- bec_widgets/cli/generate_cli.py +1 -0
- bec_widgets/utils/bec_designer.py +9 -5
- bec_widgets/utils/bec_dispatcher.py +15 -3
- bec_widgets/widgets/plots/waveform/waveform.py +11 -1
- bec_widgets/widgets/progress/bec_progressbar/bec_progressbar.py +5 -0
- bec_widgets/widgets/services/bec_status_box/bec_status_box.py +5 -0
- {bec_widgets-2.1.0.dist-info → bec_widgets-2.1.2.dist-info}/METADATA +1 -1
- {bec_widgets-2.1.0.dist-info → bec_widgets-2.1.2.dist-info}/RECORD +16 -16
- pyproject.toml +1 -1
- {bec_widgets-2.1.0.dist-info → bec_widgets-2.1.2.dist-info}/WHEEL +0 -0
- {bec_widgets-2.1.0.dist-info → bec_widgets-2.1.2.dist-info}/entry_points.txt +0 -0
- {bec_widgets-2.1.0.dist-info → bec_widgets-2.1.2.dist-info}/licenses/LICENSE +0 -0
.gitlab-ci.yml
CHANGED
@@ -203,7 +203,7 @@ test-matrix:
|
|
203
203
|
end-2-end-conda:
|
204
204
|
stage: End2End
|
205
205
|
needs: []
|
206
|
-
image: continuumio/miniconda3
|
206
|
+
image: continuumio/miniconda3:25.1.1-2
|
207
207
|
allow_failure: false
|
208
208
|
variables:
|
209
209
|
QT_QPA_PLATFORM: "offscreen"
|
@@ -230,7 +230,7 @@ end-2-end-conda:
|
|
230
230
|
- pip install -e ./ophyd_devices
|
231
231
|
|
232
232
|
- pip install -e .[dev,pyside6]
|
233
|
-
- pytest -v --files-path ./ --start-servers --
|
233
|
+
- pytest -v --files-path ./ --start-servers --random-order ./tests/end-2-end
|
234
234
|
|
235
235
|
artifacts:
|
236
236
|
when: on_failure
|
CHANGELOG.md
CHANGED
@@ -1,6 +1,41 @@
|
|
1
1
|
# CHANGELOG
|
2
2
|
|
3
3
|
|
4
|
+
## v2.1.2 (2025-05-06)
|
5
|
+
|
6
|
+
### Bug Fixes
|
7
|
+
|
8
|
+
- **waveform**: Ignore callbacks for on_async_readback from QtSender objects that are already
|
9
|
+
destroyed; closes #497
|
10
|
+
([`64a4824`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/64a48240546846fdf4541c2adf3a0a5a0829f948))
|
11
|
+
|
12
|
+
### Build System
|
13
|
+
|
14
|
+
- Remove flush-redis from ci job
|
15
|
+
([`a6c479e`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/a6c479e42ea2a47c45e5a323bb3072bab503ecf1))
|
16
|
+
|
17
|
+
### Refactoring
|
18
|
+
|
19
|
+
- **bec-progressbar**: Add private method for bec_progressbar, udate client file
|
20
|
+
([`37f0024`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/37f002427ad5da01164ae3b0f4983695fe61c243))
|
21
|
+
|
22
|
+
- **bec-status-box**: Add get_server_state user_access method to BECStatusBox
|
23
|
+
([`1619446`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/1619446ec9839cfa1c666a3790a0c2abc449c4a8))
|
24
|
+
|
25
|
+
|
26
|
+
## v2.1.1 (2025-05-06)
|
27
|
+
|
28
|
+
### Bug Fixes
|
29
|
+
|
30
|
+
- Import add operator in client
|
31
|
+
([`55f7efc`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/55f7efc4f586128dfb66fc6a8eb5d3a9f32bf61e))
|
32
|
+
|
33
|
+
### Refactoring
|
34
|
+
|
35
|
+
- Supply bec designer filename to function
|
36
|
+
([`be72c9f`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/be72c9f2708c93dab24d4383f5622e38cf1dc8a2))
|
37
|
+
|
38
|
+
|
4
39
|
## v2.1.0 (2025-05-05)
|
5
40
|
|
6
41
|
### Bug Fixes
|
PKG-INFO
CHANGED
bec_widgets/cli/client.py
CHANGED
@@ -7,6 +7,7 @@ import enum
|
|
7
7
|
import inspect
|
8
8
|
import traceback
|
9
9
|
from functools import reduce
|
10
|
+
from operator import add
|
10
11
|
from typing import Literal, Optional
|
11
12
|
|
12
13
|
from bec_lib.logger import bec_logger
|
@@ -469,6 +470,12 @@ class BECProgressBar(RPCBase):
|
|
469
470
|
>>> progressbar.label_template = "$value / $percentage %"
|
470
471
|
"""
|
471
472
|
|
473
|
+
@rpc_call
|
474
|
+
def _get_label(self) -> str:
|
475
|
+
"""
|
476
|
+
Return the label text. mostly used for testing rpc.
|
477
|
+
"""
|
478
|
+
|
472
479
|
|
473
480
|
class BECQueue(RPCBase):
|
474
481
|
"""Widget to display the BEC queue."""
|
@@ -483,6 +490,12 @@ class BECQueue(RPCBase):
|
|
483
490
|
class BECStatusBox(RPCBase):
|
484
491
|
"""An autonomous widget to display the status of BEC services."""
|
485
492
|
|
493
|
+
@rpc_call
|
494
|
+
def get_server_state(self) -> "str":
|
495
|
+
"""
|
496
|
+
Get the state ("RUNNING", "BUSY", "IDLE", "ERROR") of the BEC server
|
497
|
+
"""
|
498
|
+
|
486
499
|
@rpc_call
|
487
500
|
def remove(self):
|
488
501
|
"""
|
bec_widgets/cli/generate_cli.py
CHANGED
@@ -16,9 +16,9 @@ if PYSIDE6:
|
|
16
16
|
from PySide6.scripts.pyside_tool import (
|
17
17
|
_extend_path_var,
|
18
18
|
init_virtual_env,
|
19
|
-
qt_tool_wrapper,
|
20
19
|
is_pyenv_python,
|
21
20
|
is_virtual_env,
|
21
|
+
qt_tool_wrapper,
|
22
22
|
ui_tool_binary,
|
23
23
|
)
|
24
24
|
|
@@ -78,7 +78,7 @@ def list_editable_packages() -> set[str]:
|
|
78
78
|
return editable_packages
|
79
79
|
|
80
80
|
|
81
|
-
def patch_designer(): # pragma: no cover
|
81
|
+
def patch_designer(cmd_args: list[str] = []): # pragma: no cover
|
82
82
|
if not PYSIDE6:
|
83
83
|
print("PYSIDE6 is not available in the environment. Cannot patch designer.")
|
84
84
|
return
|
@@ -119,7 +119,7 @@ def patch_designer(): # pragma: no cover
|
|
119
119
|
editable_packages = list_editable_packages()
|
120
120
|
for pckg in editable_packages:
|
121
121
|
_extend_path_var("PYTHONPATH", pckg, True)
|
122
|
-
qt_tool_wrapper(ui_tool_binary("designer"),
|
122
|
+
qt_tool_wrapper(ui_tool_binary("designer"), cmd_args)
|
123
123
|
|
124
124
|
|
125
125
|
def find_plugin_paths(base_path: Path):
|
@@ -147,7 +147,7 @@ def set_plugin_environment_variable(plugin_paths):
|
|
147
147
|
|
148
148
|
|
149
149
|
# Patch the designer function
|
150
|
-
def
|
150
|
+
def open_designer(cmd_args: list[str] = []): # pragma: no cover
|
151
151
|
if not PYSIDE6:
|
152
152
|
print("PYSIDE6 is not available in the environment. Exiting...")
|
153
153
|
return
|
@@ -160,7 +160,11 @@ def main(): # pragma: no cover
|
|
160
160
|
|
161
161
|
set_plugin_environment_variable(plugin_paths)
|
162
162
|
|
163
|
-
patch_designer()
|
163
|
+
patch_designer(cmd_args)
|
164
|
+
|
165
|
+
|
166
|
+
def main():
|
167
|
+
open_designer(sys.argv[1:])
|
164
168
|
|
165
169
|
|
166
170
|
if __name__ == "__main__": # pragma: no cover
|
@@ -25,10 +25,20 @@ if TYPE_CHECKING: # pragma: no cover
|
|
25
25
|
|
26
26
|
|
27
27
|
class QtThreadSafeCallback(QObject):
|
28
|
+
"""QtThreadSafeCallback is a wrapper around a callback function to make it thread-safe for Qt."""
|
29
|
+
|
28
30
|
cb_signal = pyqtSignal(dict, dict)
|
29
31
|
|
30
|
-
def __init__(self, cb):
|
32
|
+
def __init__(self, cb: Callable, cb_info: dict | None = None):
|
33
|
+
"""
|
34
|
+
Initialize the QtThreadSafeCallback.
|
35
|
+
|
36
|
+
Args:
|
37
|
+
cb (Callable): The callback function to be wrapped.
|
38
|
+
cb_info (dict, optional): Additional information about the callback. Defaults to None.
|
39
|
+
"""
|
31
40
|
super().__init__()
|
41
|
+
self.cb_info = cb_info
|
32
42
|
|
33
43
|
self.cb = cb
|
34
44
|
self.cb_signal.connect(self.cb)
|
@@ -37,7 +47,7 @@ class QtThreadSafeCallback(QObject):
|
|
37
47
|
# make 2 differents QtThreadSafeCallback to look
|
38
48
|
# identical when used as dictionary keys, if the
|
39
49
|
# callback is the same
|
40
|
-
return id(self.cb)
|
50
|
+
return f"{id(self.cb)}{self.cb_info}".__hash__()
|
41
51
|
|
42
52
|
def __call__(self, msg_content, metadata):
|
43
53
|
self.cb_signal.emit(msg_content, metadata)
|
@@ -141,6 +151,7 @@ class BECDispatcher:
|
|
141
151
|
self,
|
142
152
|
slot: Callable,
|
143
153
|
topics: Union[EndpointInfo, str, list[Union[EndpointInfo, str]]],
|
154
|
+
cb_info: dict | None = None,
|
144
155
|
**kwargs,
|
145
156
|
) -> None:
|
146
157
|
"""Connect widget's qt slot, so that it is called on new pub/sub topic message.
|
@@ -149,8 +160,9 @@ class BECDispatcher:
|
|
149
160
|
slot (Callable): A slot method/function that accepts two inputs: content and metadata of
|
150
161
|
the corresponding pub/sub message
|
151
162
|
topics (EndpointInfo | str | list): A topic or list of topics that can typically be acquired via bec_lib.MessageEndpoints
|
163
|
+
cb_info (dict | None): A dictionary containing information about the callback. Defaults to None.
|
152
164
|
"""
|
153
|
-
slot = QtThreadSafeCallback(slot)
|
165
|
+
slot = QtThreadSafeCallback(cb=slot, cb_info=cb_info)
|
154
166
|
self.client.connector.register(topics, cb=slot, **kwargs)
|
155
167
|
topics_str, _ = self.client.connector._convert_endpointinfo(topics)
|
156
168
|
self._slots[slot].update(set(topics_str))
|
@@ -1182,10 +1182,11 @@ class Waveform(PlotBase):
|
|
1182
1182
|
self.on_async_readback,
|
1183
1183
|
MessageEndpoints.device_async_readback(self.scan_id, name),
|
1184
1184
|
from_start=True,
|
1185
|
+
cb_info={"scan_id": self.scan_id},
|
1185
1186
|
)
|
1186
1187
|
logger.info(f"Setup async curve {name}")
|
1187
1188
|
|
1188
|
-
@SafeSlot(dict, dict)
|
1189
|
+
@SafeSlot(dict, dict, verify_sender=True)
|
1189
1190
|
def on_async_readback(self, msg, metadata):
|
1190
1191
|
"""
|
1191
1192
|
Get async data readback. This code needs to be fast, therefor we try
|
@@ -1204,6 +1205,14 @@ class Waveform(PlotBase):
|
|
1204
1205
|
msg(dict): Message with the async data.
|
1205
1206
|
metadata(dict): Metadata of the message.
|
1206
1207
|
"""
|
1208
|
+
sender = self.sender()
|
1209
|
+
if not hasattr(sender, "cb_info"):
|
1210
|
+
logger.info(f"Sender {sender} has no cb_info.")
|
1211
|
+
return
|
1212
|
+
scan_id = sender.cb_info.get("scan_id", None)
|
1213
|
+
if scan_id != self.scan_id:
|
1214
|
+
logger.info("Scan ID mismatch, ignoring async readback.")
|
1215
|
+
|
1207
1216
|
instruction = metadata.get("async_update", {}).get("type")
|
1208
1217
|
if instruction not in ["add", "add_slice", "replace"]:
|
1209
1218
|
logger.warning(f"Invalid async update instruction: {instruction}")
|
@@ -1212,6 +1221,7 @@ class Waveform(PlotBase):
|
|
1212
1221
|
plot_mode = self.x_axis_mode["name"]
|
1213
1222
|
for curve in self._async_curves:
|
1214
1223
|
x_data = None # Reset x_data
|
1224
|
+
y_data = None # Reset y_data
|
1215
1225
|
# Get the curve data
|
1216
1226
|
async_data = msg["signals"].get(curve.config.signal.entry, None)
|
1217
1227
|
if async_data is None:
|
@@ -21,6 +21,7 @@ class BECProgressBar(BECWidget, QWidget):
|
|
21
21
|
"set_minimum",
|
22
22
|
"label_template",
|
23
23
|
"label_template.setter",
|
24
|
+
"_get_label",
|
24
25
|
]
|
25
26
|
ICON_NAME = "page_control"
|
26
27
|
|
@@ -235,6 +236,10 @@ class BECProgressBar(BECWidget, QWidget):
|
|
235
236
|
(value - self._user_minimum) / (self._user_maximum - self._user_minimum) * self._maximum
|
236
237
|
)
|
237
238
|
|
239
|
+
def _get_label(self) -> str:
|
240
|
+
"""Return the label text. mostly used for testing rpc."""
|
241
|
+
return self.center_label.text()
|
242
|
+
|
238
243
|
|
239
244
|
if __name__ == "__main__": # pragma: no cover
|
240
245
|
app = QApplication(sys.argv)
|
@@ -76,6 +76,7 @@ class BECStatusBox(BECWidget, CompactPopupWidget):
|
|
76
76
|
|
77
77
|
PLUGIN = True
|
78
78
|
CORE_SERVICES = ["DeviceServer", "ScanServer", "SciHub", "ScanBundler", "FileWriterManager"]
|
79
|
+
USER_ACCESS = ["get_server_state", "remove"]
|
79
80
|
|
80
81
|
service_update = Signal(BECServiceInfoContainer)
|
81
82
|
bec_core_state = Signal(str)
|
@@ -134,6 +135,10 @@ class BECStatusBox(BECWidget, CompactPopupWidget):
|
|
134
135
|
"QTreeWidget::item:selected {}"
|
135
136
|
)
|
136
137
|
|
138
|
+
def get_server_state(self) -> str:
|
139
|
+
"""Get the state ("RUNNING", "BUSY", "IDLE", "ERROR") of the BEC server"""
|
140
|
+
return self.status_container[self.box_name]["info"].status
|
141
|
+
|
137
142
|
def _create_status_widget(
|
138
143
|
self, service_name: str, status=BECStatus, info: dict = None, metrics: dict = None
|
139
144
|
) -> StatusItem:
|
@@ -1,12 +1,12 @@
|
|
1
1
|
.gitignore,sha256=cMQ1MLmnoR88aMCCJwUyfoTnufzl4-ckmHtlFUqHcT4,3253
|
2
|
-
.gitlab-ci.yml,sha256=
|
2
|
+
.gitlab-ci.yml,sha256=1nMYldzVk0tFkBWYTcUjumOrdSADASheWOAc0kOFDYs,9509
|
3
3
|
.pylintrc,sha256=eeY8YwSI74oFfq6IYIbCqnx3Vk8ZncKaatv96n_Y8Rs,18544
|
4
4
|
.readthedocs.yaml,sha256=aSOc277LqXcsTI6lgvm_JY80lMlr69GbPKgivua2cS0,603
|
5
|
-
CHANGELOG.md,sha256
|
5
|
+
CHANGELOG.md,sha256=-NKbjMkJw5Y_NGzR5o_NSDUEBJk2lbLqIbrlq0EKzps,271406
|
6
6
|
LICENSE,sha256=YRKe85CBRyP7UpEAWwU8_qSIyuy5-l_9C-HKg5Qm8MQ,1511
|
7
|
-
PKG-INFO,sha256=
|
7
|
+
PKG-INFO,sha256=5sfOavPZf4UvV9AqHkiwbsUmR1ANqIBkHSMDcMKRdO0,1224
|
8
8
|
README.md,sha256=KgdKusjlvEvFtdNZCeDMO91y77MWK2iDcYMDziksOr4,2553
|
9
|
-
pyproject.toml,sha256=
|
9
|
+
pyproject.toml,sha256=BqRAPn18d8SH92IHfQeZcguEYPoXMIptC2JFn-Y-M6w,2568
|
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
|
@@ -22,9 +22,9 @@ bec_widgets/assets/app_icons/auto_update.png,sha256=YKoAJTWAlWzreYvOm0BttDRFr29t
|
|
22
22
|
bec_widgets/assets/app_icons/bec_widgets_icon.png,sha256=K8dgGwIjalDh9PRHUsSQBqgdX7a00nM3igZdc20pkYM,1747017
|
23
23
|
bec_widgets/assets/app_icons/ui_loader_tile.png,sha256=qSK3XHqvnAVGV9Q0ulORcGFbXJ9LDq2uz8l9uTtMsNk,1812476
|
24
24
|
bec_widgets/cli/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
25
|
-
bec_widgets/cli/client.py,sha256=
|
25
|
+
bec_widgets/cli/client.py,sha256=2Z0ihxMONJChLuhMxaRon0gNsnbuhTz4jlsSg-xAKEk,80350
|
26
26
|
bec_widgets/cli/client_utils.py,sha256=F2hyt--jL53bN8NoWifNUMqwwx5FbpS6I1apERdTRzM,18114
|
27
|
-
bec_widgets/cli/generate_cli.py,sha256=
|
27
|
+
bec_widgets/cli/generate_cli.py,sha256=xcPNyJoa3IjddX1yEDY45tT-Cs4jO5cQLUmcEubKs44,10976
|
28
28
|
bec_widgets/cli/server.py,sha256=lYEkOaokLbND4KjbXyySzb5nq3YQ6m4L0NAmHAjMCIU,5633
|
29
29
|
bec_widgets/cli/rpc/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
30
30
|
bec_widgets/cli/rpc/rpc_base.py,sha256=lqRr3IUqEKNLS_wHYrFbIr824kj6OYH6ky0Lwb-NovU,11130
|
@@ -48,8 +48,8 @@ bec_widgets/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU
|
|
48
48
|
bec_widgets/tests/utils.py,sha256=GbQtN7qf9n-8FoAfNddZ4aAqA7oBo_hGAlnKELd6Xzw,6943
|
49
49
|
bec_widgets/utils/__init__.py,sha256=1930ji1Jj6dVuY81Wd2kYBhHYNV-2R0bN_L4o9zBj1U,533
|
50
50
|
bec_widgets/utils/bec_connector.py,sha256=Ao_DN6oiHlpbVDHDK0RLpAgz2zDbhmwYee8yc3y7m2g,18875
|
51
|
-
bec_widgets/utils/bec_designer.py,sha256=
|
52
|
-
bec_widgets/utils/bec_dispatcher.py,sha256=
|
51
|
+
bec_widgets/utils/bec_designer.py,sha256=ehNl_i743rijmhPiIGNd1bihE7-l4oJzTVoa4yjPjls,5426
|
52
|
+
bec_widgets/utils/bec_dispatcher.py,sha256=Zv2D0Ah0ZmXBNk8AbdHD2osHgTXqkvw51I_iCrSmVYA,8990
|
53
53
|
bec_widgets/utils/bec_plugin_helper.py,sha256=efg97QDAqhZYeqE1wk3vEgkFuhNewg4rvJrtB7mRCAE,3139
|
54
54
|
bec_widgets/utils/bec_signal_proxy.py,sha256=Yc08fdBEDABrowwNPSngT9-28R8FD4ml7oTL6BoMyEE,3263
|
55
55
|
bec_widgets/utils/bec_table.py,sha256=nA2b8ukSeUfquFMAxGrUVOqdrzMoDYD6O_4EYbOG2zk,717
|
@@ -293,7 +293,7 @@ bec_widgets/widgets/plots/toolbar_bundles/save_state.py,sha256=H3fu-bRzNIycCUFb2
|
|
293
293
|
bec_widgets/widgets/plots/waveform/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
294
294
|
bec_widgets/widgets/plots/waveform/curve.py,sha256=KlcGbd60lPO9BYcca08fMhWkfx5qu4O9IbSNTwvajGM,10401
|
295
295
|
bec_widgets/widgets/plots/waveform/register_waveform.py,sha256=pdcLCYKkLkSb-5DqbJdC6M3JyoXQBRVAKf7BZVCto80,467
|
296
|
-
bec_widgets/widgets/plots/waveform/waveform.py,sha256=
|
296
|
+
bec_widgets/widgets/plots/waveform/waveform.py,sha256=RvdHWyWVl6_xaLclts2GoKsWvTqHEvJKBpq2gley2xA,68480
|
297
297
|
bec_widgets/widgets/plots/waveform/waveform.pyproject,sha256=X2T6d4JGt9YSI28e-myjXh1YkUM4Yr3kNb0-F84KvUA,26
|
298
298
|
bec_widgets/widgets/plots/waveform/waveform_plugin.py,sha256=2AZPtBHs75l9cdhwQnY3jpIMRPUUqK3RNvQbTvrFyvg,1237
|
299
299
|
bec_widgets/widgets/plots/waveform/settings/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
@@ -306,7 +306,7 @@ bec_widgets/widgets/progress/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NM
|
|
306
306
|
bec_widgets/widgets/progress/bec_progressbar/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
307
307
|
bec_widgets/widgets/progress/bec_progressbar/bec_progress_bar.pyproject,sha256=Pb3n9seM95_8myKJ0pv_9IcfJDNJJNOFBskuRdEVzhU,33
|
308
308
|
bec_widgets/widgets/progress/bec_progressbar/bec_progress_bar_plugin.py,sha256=_iVMn5G2detLmYxVzY-rwUBY2S8CWF4TSrjlEcs4LOs,1361
|
309
|
-
bec_widgets/widgets/progress/bec_progressbar/bec_progressbar.py,sha256=
|
309
|
+
bec_widgets/widgets/progress/bec_progressbar/bec_progressbar.py,sha256=W0EXctfBgt9mGKlNa2fa7ucfXhljEG2p5_s3iKT_atI,8149
|
310
310
|
bec_widgets/widgets/progress/bec_progressbar/register_bec_progress_bar.py,sha256=HLXS4ctm-mL6QRtG8yjplsywAXXelDJv2kwUUOgfi2o,514
|
311
311
|
bec_widgets/widgets/progress/ring_progress_bar/__init__.py,sha256=_uoJKnDM2YAeUBfwc5WLbIHSJj7zm_FAurSKP3WRaCw,47
|
312
312
|
bec_widgets/widgets/progress/ring_progress_bar/register_ring_progress_bar.py,sha256=83PNZ-m5VqlAH51RCDtKN9hK2GVbrmiepFJzR7SvR64,519
|
@@ -321,7 +321,7 @@ bec_widgets/widgets/services/bec_queue/bec_queue.pyproject,sha256=VhoNmAv1DQUl9d
|
|
321
321
|
bec_widgets/widgets/services/bec_queue/bec_queue_plugin.py,sha256=0gznimXzpfJYQ5NWw9Ryulr7ZFwoi6c14Ri-Y16F9Sw,1350
|
322
322
|
bec_widgets/widgets/services/bec_queue/register_bec_queue.py,sha256=MHPwjb4Hcg0Qp-F4ID6ZTXaMrtpmgLagHTaacOTxPqA,472
|
323
323
|
bec_widgets/widgets/services/bec_status_box/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
324
|
-
bec_widgets/widgets/services/bec_status_box/bec_status_box.py,sha256=
|
324
|
+
bec_widgets/widgets/services/bec_status_box/bec_status_box.py,sha256=fS55Z9QByVgCoM1CJBXvPCmWctCmYiu20lbLpDqrdUs,13521
|
325
325
|
bec_widgets/widgets/services/bec_status_box/bec_status_box.pyproject,sha256=JWtx3Csfn2h7ODtk10HtyBNLf6tFIqyU6g04rMWOO1U,32
|
326
326
|
bec_widgets/widgets/services/bec_status_box/bec_status_box_plugin.py,sha256=2tBPwcEIlQa_fH9lNiwgSqzU23g8VSwEvNvTVmHQA_U,1421
|
327
327
|
bec_widgets/widgets/services/bec_status_box/register_bec_status_box.py,sha256=_1gr5nid6D5ZEvvt-GPyXhEGfacSh_QW0oWKxmZrUmY,490
|
@@ -377,8 +377,8 @@ bec_widgets/widgets/utility/visual/dark_mode_button/dark_mode_button.py,sha256=O
|
|
377
377
|
bec_widgets/widgets/utility/visual/dark_mode_button/dark_mode_button.pyproject,sha256=Lbi9zb6HNlIq14k6hlzR-oz6PIFShBuF7QxE6d87d64,34
|
378
378
|
bec_widgets/widgets/utility/visual/dark_mode_button/dark_mode_button_plugin.py,sha256=CzChz2SSETYsR8-36meqWnsXCT-FIy_J_xeU5coWDY8,1350
|
379
379
|
bec_widgets/widgets/utility/visual/dark_mode_button/register_dark_mode_button.py,sha256=rMpZ1CaoucwobgPj1FuKTnt07W82bV1GaSYdoqcdMb8,521
|
380
|
-
bec_widgets-2.1.
|
381
|
-
bec_widgets-2.1.
|
382
|
-
bec_widgets-2.1.
|
383
|
-
bec_widgets-2.1.
|
384
|
-
bec_widgets-2.1.
|
380
|
+
bec_widgets-2.1.2.dist-info/METADATA,sha256=5sfOavPZf4UvV9AqHkiwbsUmR1ANqIBkHSMDcMKRdO0,1224
|
381
|
+
bec_widgets-2.1.2.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
|
382
|
+
bec_widgets-2.1.2.dist-info/entry_points.txt,sha256=dItMzmwA1wizJ1Itx15qnfJ0ZzKVYFLVJ1voxT7K7D4,214
|
383
|
+
bec_widgets-2.1.2.dist-info/licenses/LICENSE,sha256=YRKe85CBRyP7UpEAWwU8_qSIyuy5-l_9C-HKg5Qm8MQ,1511
|
384
|
+
bec_widgets-2.1.2.dist-info/RECORD,,
|
pyproject.toml
CHANGED
File without changes
|
File without changes
|
File without changes
|