bec-widgets 0.57.5__py3-none-any.whl → 0.57.7__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 +18 -17
- PKG-INFO +1 -1
- bec_widgets/cli/auto_updates.py +1 -0
- bec_widgets/cli/client.py +31 -8
- bec_widgets/utils/bec_connector.py +1 -0
- bec_widgets/widgets/figure/plots/image/image_processor.py +1 -0
- bec_widgets/widgets/figure/plots/plot_base.py +1 -0
- bec_widgets/widgets/figure/plots/waveform/waveform_curve.py +2 -0
- bec_widgets/widgets/spiral_progress_bar/ring.py +73 -1
- bec_widgets/widgets/spiral_progress_bar/spiral_progress_bar.py +22 -0
- {bec_widgets-0.57.5.dist-info → bec_widgets-0.57.7.dist-info}/METADATA +1 -1
- {bec_widgets-0.57.5.dist-info → bec_widgets-0.57.7.dist-info}/RECORD +19 -17
- docs/user/getting_started/BECDockArea.png +0 -0
- docs/user/getting_started/quick_start.md +4 -0
- docs/user/widgets/BECFigure.png +0 -0
- docs/user/widgets/bec_figure.md +4 -0
- pyproject.toml +1 -1
- {bec_widgets-0.57.5.dist-info → bec_widgets-0.57.7.dist-info}/WHEEL +0 -0
- {bec_widgets-0.57.5.dist-info → bec_widgets-0.57.7.dist-info}/licenses/LICENSE +0 -0
CHANGELOG.md
CHANGED
@@ -2,6 +2,24 @@
|
|
2
2
|
|
3
3
|
|
4
4
|
|
5
|
+
## v0.57.7 (2024-06-07)
|
6
|
+
|
7
|
+
### Documentation
|
8
|
+
|
9
|
+
* docs: added schema of BECDockArea and BECFigure ([`828067f`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/828067f486a905eb4678538df58e2bdd6c770de1))
|
10
|
+
|
11
|
+
### Fix
|
12
|
+
|
13
|
+
* fix: add model_config to pydantic models to allow runtime checks after creation ([`ca5e8d2`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/ca5e8d2fbbffbf221cc5472710fef81a33ee29d6))
|
14
|
+
|
15
|
+
|
16
|
+
## v0.57.6 (2024-06-06)
|
17
|
+
|
18
|
+
### Fix
|
19
|
+
|
20
|
+
* fix(bar): docstrings extended ([`edb1775`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/edb1775967c3ff0723d0edad2b764f1ffc832b7c))
|
21
|
+
|
22
|
+
|
5
23
|
## v0.57.5 (2024-06-06)
|
6
24
|
|
7
25
|
### Documentation
|
@@ -133,27 +151,10 @@
|
|
133
151
|
|
134
152
|
## v0.56.0 (2024-05-29)
|
135
153
|
|
136
|
-
### Build
|
137
|
-
|
138
|
-
* build: added pyside6 as dependency ([`db301b1`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/db301b1be27bba76c8bb21fbff93cb4902b592a5))
|
139
|
-
|
140
|
-
### Ci
|
141
|
-
|
142
|
-
* ci: added tests for pyside6, pyqt6 and pyqt5, default test and e2e is python 3.11 and pyqt6 ([`855be35`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/855be3551a1372bcbebba6f8930903f99202bbca))
|
143
|
-
|
144
154
|
### Documentation
|
145
155
|
|
146
156
|
* docs(examples): example apps section deleted ([`ad208a5`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/ad208a5ef8495c45a8b83a4850ba9a1041b42717))
|
147
157
|
|
148
|
-
### Feature
|
149
|
-
|
150
|
-
* feat(utils/ui_loader): universal ui loader for pyside/pyqt ([`0fea8d6`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/0fea8d606574fa99dda3b117da5d5209c251f694))
|
151
|
-
|
152
158
|
### Fix
|
153
159
|
|
154
160
|
* fix(examples): outdated examples removed (mca_plot.py, stream_plot.py, motor_example.py) ([`ddc9510`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/ddc9510c2ba8dadf291809eeb5b135a105259492))
|
155
|
-
|
156
|
-
* fix: compatibility adjustment to .ui loading and tests for PySide6 ([`07b99d9`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/07b99d91a57a645cddd76294f48d78773e4c9ea5))
|
157
|
-
|
158
|
-
|
159
|
-
## v0.55.0 (2024-05-24)
|
PKG-INFO
CHANGED
bec_widgets/cli/auto_updates.py
CHANGED
bec_widgets/cli/client.py
CHANGED
@@ -1861,43 +1861,66 @@ class Ring(RPCBase):
|
|
1861
1861
|
@rpc_call
|
1862
1862
|
def set_value(self, value: "int | float"):
|
1863
1863
|
"""
|
1864
|
-
|
1864
|
+
Set the value for the ring widget
|
1865
|
+
|
1866
|
+
Args:
|
1867
|
+
value(int | float): Value for the ring widget
|
1865
1868
|
"""
|
1866
1869
|
|
1867
1870
|
@rpc_call
|
1868
1871
|
def set_color(self, color: "str | tuple"):
|
1869
1872
|
"""
|
1870
|
-
|
1873
|
+
Set the color for the ring widget
|
1874
|
+
|
1875
|
+
Args:
|
1876
|
+
color(str | tuple): Color for the ring widget. Can be HEX code or tuple (R, G, B, A).
|
1871
1877
|
"""
|
1872
1878
|
|
1873
1879
|
@rpc_call
|
1874
1880
|
def set_background(self, color: "str | tuple"):
|
1875
1881
|
"""
|
1876
|
-
|
1882
|
+
Set the background color for the ring widget
|
1883
|
+
|
1884
|
+
Args:
|
1885
|
+
color(str | tuple): Background color for the ring widget. Can be HEX code or tuple (R, G, B, A).
|
1877
1886
|
"""
|
1878
1887
|
|
1879
1888
|
@rpc_call
|
1880
1889
|
def set_line_width(self, width: "int"):
|
1881
1890
|
"""
|
1882
|
-
|
1891
|
+
Set the line width for the ring widget
|
1892
|
+
|
1893
|
+
Args:
|
1894
|
+
width(int): Line width for the ring widget
|
1883
1895
|
"""
|
1884
1896
|
|
1885
1897
|
@rpc_call
|
1886
1898
|
def set_min_max_values(self, min_value: "int | float", max_value: "int | float"):
|
1887
1899
|
"""
|
1888
|
-
|
1900
|
+
Set the min and max values for the ring widget.
|
1901
|
+
|
1902
|
+
Args:
|
1903
|
+
min_value(int | float): Minimum value for the ring widget
|
1904
|
+
max_value(int | float): Maximum value for the ring widget
|
1889
1905
|
"""
|
1890
1906
|
|
1891
1907
|
@rpc_call
|
1892
1908
|
def set_start_angle(self, start_angle: "int"):
|
1893
1909
|
"""
|
1894
|
-
|
1910
|
+
Set the start angle for the ring widget
|
1911
|
+
|
1912
|
+
Args:
|
1913
|
+
start_angle(int): Start angle for the ring widget in degrees
|
1895
1914
|
"""
|
1896
1915
|
|
1897
1916
|
@rpc_call
|
1898
1917
|
def set_update(self, mode: "Literal['manual', 'scan', 'device']", device: "str" = None):
|
1899
1918
|
"""
|
1900
|
-
Set the update mode for the ring widget
|
1919
|
+
Set the update mode for the ring widget.
|
1920
|
+
Modes:
|
1921
|
+
- "manual": Manual update mode, the value is set by the user.
|
1922
|
+
- "scan": Update mode for the scan progress. The value is updated by the current scan progress.
|
1923
|
+
- "device": Update mode for the device readback. The value is updated by the device readback. Take into account that user has to set the device name and limits.
|
1901
1924
|
|
1902
1925
|
Args:
|
1903
1926
|
mode(str): Update mode for the ring widget. Can be "manual", "scan" or "device"
|
@@ -1907,5 +1930,5 @@ class Ring(RPCBase):
|
|
1907
1930
|
@rpc_call
|
1908
1931
|
def reset_connection(self):
|
1909
1932
|
"""
|
1910
|
-
|
1933
|
+
Reset the connections for the ring widget. Disconnect the current slot and endpoint.
|
1911
1934
|
"""
|
@@ -20,6 +20,7 @@ class ConnectionConfig(BaseModel):
|
|
20
20
|
gui_id: Optional[str] = Field(
|
21
21
|
default=None, validate_default=True, description="The GUI ID of the widget."
|
22
22
|
)
|
23
|
+
model_config: dict = {"validate_assignment": True}
|
23
24
|
|
24
25
|
@field_validator("gui_id")
|
25
26
|
def generate_gui_id(cls, v, values):
|
@@ -20,6 +20,7 @@ class AxisConfig(BaseModel):
|
|
20
20
|
y_lim: Optional[tuple] = Field(None, description="The limits of the y-axis.")
|
21
21
|
x_grid: bool = Field(False, description="Show grid on the x-axis.")
|
22
22
|
y_grid: bool = Field(False, description="Show grid on the y-axis.")
|
23
|
+
model_config: dict = {"validate_assignment": True}
|
23
24
|
|
24
25
|
|
25
26
|
class SubplotConfig(ConnectionConfig):
|
@@ -17,6 +17,7 @@ class SignalData(BaseModel):
|
|
17
17
|
unit: Optional[str] = None # todo implement later
|
18
18
|
modifier: Optional[str] = None # todo implement later
|
19
19
|
limits: Optional[list[float]] = None # todo implement later
|
20
|
+
model_config: dict = {"validate_assignment": True}
|
20
21
|
|
21
22
|
|
22
23
|
class Signal(BaseModel):
|
@@ -26,6 +27,7 @@ class Signal(BaseModel):
|
|
26
27
|
x: SignalData # TODO maybe add metadata for config gui later
|
27
28
|
y: SignalData
|
28
29
|
z: Optional[SignalData] = None
|
30
|
+
model_config: dict = {"validate_assignment": True}
|
29
31
|
|
30
32
|
|
31
33
|
class CurveConfig(ConnectionConfig):
|
@@ -13,6 +13,7 @@ from bec_widgets.utils import BECConnector, ConnectionConfig
|
|
13
13
|
class RingConnections(BaseModel):
|
14
14
|
slot: Literal["on_scan_progress", "on_device_readback"] = None
|
15
15
|
endpoint: EndpointInfo | str = None
|
16
|
+
model_config: dict = {"validate_assignment": True}
|
16
17
|
|
17
18
|
@field_validator("endpoint")
|
18
19
|
def validate_endpoint(cls, v, values):
|
@@ -114,32 +115,75 @@ class Ring(BECConnector):
|
|
114
115
|
self.set_connections(self.config.connections.slot, self.config.connections.endpoint)
|
115
116
|
|
116
117
|
def set_value(self, value: int | float):
|
118
|
+
"""
|
119
|
+
Set the value for the ring widget
|
120
|
+
|
121
|
+
Args:
|
122
|
+
value(int | float): Value for the ring widget
|
123
|
+
"""
|
117
124
|
self.config.value = round(
|
118
125
|
float(max(self.config.min_value, min(self.config.max_value, value))),
|
119
126
|
self.config.precision,
|
120
127
|
)
|
121
128
|
|
122
129
|
def set_color(self, color: str | tuple):
|
130
|
+
"""
|
131
|
+
Set the color for the ring widget
|
132
|
+
|
133
|
+
Args:
|
134
|
+
color(str | tuple): Color for the ring widget. Can be HEX code or tuple (R, G, B, A).
|
135
|
+
"""
|
123
136
|
self.config.color = color
|
124
137
|
self.color = self.convert_color(color)
|
125
138
|
|
126
139
|
def set_background(self, color: str | tuple):
|
140
|
+
"""
|
141
|
+
Set the background color for the ring widget
|
142
|
+
|
143
|
+
Args:
|
144
|
+
color(str | tuple): Background color for the ring widget. Can be HEX code or tuple (R, G, B, A).
|
145
|
+
"""
|
127
146
|
self.config.background_color = color
|
128
147
|
self.color = self.convert_color(color)
|
129
148
|
|
130
149
|
def set_line_width(self, width: int):
|
150
|
+
"""
|
151
|
+
Set the line width for the ring widget
|
152
|
+
|
153
|
+
Args:
|
154
|
+
width(int): Line width for the ring widget
|
155
|
+
"""
|
131
156
|
self.config.line_width = width
|
132
157
|
|
133
158
|
def set_min_max_values(self, min_value: int | float, max_value: int | float):
|
159
|
+
"""
|
160
|
+
Set the min and max values for the ring widget.
|
161
|
+
|
162
|
+
Args:
|
163
|
+
min_value(int | float): Minimum value for the ring widget
|
164
|
+
max_value(int | float): Maximum value for the ring widget
|
165
|
+
"""
|
134
166
|
self.config.min_value = min_value
|
135
167
|
self.config.max_value = max_value
|
136
168
|
|
137
169
|
def set_start_angle(self, start_angle: int):
|
170
|
+
"""
|
171
|
+
Set the start angle for the ring widget
|
172
|
+
|
173
|
+
Args:
|
174
|
+
start_angle(int): Start angle for the ring widget in degrees
|
175
|
+
"""
|
138
176
|
self.config.start_position = start_angle
|
139
177
|
self.start_position = start_angle * 16
|
140
178
|
|
141
179
|
@staticmethod
|
142
180
|
def convert_color(color):
|
181
|
+
"""
|
182
|
+
Convert the color to QColor
|
183
|
+
|
184
|
+
Args:
|
185
|
+
color(str | tuple): Color for the ring widget. Can be HEX code or tuple (R, G, B, A).
|
186
|
+
"""
|
143
187
|
converted_color = None
|
144
188
|
if isinstance(color, str):
|
145
189
|
converted_color = QtGui.QColor(color)
|
@@ -149,7 +193,11 @@ class Ring(BECConnector):
|
|
149
193
|
|
150
194
|
def set_update(self, mode: Literal["manual", "scan", "device"], device: str = None):
|
151
195
|
"""
|
152
|
-
Set the update mode for the ring widget
|
196
|
+
Set the update mode for the ring widget.
|
197
|
+
Modes:
|
198
|
+
- "manual": Manual update mode, the value is set by the user.
|
199
|
+
- "scan": Update mode for the scan progress. The value is updated by the current scan progress.
|
200
|
+
- "device": Update mode for the device readback. The value is updated by the device readback. Take into account that user has to set the device name and limits.
|
153
201
|
|
154
202
|
Args:
|
155
203
|
mode(str): Update mode for the ring widget. Can be "manual", "scan" or "device"
|
@@ -169,6 +217,13 @@ class Ring(BECConnector):
|
|
169
217
|
self.parent_progress_widget.enable_auto_updates(False)
|
170
218
|
|
171
219
|
def set_connections(self, slot: str, endpoint: str | EndpointInfo):
|
220
|
+
"""
|
221
|
+
Set the connections for the ring widget
|
222
|
+
|
223
|
+
Args:
|
224
|
+
slot(str): Slot for the ring widget update. Can be "on_scan_progress" or "on_device_readback".
|
225
|
+
endpoint(str | EndpointInfo): Endpoint for the ring widget update. Endpoint has to match the slot type.
|
226
|
+
"""
|
172
227
|
if self.config.connections.endpoint == endpoint and self.config.connections.slot == slot:
|
173
228
|
return
|
174
229
|
else:
|
@@ -179,12 +234,22 @@ class Ring(BECConnector):
|
|
179
234
|
self.bec_dispatcher.connect_slot(getattr(self, slot), endpoint)
|
180
235
|
|
181
236
|
def reset_connection(self):
|
237
|
+
"""
|
238
|
+
Reset the connections for the ring widget. Disconnect the current slot and endpoint.
|
239
|
+
"""
|
182
240
|
self.bec_dispatcher.disconnect_slot(
|
183
241
|
self.config.connections.slot, self.config.connections.endpoint
|
184
242
|
)
|
185
243
|
self.config.connections = RingConnections()
|
186
244
|
|
187
245
|
def on_scan_progress(self, msg, meta):
|
246
|
+
"""
|
247
|
+
Update the ring widget with the scan progress.
|
248
|
+
|
249
|
+
Args:
|
250
|
+
msg(dict): Message with the scan progress
|
251
|
+
meta(dict): Metadata for the message
|
252
|
+
"""
|
188
253
|
current_RID = meta.get("RID", None)
|
189
254
|
if current_RID != self.RID:
|
190
255
|
self.set_min_max_values(0, msg.get("max_value", 100))
|
@@ -192,6 +257,13 @@ class Ring(BECConnector):
|
|
192
257
|
self.parent_progress_widget.update()
|
193
258
|
|
194
259
|
def on_device_readback(self, msg, meta):
|
260
|
+
"""
|
261
|
+
Update the ring widget with the device readback.
|
262
|
+
|
263
|
+
Args:
|
264
|
+
msg(dict): Message with the device readback
|
265
|
+
meta(dict): Metadata for the message
|
266
|
+
"""
|
195
267
|
if isinstance(self.config.connections.endpoint, EndpointInfo):
|
196
268
|
endpoint = self.config.connections.endpoint.endpoint
|
197
269
|
else:
|
@@ -464,6 +464,13 @@ class SpiralProgressBar(BECConnector, QWidget):
|
|
464
464
|
|
465
465
|
@Slot(dict, dict)
|
466
466
|
def on_scan_queue_status(self, msg, meta):
|
467
|
+
"""
|
468
|
+
Slot to handle scan queue status messages. Decides what update to perform based on the scan queue status.
|
469
|
+
|
470
|
+
Args:
|
471
|
+
msg(dict): Message from the BEC.
|
472
|
+
meta(dict): Metadata from the BEC.
|
473
|
+
"""
|
467
474
|
primary_queue = msg.get("queue").get("primary")
|
468
475
|
info = primary_queue.get("info", None)
|
469
476
|
|
@@ -490,6 +497,12 @@ class SpiralProgressBar(BECConnector, QWidget):
|
|
490
497
|
# print("hook device_progress")
|
491
498
|
|
492
499
|
def _hook_scan_progress(self, ring_index: int = None):
|
500
|
+
"""
|
501
|
+
Hook the scan progress to the progress bars.
|
502
|
+
|
503
|
+
Args:
|
504
|
+
ring_index(int): Index of the progress bar to hook the scan progress to.
|
505
|
+
"""
|
493
506
|
if ring_index is not None:
|
494
507
|
ring = self._find_ring_by_index(ring_index)
|
495
508
|
else:
|
@@ -501,6 +514,15 @@ class SpiralProgressBar(BECConnector, QWidget):
|
|
501
514
|
ring.set_connections("on_scan_progress", MessageEndpoints.scan_progress())
|
502
515
|
|
503
516
|
def _hook_readback(self, bar_index: int, device: str, min: float | int, max: float | int):
|
517
|
+
"""
|
518
|
+
Hook the readback values to the progress bars.
|
519
|
+
|
520
|
+
Args:
|
521
|
+
bar_index(int): Index of the progress bar to hook the readback values to.
|
522
|
+
device(str): Device to readback values from.
|
523
|
+
min(float|int): Minimum value for the progress bar.
|
524
|
+
max(float|int): Maximum value for the progress bar.
|
525
|
+
"""
|
504
526
|
ring = self._find_ring_by_index(bar_index)
|
505
527
|
ring.set_min_max_values(min, max)
|
506
528
|
endpoint = MessageEndpoints.device_readback(device)
|
@@ -2,11 +2,11 @@
|
|
2
2
|
.gitlab-ci.yml,sha256=RF2JeGh8tG09DyAOwEu991IZy3C8Vm6lI8O_4Dr9B9Q,12239
|
3
3
|
.pylintrc,sha256=OstrgmEyP0smNFBKoIN5_26-UmNZgMHnbjvAWX0UrLs,18535
|
4
4
|
.readthedocs.yaml,sha256=aSOc277LqXcsTI6lgvm_JY80lMlr69GbPKgivua2cS0,603
|
5
|
-
CHANGELOG.md,sha256=
|
5
|
+
CHANGELOG.md,sha256=X9H-BklqBJf16uGegYy57e9XnyvJMb5ogZs3K0ymAqc,7072
|
6
6
|
LICENSE,sha256=YRKe85CBRyP7UpEAWwU8_qSIyuy5-l_9C-HKg5Qm8MQ,1511
|
7
|
-
PKG-INFO,sha256=
|
7
|
+
PKG-INFO,sha256=c40eu7rvlul5AMf-lodtHO4hJ3auFJg22eqkir9PYpE,1178
|
8
8
|
README.md,sha256=y4jB6wvArS7N8_iTbKWnSM_oRAqLA2GqgzUR-FMh5sU,2645
|
9
|
-
pyproject.toml,sha256=
|
9
|
+
pyproject.toml,sha256=6xrwVPUUPoFrPwURWqR8v6Kr5XAsx8hXChcpP4F3ayg,1822
|
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
|
@@ -16,8 +16,8 @@ bec_widgets/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
16
16
|
bec_widgets/assets/bec_widgets_icon.png,sha256=K8dgGwIjalDh9PRHUsSQBqgdX7a00nM3igZdc20pkYM,1747017
|
17
17
|
bec_widgets/assets/terminal_icon.png,sha256=bJl7Tft4Fi2uxvuXI8o14uMHnI9eAWKSU2uftXCH9ws,3889
|
18
18
|
bec_widgets/cli/__init__.py,sha256=tLD8HWgyURhMjYlKZ43pBu-qvGD1LI5o3n3rEieg-70,43
|
19
|
-
bec_widgets/cli/auto_updates.py,sha256=
|
20
|
-
bec_widgets/cli/client.py,sha256=
|
19
|
+
bec_widgets/cli/auto_updates.py,sha256=0sd7HiqOMn1jCbgVG3-H1nmQgdOMRwSjx6FAvdtVf1k,4747
|
20
|
+
bec_widgets/cli/client.py,sha256=3GiSipBcjFvQunvevSgxGgriK1dslqpu-0A5WWFN_fA,55076
|
21
21
|
bec_widgets/cli/client_utils.py,sha256=7u8P9EYgLPJuAcHxnFiZi-gCZohO3vAn0W7dqsSrs4M,10660
|
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
|
@@ -31,7 +31,7 @@ bec_widgets/examples/motor_movement/__init__.py,sha256=LzPJkxLAxOsZCbXR-fRCPmeYo
|
|
31
31
|
bec_widgets/examples/motor_movement/motor_control_compilations.py,sha256=8rpA7a2xVZTDMrx7YQIj3IJew78J1gcVMkHvloS0U_Q,9055
|
32
32
|
bec_widgets/examples/motor_movement/motor_controller.ui,sha256=83XX6NGILwntoUIghvzWnMuGf80O8khK3SduVKTAEFM,29105
|
33
33
|
bec_widgets/utils/__init__.py,sha256=B7OZ2ArjyFaGNh4XYIbk49agnYCz704ltuFSalLCjSA,481
|
34
|
-
bec_widgets/utils/bec_connector.py,sha256=
|
34
|
+
bec_widgets/utils/bec_connector.py,sha256=CLrf30dW-0iYiQo4cwH7qSfsog-1ypfKMjQxJJjKpmw,5340
|
35
35
|
bec_widgets/utils/bec_dispatcher.py,sha256=nLdcj2u4dy8-ZR03XioCzr7hBg9Wq4Kw58OU6sDorT4,5593
|
36
36
|
bec_widgets/utils/bec_table.py,sha256=nA2b8ukSeUfquFMAxGrUVOqdrzMoDYD6O_4EYbOG2zk,717
|
37
37
|
bec_widgets/utils/colors.py,sha256=JsLxzkxbw-I8GIuvnIKyiM83n0edhyMG2Fa4Ffm62ww,2392
|
@@ -53,16 +53,16 @@ bec_widgets/widgets/dock/dock_area.py,sha256=zupu05KHrrdUlNNQe-x9zC-bXDk-qPXvr_m
|
|
53
53
|
bec_widgets/widgets/figure/__init__.py,sha256=3hGx_KOV7QHCYAV06aNuUgKq4QIYCjUTad-DrwkUaBM,44
|
54
54
|
bec_widgets/widgets/figure/figure.py,sha256=O--r3dyeOPXndV2400wpE9lPdBezzd0ZUt7yA2u2n0A,31468
|
55
55
|
bec_widgets/widgets/figure/plots/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
56
|
-
bec_widgets/widgets/figure/plots/plot_base.py,sha256=
|
56
|
+
bec_widgets/widgets/figure/plots/plot_base.py,sha256=XfOQaQUHA0qZheGiDs0CYdJswUAgQjBzjQM1XSdjo8k,8049
|
57
57
|
bec_widgets/widgets/figure/plots/image/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
58
58
|
bec_widgets/widgets/figure/plots/image/image.py,sha256=-rxCt1IXmS2XQu0dS0SSXAF8VaxacSmQ-_kDsFxbPm4,19653
|
59
59
|
bec_widgets/widgets/figure/plots/image/image_item.py,sha256=1oytCY2IIgRbtS3GRrp9JV02KOif78O2-iaK0qYuHFU,9058
|
60
|
-
bec_widgets/widgets/figure/plots/image/image_processor.py,sha256=
|
60
|
+
bec_widgets/widgets/figure/plots/image/image_processor.py,sha256=TOnHbdq9rK5--L5JNshILLm_e5_LVwuQ2-MFV8JKL9I,4423
|
61
61
|
bec_widgets/widgets/figure/plots/motor_map/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
62
62
|
bec_widgets/widgets/figure/plots/motor_map/motor_map.py,sha256=Ff2WoNHxO_A3ggsbSd_AVUP1JeOWMuJs-0GLskxn-94,15267
|
63
63
|
bec_widgets/widgets/figure/plots/waveform/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
64
64
|
bec_widgets/widgets/figure/plots/waveform/waveform.py,sha256=DgnUdH3wj0uyvZvK9jqdDKaRwPoadf14VZ4g1TOXY5A,23511
|
65
|
-
bec_widgets/widgets/figure/plots/waveform/waveform_curve.py,sha256=
|
65
|
+
bec_widgets/widgets/figure/plots/waveform/waveform_curve.py,sha256=Ynvgbc202TXaeAUkHyGYWmRBcDD2Wx5dTRyd9HjVE3o,7339
|
66
66
|
bec_widgets/widgets/jupyter_console/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
67
67
|
bec_widgets/widgets/jupyter_console/jupyter_console.py,sha256=ioLYJL31RdBoAOGFSS8PVSnUhkWPWmLC3tiKp7CouO8,2251
|
68
68
|
bec_widgets/widgets/motor_control/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
@@ -82,8 +82,8 @@ bec_widgets/widgets/motor_control/selection/selection.ui,sha256=vXXpvNWuL6xyHhW7
|
|
82
82
|
bec_widgets/widgets/scan_control/__init__.py,sha256=IOfHl15vxb_uC6KN62-PeUzbBha_vQyqkkXbJ2HU674,38
|
83
83
|
bec_widgets/widgets/scan_control/scan_control.py,sha256=B5n2U2iVtTCY3Tx93JyBqzGCDCmWhWwAOhbPelLI-bs,17168
|
84
84
|
bec_widgets/widgets/spiral_progress_bar/__init__.py,sha256=4efbtcqCToMIw5bkQrTzy2TzuBCXvlhuUPh1bYC_Yzg,51
|
85
|
-
bec_widgets/widgets/spiral_progress_bar/ring.py,sha256=
|
86
|
-
bec_widgets/widgets/spiral_progress_bar/spiral_progress_bar.py,sha256=
|
85
|
+
bec_widgets/widgets/spiral_progress_bar/ring.py,sha256=7i5oKpW8eUQGvLyKce2-2rlaGDVLec__DoWp6hfJlRw,10524
|
86
|
+
bec_widgets/widgets/spiral_progress_bar/spiral_progress_bar.py,sha256=OQzJiR0Fd4fWop4ojykEKtXVqeLL0WLNSBdhf7JvLsc,24386
|
87
87
|
bec_widgets/widgets/toolbar/__init__.py,sha256=d-TP4_cr_VbpwreMM4ePnfZ5YXsEPQ45ibEf75nuGoE,36
|
88
88
|
bec_widgets/widgets/toolbar/toolbar.py,sha256=e0zCD_0q7K4NVhrzD8001Qvfxt-VhqHTgofchS9NgCM,5125
|
89
89
|
docs/Makefile,sha256=i2WHuFlgfyAPEW4ssEP8NY4cOibDJrVjvzSEU8_Ggwc,634
|
@@ -108,12 +108,14 @@ docs/user/customisation.md,sha256=Og0NuUsTs8HdwKtpHnycGmH8wCqOeYgj2ozlYRJ-Drk,24
|
|
108
108
|
docs/user/user.md,sha256=uCTcjclIi6rdjYRQebko6bWFEVsjyfshsVU3BDYrC-Y,1403
|
109
109
|
docs/user/api_reference/api_reference.md,sha256=q2Imc48Rq6GcAP0R4bS3KuW5ptZZdsV4wxGJb3JJQHg,174
|
110
110
|
docs/user/applications/applications.md,sha256=yOECfaYRUEDIxF-O0duOwSJlG4f93RylrpMjbw1-8Dg,100
|
111
|
+
docs/user/getting_started/BECDockArea.png,sha256=t3vSm_rVRk371J5LOutbolETuEjStNc2aTT1YFOcSSA,2046774
|
111
112
|
docs/user/getting_started/auto_updates.md,sha256=Gicx3lplI6JRBlnPj_VL6IhqOIcsWjYF4_EdZSCje2A,3754
|
112
113
|
docs/user/getting_started/getting_started.md,sha256=lxZXCr6HAkM61oo5Bu-YjINSKo4wihWhAPJdotEAAVQ,358
|
113
114
|
docs/user/getting_started/gui_complex_gui.gif,sha256=ovv9u371BGG5GqhzyBMl4mvqMHLfJS0ylr-dR0Ydwtw,6550393
|
114
115
|
docs/user/getting_started/installation.md,sha256=nBl2Hfvo6ua3-tVZn1B-UG0hCTlrFY6_ibXHWnXeegs,1135
|
115
|
-
docs/user/getting_started/quick_start.md,sha256=
|
116
|
-
docs/user/widgets/
|
116
|
+
docs/user/getting_started/quick_start.md,sha256=VGU880GwamcIZcBE8tjxuqX2syE-71jqZedtskCoBbA,9405
|
117
|
+
docs/user/widgets/BECFigure.png,sha256=8dQr4u0uk_y0VV-R1Jh9yTR3Vidd9HDEno_07R0swaE,1605920
|
118
|
+
docs/user/widgets/bec_figure.md,sha256=BwcumbhZd6a2zKmoHTvwKr8kG8WxBx9lS_QwxNiBMpQ,5155
|
117
119
|
docs/user/widgets/image_plot.gif,sha256=_mVFhMTXGqwDOcEtrBHMZj5Thn2sLhDAHEeL2XyHN-s,14098977
|
118
120
|
docs/user/widgets/motor.gif,sha256=FtaWdRHx4UZaGJPpq8LNhMMgX4PFcAB6IZ93JCMEh_w,2280719
|
119
121
|
docs/user/widgets/progress_bar.gif,sha256=5jh0Zw2BBGPuNxszV1DBLJCb4_6glIRX-U2ABjnsK2k,5263592
|
@@ -151,7 +153,7 @@ tests/unit_tests/test_configs/config_device_no_entry.yaml,sha256=hdvue9KLc_kfNzG
|
|
151
153
|
tests/unit_tests/test_configs/config_scan.yaml,sha256=vo484BbWOjA_e-h6bTjSV9k7QaQHrlAvx-z8wtY-P4E,1915
|
152
154
|
tests/unit_tests/test_msgs/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
153
155
|
tests/unit_tests/test_msgs/available_scans_message.py,sha256=m_z97hIrjHXXMa2Ex-UvsPmTxOYXfjxyJaGkIY6StTY,46532
|
154
|
-
bec_widgets-0.57.
|
155
|
-
bec_widgets-0.57.
|
156
|
-
bec_widgets-0.57.
|
157
|
-
bec_widgets-0.57.
|
156
|
+
bec_widgets-0.57.7.dist-info/METADATA,sha256=c40eu7rvlul5AMf-lodtHO4hJ3auFJg22eqkir9PYpE,1178
|
157
|
+
bec_widgets-0.57.7.dist-info/WHEEL,sha256=zEMcRr9Kr03x1ozGwg5v9NQBKn3kndp6LSoSlVg-jhU,87
|
158
|
+
bec_widgets-0.57.7.dist-info/licenses/LICENSE,sha256=YRKe85CBRyP7UpEAWwU8_qSIyuy5-l_9C-HKg5Qm8MQ,1511
|
159
|
+
bec_widgets-0.57.7.dist-info/RECORD,,
|
Binary file
|
@@ -5,6 +5,10 @@ In order to use BEC Widgets as a plotting tool for BEC, it needs to be [installe
|
|
5
5
|
## BECDockArea
|
6
6
|
The `bec.gui` object is your entry point to BEC Widgets. It is a [`BECDockArea`](/api_reference/_autosummary/bec_widgets.cli.client.BECDockArea) instance that can be composed of multiple [`BECDock`](/api_reference/_autosummary/bec_widgets.cli.client.BECDock)s that can be attached / detached to the main area. These docks allow users to freely arrange and customize the widgets they add to the gui, providing a flexible and customizable interface to visualize data.
|
7
7
|
|
8
|
+
**Schema of the BECDockArea**
|
9
|
+
|
10
|
+

|
11
|
+
|
8
12
|
## Widgets
|
9
13
|
Widgets are the building blocks of the BEC Widgets framework. They are the visual components that allow users to interact with the data and control the behavior of the application. Each dock can contain multiple widgets, albeit we recommend for most use cases a single widget per dock. BEC Widgets provides a set of core widgets (cf. [widgets](#user.widgets)). More widgets can be added by the users, and we invite you to explore the [developer documentation](developer.widgets) to learn how to create custom widgets.
|
10
14
|
For the introduction given here, we will focus on the `BECFigure` widget, as it is the most commonly used widget for visualizing data from BEC. The same access pattern can be used for all other widgets.
|
Binary file
|
docs/user/widgets/bec_figure.md
CHANGED
@@ -3,6 +3,10 @@
|
|
3
3
|
[`BECFigure`](/api_reference/_autosummary/bec_widgets.cli.client.BECFigure) is a widget that provides a graphical user interface for creating and managing plots. It is a versatile tool that allows users to create a wide range of plots, from simple 1D waveforms to complex 2D scatter plots. BECFigure is designed to be user-friendly and interactive, enabling users to customize plots and visualize data in real-time.
|
4
4
|
In the following, we describe 4 different type of widgets thaat are available in BECFigure.
|
5
5
|
|
6
|
+
**Schema of the BECFigure**
|
7
|
+
|
8
|
+

|
9
|
+
|
6
10
|
(user.widgets.waveform_1d)=
|
7
11
|
## [1D Waveform Widget](/api_reference/_autosummary/bec_widgets.cli.client.BECWaveform)
|
8
12
|
|
pyproject.toml
CHANGED
File without changes
|
File without changes
|