bec-widgets 0.56.0__py3-none-any.whl → 0.56.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.
- CHANGELOG.md +26 -33
- PKG-INFO +1 -1
- bec_widgets/cli/client.py +20 -0
- bec_widgets/widgets/dock/dock.py +6 -2
- bec_widgets/widgets/dock/dock_area.py +8 -3
- bec_widgets/widgets/figure/figure.py +1 -1
- bec_widgets/widgets/spiral_progress_bar/ring.py +7 -7
- bec_widgets/widgets/spiral_progress_bar/spiral_progress_bar.py +1 -2
- {bec_widgets-0.56.0.dist-info → bec_widgets-0.56.2.dist-info}/METADATA +1 -1
- {bec_widgets-0.56.0.dist-info → bec_widgets-0.56.2.dist-info}/RECORD +33 -23
- docs/_static/custom.css +170 -0
- docs/{developer/reference.md → api_reference/api_reference.md} +3 -1
- docs/assets/apps_48dp.svg +1 -0
- docs/assets/display_settings_48dp.svg +1 -0
- docs/assets/index_api.svg +97 -0
- docs/assets/index_contribute.svg +76 -0
- docs/assets/index_getting_started.svg +66 -0
- docs/assets/index_user_guide.svg +67 -0
- docs/assets/rocket_launch_48dp.svg +1 -0
- docs/conf.py +3 -3
- docs/developer/developer.md +0 -8
- docs/index.md +39 -8
- docs/user/api_reference/api_reference.md +11 -0
- docs/user/{apps.md → applications/applications.md} +1 -1
- docs/user/getting_started/getting_started.md +12 -0
- docs/user/{installation.md → getting_started/installation.md} +1 -1
- docs/user/user.md +51 -22
- docs/user/{widgets.md → widgets/widgets.md} +3 -3
- pyproject.toml +1 -1
- tests/end-2-end/test_bec_dock_rpc_e2e.py +5 -5
- tests/unit_tests/test_spiral_progress_bar.py +5 -5
- {bec_widgets-0.56.0.dist-info → bec_widgets-0.56.2.dist-info}/WHEEL +0 -0
- {bec_widgets-0.56.0.dist-info → bec_widgets-0.56.2.dist-info}/licenses/LICENSE +0 -0
CHANGELOG.md
CHANGED
@@ -2,6 +2,32 @@
|
|
2
2
|
|
3
3
|
|
4
4
|
|
5
|
+
## v0.56.2 (2024-06-05)
|
6
|
+
|
7
|
+
### Documentation
|
8
|
+
|
9
|
+
* docs: restructured docs layout ([`3c9181d`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/3c9181d93d68faa4efb3b91c486ca9ca935975a0))
|
10
|
+
|
11
|
+
### Fix
|
12
|
+
|
13
|
+
* fix(bar): ring saves current value in config ([`9648e3e`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/9648e3ea96a4109be6be694d855151ed6d3ad661))
|
14
|
+
|
15
|
+
* fix(dock): dock saves configs of all children widgets ([`4be756a`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/4be756a8676421c3a3451458995232407295df84))
|
16
|
+
|
17
|
+
* fix(dock_area): save/restore state is saved in config ([`46face0`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/46face0ee59122f04cb383da685a6658beeeb389))
|
18
|
+
|
19
|
+
* fix(figure): added correct types of configs to subplot widgets ([`6f3b1ea`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/6f3b1ea985c18929b9bab54239eeb600f03b274a))
|
20
|
+
|
21
|
+
|
22
|
+
## v0.56.1 (2024-06-04)
|
23
|
+
|
24
|
+
### Fix
|
25
|
+
|
26
|
+
* fix(spiral_progress_bar/rings): config min/max values added check for floats ([`9d615c9`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/9d615c915c8f7cc2ea8f1dc17993b98fe462c682))
|
27
|
+
|
28
|
+
* fix(spiral_progress_bar): Endpoint is always stored as a string in the RingConnection Config ([`d253991`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/d2539918b296559e1d684344e179775a2423daa9))
|
29
|
+
|
30
|
+
|
5
31
|
## v0.56.0 (2024-05-29)
|
6
32
|
|
7
33
|
### Build
|
@@ -141,10 +167,6 @@
|
|
141
167
|
|
142
168
|
* build(cli): changed repo name to bec_widgets ([`799ea55`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/799ea554de9a7f3720d100be4886a63f02c6a390))
|
143
169
|
|
144
|
-
* build(setup): fakeredis added to dev env ([`df32350`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/df323504fea024a97304d96c2e39e61450714069))
|
145
|
-
|
146
|
-
* build(setup): PyQt6 version is set to 6.7 ([`0ab8aa3`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/0ab8aa3a2fe51b5c38b25fca44c1c422bb42478d))
|
147
|
-
|
148
170
|
### Ci
|
149
171
|
|
150
172
|
* ci: added rule for parent-child pipelines ([`e085125`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/e0851250eecb85503db929d37f75d2ba366308a6))
|
@@ -152,32 +174,3 @@
|
|
152
174
|
### Feature
|
153
175
|
|
154
176
|
* feat(utils): added plugin helper to find and load ([`5ece269`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/5ece269adb0e9b0c2a468f1dfbaa6212e86d3561))
|
155
|
-
|
156
|
-
|
157
|
-
## v0.50.2 (2024-04-30)
|
158
|
-
|
159
|
-
### Fix
|
160
|
-
|
161
|
-
* fix: 'disconnect_slot' has to be symmetric with 'connect_slot' regarding QtThreadSafeCallback ([`0dfcaa4`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/0dfcaa4b708948af0a40ec7cf34d03ff1e96ffac))
|
162
|
-
|
163
|
-
|
164
|
-
## v0.50.1 (2024-04-29)
|
165
|
-
|
166
|
-
### Fix
|
167
|
-
|
168
|
-
* fix(cli): BECFigure takes the port to connect to redis from the current BECClient, supporting plugins ([`57cb136`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/57cb136a098e87a452414bf44e627edb562f6799))
|
169
|
-
|
170
|
-
|
171
|
-
## v0.50.0 (2024-04-29)
|
172
|
-
|
173
|
-
### Fix
|
174
|
-
|
175
|
-
* fix(widgets/figure): access pattern changed for getting widgets by coordinates for rpc ([`13c018a`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/13c018a79704a7497c140df57179d294e43ecffa))
|
176
|
-
|
177
|
-
* fix(plots): cleanup policy reviewed for children items ([`8f20a0b`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/8f20a0b3b1b5dd117b36b45645717190b9ee9cbf))
|
178
|
-
|
179
|
-
### Test
|
180
|
-
|
181
|
-
* test(cli/rpc_register): e2e RPCRegister ([`4f261be`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/4f261be4c7cfe54501443d031f9266f4f838f6e2))
|
182
|
-
|
183
|
-
* test(cli/rpc_register): rpc_register tests added ([`40eb75f`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/40eb75f85a4d99d498b086a37e799276a9d2ac3f))
|
PKG-INFO
CHANGED
bec_widgets/cli/client.py
CHANGED
@@ -1410,6 +1410,16 @@ class BECMotorMap(RPCBase):
|
|
1410
1410
|
|
1411
1411
|
|
1412
1412
|
class BECDock(RPCBase):
|
1413
|
+
@property
|
1414
|
+
@rpc_call
|
1415
|
+
def config_dict(self) -> "dict":
|
1416
|
+
"""
|
1417
|
+
Get the configuration of the widget.
|
1418
|
+
|
1419
|
+
Returns:
|
1420
|
+
dict: The configuration of the widget.
|
1421
|
+
"""
|
1422
|
+
|
1413
1423
|
@property
|
1414
1424
|
@rpc_call
|
1415
1425
|
def rpc_id(self) -> "str":
|
@@ -1528,6 +1538,16 @@ class BECDock(RPCBase):
|
|
1528
1538
|
|
1529
1539
|
|
1530
1540
|
class BECDockArea(RPCBase, BECGuiClientMixin):
|
1541
|
+
@property
|
1542
|
+
@rpc_call
|
1543
|
+
def config_dict(self) -> "dict":
|
1544
|
+
"""
|
1545
|
+
Get the configuration of the widget.
|
1546
|
+
|
1547
|
+
Returns:
|
1548
|
+
dict: The configuration of the widget.
|
1549
|
+
"""
|
1550
|
+
|
1531
1551
|
@property
|
1532
1552
|
@rpc_call
|
1533
1553
|
def panels(self) -> "dict":
|
bec_widgets/widgets/dock/dock.py
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
from __future__ import annotations
|
2
2
|
|
3
|
-
from typing import TYPE_CHECKING, Literal, Optional
|
3
|
+
from typing import TYPE_CHECKING, Any, Literal, Optional
|
4
4
|
|
5
5
|
from pydantic import Field
|
6
6
|
from pyqtgraph.dockarea import Dock
|
@@ -15,7 +15,7 @@ if TYPE_CHECKING:
|
|
15
15
|
|
16
16
|
|
17
17
|
class DockConfig(ConnectionConfig):
|
18
|
-
widgets: dict[str,
|
18
|
+
widgets: dict[str, Any] = Field({}, description="The widgets in the dock.")
|
19
19
|
position: Literal["bottom", "top", "left", "right", "above", "below"] = Field(
|
20
20
|
"bottom", description="The position of the dock."
|
21
21
|
)
|
@@ -26,6 +26,7 @@ class DockConfig(ConnectionConfig):
|
|
26
26
|
|
27
27
|
class BECDock(BECConnector, Dock):
|
28
28
|
USER_ACCESS = [
|
29
|
+
"config_dict",
|
29
30
|
"rpc_id",
|
30
31
|
"widget_list",
|
31
32
|
"show_title_bar",
|
@@ -179,6 +180,7 @@ class BECDock(BECConnector, Dock):
|
|
179
180
|
|
180
181
|
widget = RPCWidgetHandler.create_widget(widget_type)
|
181
182
|
self.addWidget(widget, row=row, col=col, rowspan=rowspan, colspan=colspan)
|
183
|
+
self.config.widgets[widget.gui_id] = widget.config
|
182
184
|
|
183
185
|
return widget
|
184
186
|
|
@@ -209,6 +211,7 @@ class BECDock(BECConnector, Dock):
|
|
209
211
|
self.layout_manager.shift_widgets(shift, start_row=row)
|
210
212
|
|
211
213
|
self.addWidget(widget, row=row, col=col, rowspan=rowspan, colspan=colspan)
|
214
|
+
self.config.widgets[widget.gui_id] = widget.config
|
212
215
|
|
213
216
|
def move_widget(self, widget: QWidget, new_row: int, new_col: int):
|
214
217
|
"""
|
@@ -242,6 +245,7 @@ class BECDock(BECConnector, Dock):
|
|
242
245
|
"""
|
243
246
|
widget = self.rpc_register.get_rpc_by_id(widget_rpc_id)
|
244
247
|
self.layout.removeWidget(widget)
|
248
|
+
self.config.widgets.pop(widget_rpc_id, None)
|
245
249
|
widget.close()
|
246
250
|
|
247
251
|
def remove(self):
|
@@ -16,10 +16,14 @@ from .dock import BECDock, DockConfig
|
|
16
16
|
|
17
17
|
class DockAreaConfig(ConnectionConfig):
|
18
18
|
docks: dict[str, DockConfig] = Field({}, description="The docks in the dock area.")
|
19
|
+
docks_state: Optional[dict] = Field(
|
20
|
+
None, description="The state of the docks in the dock area."
|
21
|
+
)
|
19
22
|
|
20
23
|
|
21
24
|
class BECDockArea(BECConnector, DockArea):
|
22
25
|
USER_ACCESS = [
|
26
|
+
"config_dict",
|
23
27
|
"panels",
|
24
28
|
"save_state",
|
25
29
|
"remove_dock",
|
@@ -81,7 +85,7 @@ class BECDockArea(BECConnector, DockArea):
|
|
81
85
|
extra(str): Extra docks that are in the dockarea but that are not mentioned in state will be added to the bottom of the dockarea, unless otherwise specified by the extra argument.
|
82
86
|
"""
|
83
87
|
if state is None:
|
84
|
-
state = self.
|
88
|
+
state = self.config.docks_state
|
85
89
|
self.restoreState(state, missing=missing, extra=extra)
|
86
90
|
|
87
91
|
def save_state(self) -> dict:
|
@@ -91,8 +95,9 @@ class BECDockArea(BECConnector, DockArea):
|
|
91
95
|
Returns:
|
92
96
|
dict: The state of the dock area.
|
93
97
|
"""
|
94
|
-
|
95
|
-
|
98
|
+
last_state = self.saveState()
|
99
|
+
self.config.docks_state = last_state
|
100
|
+
return last_state
|
96
101
|
|
97
102
|
def remove_dock(self, name: str):
|
98
103
|
"""
|
@@ -26,7 +26,7 @@ class FigureConfig(ConnectionConfig):
|
|
26
26
|
theme: Literal["dark", "light"] = Field("dark", description="The theme of the figure widget.")
|
27
27
|
num_cols: int = Field(1, description="The number of columns in the figure widget.")
|
28
28
|
num_rows: int = Field(1, description="The number of rows in the figure widget.")
|
29
|
-
widgets: dict[str, SubplotConfig] = Field(
|
29
|
+
widgets: dict[str, Waveform1DConfig | ImageConfig | MotorMapConfig | SubplotConfig] = Field(
|
30
30
|
{}, description="The list of widgets to be added to the figure widget."
|
31
31
|
)
|
32
32
|
|
@@ -17,16 +17,16 @@ class RingConnections(BaseModel):
|
|
17
17
|
@field_validator("endpoint")
|
18
18
|
def validate_endpoint(cls, v, values):
|
19
19
|
slot = values.data["slot"]
|
20
|
-
|
20
|
+
v = v.endpoint if isinstance(v, EndpointInfo) else v
|
21
21
|
if slot == "on_scan_progress":
|
22
|
-
if
|
22
|
+
if v != "scans/scan_progress":
|
23
23
|
raise PydanticCustomError(
|
24
24
|
"unsupported endpoint",
|
25
25
|
"For slot 'on_scan_progress', endpoint must be MessageEndpoint.scan_progress or 'scans/scan_progress'.",
|
26
26
|
{"wrong_value": v},
|
27
27
|
)
|
28
28
|
elif slot == "on_device_readback":
|
29
|
-
if not
|
29
|
+
if not v.startswith("internal/devices/readback/"):
|
30
30
|
raise PydanticCustomError(
|
31
31
|
"unsupported endpoint",
|
32
32
|
"For slot 'on_device_readback', endpoint must be MessageEndpoint.device_readback(device) or 'internal/devices/readback/{device}'.",
|
@@ -36,6 +36,7 @@ class RingConnections(BaseModel):
|
|
36
36
|
|
37
37
|
|
38
38
|
class RingConfig(ConnectionConfig):
|
39
|
+
value: int | float | None = Field(0, description="Value for the progress bars.")
|
39
40
|
direction: int | None = Field(
|
40
41
|
-1, description="Direction of the progress bars. -1 for clockwise, 1 for counter-clockwise."
|
41
42
|
)
|
@@ -54,8 +55,8 @@ class RingConfig(ConnectionConfig):
|
|
54
55
|
description="Start position for the progress bars in degrees. Default is 90 degrees - corespons to "
|
55
56
|
"the top of the ring.",
|
56
57
|
)
|
57
|
-
min_value: int | None = Field(0, description="Minimum value for the progress bars.")
|
58
|
-
max_value: int | None = Field(100, description="Maximum value for the progress bars.")
|
58
|
+
min_value: int | float | None = Field(0, description="Minimum value for the progress bars.")
|
59
|
+
max_value: int | float | None = Field(100, description="Maximum value for the progress bars.")
|
59
60
|
precision: int | None = Field(3, description="Precision for the progress bars.")
|
60
61
|
update_behaviour: Literal["manual", "auto"] | None = Field(
|
61
62
|
"auto", description="Update behaviour for the progress bars."
|
@@ -102,7 +103,6 @@ class Ring(BECConnector):
|
|
102
103
|
self.background_color = None
|
103
104
|
self.start_position = None
|
104
105
|
self.config = config
|
105
|
-
self.value = 0
|
106
106
|
self.RID = None
|
107
107
|
self._init_config_params()
|
108
108
|
|
@@ -114,7 +114,7 @@ class Ring(BECConnector):
|
|
114
114
|
self.set_connections(self.config.connections.slot, self.config.connections.endpoint)
|
115
115
|
|
116
116
|
def set_value(self, value: int | float):
|
117
|
-
self.value = round(
|
117
|
+
self.config.value = round(
|
118
118
|
max(self.config.min_value, min(self.config.max_value, value)), self.config.precision
|
119
119
|
)
|
120
120
|
|
@@ -115,7 +115,6 @@ class SpiralProgressBar(BECConnector, QWidget):
|
|
115
115
|
self.entry_validator = EntryValidator(self.dev)
|
116
116
|
|
117
117
|
self.RID = None
|
118
|
-
self.values = None
|
119
118
|
|
120
119
|
# For updating bar behaviour
|
121
120
|
self._auto_updates = True
|
@@ -544,7 +543,7 @@ class SpiralProgressBar(BECConnector, QWidget):
|
|
544
543
|
pen = QtGui.QPen(ring.color, ring.config.line_width, QtCore.Qt.SolidLine)
|
545
544
|
pen.setCapStyle(QtCore.Qt.RoundCap)
|
546
545
|
painter.setPen(pen)
|
547
|
-
proportion = (ring.value - ring.config.min_value) / (
|
546
|
+
proportion = (ring.config.value - ring.config.min_value) / (
|
548
547
|
(ring.config.max_value - ring.config.min_value) + 1e-3
|
549
548
|
)
|
550
549
|
angle = int(proportion * 360 * 16 * ring.config.direction)
|
@@ -2,11 +2,11 @@
|
|
2
2
|
.gitlab-ci.yml,sha256=14teoIFfOHkepa-_tW9nAxSF3sjdWnRMFLfu2yooR5s,12236
|
3
3
|
.pylintrc,sha256=OstrgmEyP0smNFBKoIN5_26-UmNZgMHnbjvAWX0UrLs,18535
|
4
4
|
.readthedocs.yaml,sha256=aSOc277LqXcsTI6lgvm_JY80lMlr69GbPKgivua2cS0,603
|
5
|
-
CHANGELOG.md,sha256=
|
5
|
+
CHANGELOG.md,sha256=Dlbe1lzOU3UKOPM1DoQGLtyP1ujMmmOlJwmHaj34Sl8,7082
|
6
6
|
LICENSE,sha256=YRKe85CBRyP7UpEAWwU8_qSIyuy5-l_9C-HKg5Qm8MQ,1511
|
7
|
-
PKG-INFO,sha256=
|
7
|
+
PKG-INFO,sha256=4xqyCIK1rFhZFj-yomxD4tuLq6qzwkBaMBOZcswJgIM,1135
|
8
8
|
README.md,sha256=y4jB6wvArS7N8_iTbKWnSM_oRAqLA2GqgzUR-FMh5sU,2645
|
9
|
-
pyproject.toml,sha256=
|
9
|
+
pyproject.toml,sha256=gPO0n84KHnJqOMohCjHJo8LvpNSAtUfsTcED4tcQnzU,1803
|
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=v5oaQMydRVEaqKNI73A3_AbQ0efXxBt2SLoUBKANrV8,301
|
19
19
|
bec_widgets/cli/auto_updates.py,sha256=ptZeBKr13o9THc8oKLn93K_16i6G3pxzw8hZ4MUgjW4,3845
|
20
|
-
bec_widgets/cli/client.py,sha256=
|
20
|
+
bec_widgets/cli/client.py,sha256=tQIaQcNnOkF3M-Ym4_U7vMwpYWgVPEGAJY4ibnlPLgM,52909
|
21
21
|
bec_widgets/cli/client_utils.py,sha256=IPWfseFBYFjCmBp4LsXyNUOcV5KTTdiW1jsLvG3jF5A,10536
|
22
22
|
bec_widgets/cli/generate_cli.py,sha256=tBt-F4Xccg9Pj2zuDEGHd0Ho1fKLfCf3PuSa8KmelQk,4431
|
23
23
|
bec_widgets/cli/rpc_register.py,sha256=QxXUZu5XNg00Yf5O3UHWOXg3-f_pzKjjoZYMOa-MOJc,2216
|
@@ -48,10 +48,10 @@ bec_widgets/utils/widget_io.py,sha256=f36198CvT_EzWQ_cg2G-4tRRsaMdJ3yVqsZWKJCQEf
|
|
48
48
|
bec_widgets/utils/yaml_dialog.py,sha256=cMVif-39SB9WjwGH5FWBJcFs4tnfFJFs5cacydRyhy0,1853
|
49
49
|
bec_widgets/widgets/__init__.py,sha256=LKgIuY3CI-NHCa_bY9pThYhxLH0MHDo8iNEJDDVIVmw,172
|
50
50
|
bec_widgets/widgets/dock/__init__.py,sha256=B7foHt02gnhM7mFksa7GJVwT7n0j_JvYDCt6wc6XR5g,61
|
51
|
-
bec_widgets/widgets/dock/dock.py,sha256=
|
52
|
-
bec_widgets/widgets/dock/dock_area.py,sha256=
|
51
|
+
bec_widgets/widgets/dock/dock.py,sha256=fUb8VTYU2yS5N5KOUf1X1m_F1kpDullX3m71llRbBP8,8653
|
52
|
+
bec_widgets/widgets/dock/dock_area.py,sha256=8E-rBZxM7pE423jPaXMRKb1YGlAR9oAQvJubNDpemSI,7361
|
53
53
|
bec_widgets/widgets/figure/__init__.py,sha256=3hGx_KOV7QHCYAV06aNuUgKq4QIYCjUTad-DrwkUaBM,44
|
54
|
-
bec_widgets/widgets/figure/figure.py,sha256=
|
54
|
+
bec_widgets/widgets/figure/figure.py,sha256=OzeKZme89JnzMcKT1sACnyw951EtRoSUALl58upY6b4,29762
|
55
55
|
bec_widgets/widgets/figure/plots/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
56
56
|
bec_widgets/widgets/figure/plots/plot_base.py,sha256=oNUXEe94bD0_fVu-HPMRaoAuwPMW0DOAN8vvOeRz254,8513
|
57
57
|
bec_widgets/widgets/figure/plots/image/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
@@ -80,32 +80,42 @@ bec_widgets/widgets/motor_control/selection/selection.ui,sha256=vXXpvNWuL6xyHhW7
|
|
80
80
|
bec_widgets/widgets/scan_control/__init__.py,sha256=IOfHl15vxb_uC6KN62-PeUzbBha_vQyqkkXbJ2HU674,38
|
81
81
|
bec_widgets/widgets/scan_control/scan_control.py,sha256=B5n2U2iVtTCY3Tx93JyBqzGCDCmWhWwAOhbPelLI-bs,17168
|
82
82
|
bec_widgets/widgets/spiral_progress_bar/__init__.py,sha256=4efbtcqCToMIw5bkQrTzy2TzuBCXvlhuUPh1bYC_Yzg,51
|
83
|
-
bec_widgets/widgets/spiral_progress_bar/ring.py,sha256=
|
84
|
-
bec_widgets/widgets/spiral_progress_bar/spiral_progress_bar.py,sha256=
|
83
|
+
bec_widgets/widgets/spiral_progress_bar/ring.py,sha256=_wUIZOZ_UZaI3U9-s-VS5v-yv5NBPB991WoXunNr1jI,7077
|
84
|
+
bec_widgets/widgets/spiral_progress_bar/spiral_progress_bar.py,sha256=AjQsZDEqPlTn0kE4xkYKOj2ae5vJ9gW-k3yz1Y32vsY,22543
|
85
85
|
bec_widgets/widgets/toolbar/__init__.py,sha256=d-TP4_cr_VbpwreMM4ePnfZ5YXsEPQ45ibEf75nuGoE,36
|
86
86
|
bec_widgets/widgets/toolbar/toolbar.py,sha256=e0zCD_0q7K4NVhrzD8001Qvfxt-VhqHTgofchS9NgCM,5125
|
87
87
|
docs/Makefile,sha256=i2WHuFlgfyAPEW4ssEP8NY4cOibDJrVjvzSEU8_Ggwc,634
|
88
|
-
docs/conf.py,sha256=
|
89
|
-
docs/index.md,sha256=
|
88
|
+
docs/conf.py,sha256=HxLxupNGu0Smhwn57g1kFdjZzFuaWVREgRJKhT1zi2k,2464
|
89
|
+
docs/index.md,sha256=8ZCgaLIbJsYvt-jwi--QxsNwnK4-k3rejIeOOLclG40,1101
|
90
90
|
docs/make.bat,sha256=vKazJE8RW49Cy8K7hm8QYbletvAd8YkeKsaPA_dWnXs,800
|
91
91
|
docs/requirements.txt,sha256=SbcWrLYX6tEZNMCUETgsE50Y7VioR1VX6YCeifuJWEc,140
|
92
|
+
docs/_static/custom.css,sha256=v4Nk7r8LZslhOV8RaSUb15bG4miwiZ4-kZyXBLnSyms,13487
|
92
93
|
docs/_templates/custom-class-template.rst,sha256=HPuPaGJob2zXlWOl5FmA-hAZRbUTGQmdqo3HS1iIFog,711
|
93
94
|
docs/_templates/custom-module-template.rst,sha256=MXYXAz06HP_mbblO--iFwL08xROmSBo7U4O-hPbMcZU,1228
|
94
|
-
docs/
|
95
|
-
docs/
|
95
|
+
docs/api_reference/api_reference.md,sha256=D2l5H4fd50uc55ShTFS0JhtDYCma01dIX69oHKN-K2w,167
|
96
|
+
docs/assets/apps_48dp.svg,sha256=9lJkkEQi-thzy_bXeFKyqJLaohmlTzAZJ1Lccw585jg,292
|
97
|
+
docs/assets/display_settings_48dp.svg,sha256=-K7ZhJdpt7jZA8NSIGVIhMOm0fK18rWHnwlli5pn6qs,568
|
98
|
+
docs/assets/index_api.svg,sha256=CeYPwqYps-ygfwA6_frNER4wV3Q7EGoW-ltlRaCOOpM,3519
|
99
|
+
docs/assets/index_contribute.svg,sha256=OCjvYBw_JhcY_D5Zd7f1MctQvq1YNalYlqPNwB1XBhs,2528
|
100
|
+
docs/assets/index_getting_started.svg,sha256=Www1OXmauYlouZD51AR6-VG2vxrEig8-jjuDPhzkNxc,3977
|
101
|
+
docs/assets/index_user_guide.svg,sha256=sRjKwOHVJStBYIQUFVcnfmbeXd2qAp0HYjleSp66XCI,6429
|
102
|
+
docs/assets/rocket_launch_48dp.svg,sha256=pdrPrBcKWUa5OlgWKM0B6TA6qAW7E57d7C7YW2r1OT8,1070
|
103
|
+
docs/developer/developer.md,sha256=7Z6sfkk_7BgwZ2vaX4z5_cJrs0miyeAYSGpqMbyBmOI,415
|
96
104
|
docs/introduction/introduction.md,sha256=wp7jmhkUtJnSnEnmIAZGUcau_3-5e5-FohvZb63khw4,1432
|
97
|
-
docs/user/apps.md,sha256=qD-thmWqP9-m_Jq6peZCDhCXNJO-8TUIt4DWUQI3Dg4,139
|
98
105
|
docs/user/customisation.md,sha256=Og0NuUsTs8HdwKtpHnycGmH8wCqOeYgj2ozlYRJ-Drk,249
|
99
|
-
docs/user/
|
100
|
-
docs/user/
|
101
|
-
docs/user/
|
106
|
+
docs/user/user.md,sha256=uCTcjclIi6rdjYRQebko6bWFEVsjyfshsVU3BDYrC-Y,1403
|
107
|
+
docs/user/api_reference/api_reference.md,sha256=q2Imc48Rq6GcAP0R4bS3KuW5ptZZdsV4wxGJb3JJQHg,174
|
108
|
+
docs/user/applications/applications.md,sha256=hs8WKVuxBENV2Q7m4wN8wmSI_B3JBYrSYS1IYdbyoWg,147
|
109
|
+
docs/user/getting_started/getting_started.md,sha256=BagVhtCSoLgYlVaaYOep3KT5r_8DjtQKYj2g-PoU7uw,346
|
110
|
+
docs/user/getting_started/installation.md,sha256=Rt7O2VI5LRrrRpru1YSb8KAd92znFhHJFs7vhpmHIXQ,1239
|
102
111
|
docs/user/widgets/motor.gif,sha256=FtaWdRHx4UZaGJPpq8LNhMMgX4PFcAB6IZ93JCMEh_w,2280719
|
103
112
|
docs/user/widgets/scatter_2D.gif,sha256=yHpsuAUseMafJjI_J5BcOhmE3nu9VFn_Xm9XHzJaH5I,13188862
|
104
113
|
docs/user/widgets/w1D.gif,sha256=tuHbleJpl6bJFNNC2OdndF5LF7IyfvlkFCMGZajrQPs,622773
|
114
|
+
docs/user/widgets/widgets.md,sha256=vIfilXMyE1iPQMQXGH8wEjXWsFI6GPI0Cn9VQg5lLwI,1879
|
105
115
|
tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
106
116
|
tests/end-2-end/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
107
117
|
tests/end-2-end/conftest.py,sha256=b5Yebbj8C1-IcXq23XGbOnXF0kOZD_Po46Z-p4cBwfs,1346
|
108
|
-
tests/end-2-end/test_bec_dock_rpc_e2e.py,sha256=
|
118
|
+
tests/end-2-end/test_bec_dock_rpc_e2e.py,sha256=GIROuIBctS-_D8RvxeF35uQPt7tKk4wpVnaWV0w-Ni8,7617
|
109
119
|
tests/end-2-end/test_bec_figure_rpc_e2e.py,sha256=X8lQLx2NsB6-nU61IhVtAw1-pJ4A2qFgx5PxOWC0V7Q,5527
|
110
120
|
tests/end-2-end/test_rpc_register_e2e.py,sha256=M7sSq3us2yQIW5tAIFOFfBULatZTQNLdt0frh1bINts,1595
|
111
121
|
tests/unit_tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
@@ -123,7 +133,7 @@ tests/unit_tests/test_motor_control.py,sha256=NBekcGALo5mYkuyBJvBhvJkWiQDV82hI4G
|
|
123
133
|
tests/unit_tests/test_plot_base.py,sha256=bOdlgAxh9oKk5PwiQ_MSFmzr44uJ61Tlg242RCIhl5c,2610
|
124
134
|
tests/unit_tests/test_rpc_register.py,sha256=hECjZEimd440mwRrO0rg7L3PKN7__3DgjmESN6wx3bo,1179
|
125
135
|
tests/unit_tests/test_scan_control.py,sha256=7dtGpE0g4FqUhhQeCkyJl-9o7NH3DFZJgEaqDmBYbBc,7551
|
126
|
-
tests/unit_tests/test_spiral_progress_bar.py,sha256=
|
136
|
+
tests/unit_tests/test_spiral_progress_bar.py,sha256=yak3N9-TmEM3lQZPSROL4cAx9mior__se1XADlMScks,12418
|
127
137
|
tests/unit_tests/test_waveform1d.py,sha256=Xi9TdZmxoMmmje37lq03FG9lytEdZCTUEjtOC0LvZjA,15263
|
128
138
|
tests/unit_tests/test_widget_io.py,sha256=FeL3ZYSBQnRt6jxj8VGYw1cmcicRQyHKleahw7XIyR0,3475
|
129
139
|
tests/unit_tests/test_yaml_dialog.py,sha256=HNrqferkdg02-9ieOhhI2mr2Qvt7GrYgXmQ061YCTbg,5794
|
@@ -132,7 +142,7 @@ tests/unit_tests/test_configs/config_device_no_entry.yaml,sha256=hdvue9KLc_kfNzG
|
|
132
142
|
tests/unit_tests/test_configs/config_scan.yaml,sha256=vo484BbWOjA_e-h6bTjSV9k7QaQHrlAvx-z8wtY-P4E,1915
|
133
143
|
tests/unit_tests/test_msgs/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
134
144
|
tests/unit_tests/test_msgs/available_scans_message.py,sha256=m_z97hIrjHXXMa2Ex-UvsPmTxOYXfjxyJaGkIY6StTY,46532
|
135
|
-
bec_widgets-0.56.
|
136
|
-
bec_widgets-0.56.
|
137
|
-
bec_widgets-0.56.
|
138
|
-
bec_widgets-0.56.
|
145
|
+
bec_widgets-0.56.2.dist-info/METADATA,sha256=4xqyCIK1rFhZFj-yomxD4tuLq6qzwkBaMBOZcswJgIM,1135
|
146
|
+
bec_widgets-0.56.2.dist-info/WHEEL,sha256=zEMcRr9Kr03x1ozGwg5v9NQBKn3kndp6LSoSlVg-jhU,87
|
147
|
+
bec_widgets-0.56.2.dist-info/licenses/LICENSE,sha256=YRKe85CBRyP7UpEAWwU8_qSIyuy5-l_9C-HKg5Qm8MQ,1511
|
148
|
+
bec_widgets-0.56.2.dist-info/RECORD,,
|
docs/_static/custom.css
ADDED
@@ -0,0 +1,170 @@
|
|
1
|
+
/* Template Inherited from SciPy and modified for PyQtGraph purposes
|
2
|
+
https://github.com/scipy/scipy/blob/9ae8fd0f4341d7d8785777d460cca4f7b6a93edd/doc/source/_static/scipy.css
|
3
|
+
SPDX-License-Identifier: BSD-3-Clause */
|
4
|
+
|
5
|
+
/* Remove parenthesis around module using fictive font and add them back.
|
6
|
+
This is needed for better wrapping in the sidebar. */
|
7
|
+
.bd-sidebar .nav li > a > code {
|
8
|
+
white-space: nowrap;
|
9
|
+
}
|
10
|
+
|
11
|
+
.bd-sidebar .nav li > a > code:before {
|
12
|
+
content:'(';
|
13
|
+
}
|
14
|
+
|
15
|
+
.bd-sidebar .nav li > a > code:after {
|
16
|
+
content:')';
|
17
|
+
}
|
18
|
+
|
19
|
+
.bd-sidebar .nav li > a {
|
20
|
+
font-family: "no-parens", sans-serif;
|
21
|
+
}
|
22
|
+
|
23
|
+
/* Retrieved from https://codepen.io/jonneal/pen/bXLEdB (MIT)
|
24
|
+
It replaces (, ) with a zero-width font. This version is lighter than
|
25
|
+
the original font from Adobe.
|
26
|
+
*/
|
27
|
+
@font-face {
|
28
|
+
font-family: no-parens;
|
29
|
+
src: url("data:application/x-font-woff;base64,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");
|
30
|
+
unicode-range: U+0028, U+0029;
|
31
|
+
}
|
32
|
+
|
33
|
+
/* Colors from:
|
34
|
+
|
35
|
+
Wong, B. Points of view: Color blindness.
|
36
|
+
Nat Methods 8, 441 (2011). https://doi.org/10.1038/nmeth.1618
|
37
|
+
*/
|
38
|
+
|
39
|
+
/* If the active version has the name "dev", style it orange */
|
40
|
+
#version_switcher_button[data-active-version-name*="dev"] {
|
41
|
+
background-color: #E69F00;
|
42
|
+
border-color: #E69F00;
|
43
|
+
color: white;
|
44
|
+
}
|
45
|
+
|
46
|
+
/* green for `stable` */
|
47
|
+
#version_switcher_button[data-active-version-name*="stable"] {
|
48
|
+
background-color: #009E73;
|
49
|
+
border-color: #009E73;
|
50
|
+
color: white;
|
51
|
+
}
|
52
|
+
|
53
|
+
/* red for `old` */
|
54
|
+
#version_switcher_button:not([data-active-version-name*="stable"]):not([data-active-version-name*="dev"]):not([data-active-version-name*="pull"]) {
|
55
|
+
background-color: #980F0F;
|
56
|
+
border-color: #980F0F;
|
57
|
+
color: white;
|
58
|
+
}
|
59
|
+
|
60
|
+
/* Main index page overview cards */
|
61
|
+
|
62
|
+
.sd-card {
|
63
|
+
background: #fff;
|
64
|
+
border-radius: 0;
|
65
|
+
padding: 30px 10px 20px 10px;
|
66
|
+
margin: 10px 0px;
|
67
|
+
}
|
68
|
+
|
69
|
+
.sd-card .sd-card-header {
|
70
|
+
text-align: center;
|
71
|
+
}
|
72
|
+
|
73
|
+
.sd-card .sd-card-header .sd-card-text {
|
74
|
+
margin: 0px;
|
75
|
+
}
|
76
|
+
|
77
|
+
.sd-card .sd-card-img-top {
|
78
|
+
height: 52px;
|
79
|
+
width: 52px;
|
80
|
+
margin-left: auto;
|
81
|
+
margin-right: auto;
|
82
|
+
}
|
83
|
+
|
84
|
+
.sd-card .sd-card-header {
|
85
|
+
border: none;
|
86
|
+
background-color:white;
|
87
|
+
color: #150458 !important;
|
88
|
+
font-size: var(--pst-font-size-h5);
|
89
|
+
font-weight: bold;
|
90
|
+
padding: 2.5rem 0rem 0.5rem 0rem;
|
91
|
+
border-bottom: none !important;
|
92
|
+
}
|
93
|
+
|
94
|
+
.sd-card .sd-card-footer {
|
95
|
+
border: none;
|
96
|
+
background-color:white;
|
97
|
+
border-top: none !important;
|
98
|
+
}
|
99
|
+
|
100
|
+
.sd-card .sd-card-footer .sd-card-text{
|
101
|
+
max-width: 220px;
|
102
|
+
margin-left: auto;
|
103
|
+
margin-right: auto;
|
104
|
+
}
|
105
|
+
|
106
|
+
.custom-button {
|
107
|
+
background-color:#DCDCDC;
|
108
|
+
border: none;
|
109
|
+
color: #484848;
|
110
|
+
text-align: center;
|
111
|
+
text-decoration: none;
|
112
|
+
display: inline-block;
|
113
|
+
font-size: 0.9rem;
|
114
|
+
border-radius: 0.5rem;
|
115
|
+
max-width: 120px;
|
116
|
+
padding: 0.5rem 0rem;
|
117
|
+
}
|
118
|
+
|
119
|
+
.custom-button a {
|
120
|
+
color: #484848;
|
121
|
+
}
|
122
|
+
|
123
|
+
.custom-button p {
|
124
|
+
margin-top: 0;
|
125
|
+
margin-bottom: 0rem;
|
126
|
+
color: #484848;
|
127
|
+
}
|
128
|
+
|
129
|
+
/* Dark theme tweaking
|
130
|
+
|
131
|
+
Matplotlib images are in png and inverted while other output
|
132
|
+
types are assumed to be normal images.
|
133
|
+
|
134
|
+
*/
|
135
|
+
html[data-theme=dark] img[src*='.svg']:not(.only-dark):not(.dark-light) {
|
136
|
+
filter: brightness(0.8) invert(0.82) contrast(1.2);
|
137
|
+
background: unset
|
138
|
+
}
|
139
|
+
|
140
|
+
html[data-theme=dark] .MathJax_SVG * {
|
141
|
+
fill: var(--pst-color-text-base);
|
142
|
+
}
|
143
|
+
|
144
|
+
/* Main index page overview cards */
|
145
|
+
|
146
|
+
html[data-theme=dark] .sd-card {
|
147
|
+
background-color:var(--pst-color-background);
|
148
|
+
border: none
|
149
|
+
}
|
150
|
+
|
151
|
+
html[data-theme=dark] .sd-shadow-sm {
|
152
|
+
box-shadow: 0 .1rem 0.5rem rgba(250, 250, 250, .2) !important
|
153
|
+
}
|
154
|
+
|
155
|
+
html[data-theme=dark] .sd-card .sd-card-header {
|
156
|
+
background-color:var(--pst-color-background);
|
157
|
+
color: #150458 !important;
|
158
|
+
}
|
159
|
+
|
160
|
+
html[data-theme=dark] .sd-card .sd-card-footer {
|
161
|
+
background-color:var(--pst-color-background);
|
162
|
+
}
|
163
|
+
|
164
|
+
/*
|
165
|
+
Hide TypeAlias Classes
|
166
|
+
*/
|
167
|
+
|
168
|
+
dt#ColorMapSpecifier {
|
169
|
+
visibility: hidden;
|
170
|
+
}
|
@@ -0,0 +1 @@
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" height="48px" viewBox="0 0 24 24" width="48px" fill="#000000"><path d="M0 0h24v24H0V0z" fill="none"/><path d="M4 8h4V4H4v4zm6 12h4v-4h-4v4zm-6 0h4v-4H4v4zm0-6h4v-4H4v4zm6 0h4v-4h-4v4zm6-10v4h4V4h-4zm-6 4h4V4h-4v4zm6 6h4v-4h-4v4zm0 6h4v-4h-4v4z"/></svg>
|
@@ -0,0 +1 @@
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" enable-background="new 0 0 20 20" height="48px" viewBox="0 0 20 20" width="48px" fill="#000000"><g><rect fill="none" height="20" width="20" x="0"/></g><g><g><path d="M16.5,3h-13C2.67,3,2,3.67,2,4.5v9C2,14.33,2.67,15,3.5,15H7v2h6v-2h3.5c0.83,0,1.5-0.67,1.5-1.5v-9 C18,3.67,17.33,3,16.5,3z M16.5,13.5h-13v-9h13V13.5z"/><rect height="1" width="7" x="5" y="7"/><polygon points="14,8 15,8 15,7 14,7 14,6 13,6 13,9 14,9"/><rect height="1" width="7" x="8" y="10"/><polygon points="6,12 7,12 7,9 6,9 6,10 5,10 5,11 6,11"/></g></g></svg>
|