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.
Files changed (33) hide show
  1. CHANGELOG.md +26 -33
  2. PKG-INFO +1 -1
  3. bec_widgets/cli/client.py +20 -0
  4. bec_widgets/widgets/dock/dock.py +6 -2
  5. bec_widgets/widgets/dock/dock_area.py +8 -3
  6. bec_widgets/widgets/figure/figure.py +1 -1
  7. bec_widgets/widgets/spiral_progress_bar/ring.py +7 -7
  8. bec_widgets/widgets/spiral_progress_bar/spiral_progress_bar.py +1 -2
  9. {bec_widgets-0.56.0.dist-info → bec_widgets-0.56.2.dist-info}/METADATA +1 -1
  10. {bec_widgets-0.56.0.dist-info → bec_widgets-0.56.2.dist-info}/RECORD +33 -23
  11. docs/_static/custom.css +170 -0
  12. docs/{developer/reference.md → api_reference/api_reference.md} +3 -1
  13. docs/assets/apps_48dp.svg +1 -0
  14. docs/assets/display_settings_48dp.svg +1 -0
  15. docs/assets/index_api.svg +97 -0
  16. docs/assets/index_contribute.svg +76 -0
  17. docs/assets/index_getting_started.svg +66 -0
  18. docs/assets/index_user_guide.svg +67 -0
  19. docs/assets/rocket_launch_48dp.svg +1 -0
  20. docs/conf.py +3 -3
  21. docs/developer/developer.md +0 -8
  22. docs/index.md +39 -8
  23. docs/user/api_reference/api_reference.md +11 -0
  24. docs/user/{apps.md → applications/applications.md} +1 -1
  25. docs/user/getting_started/getting_started.md +12 -0
  26. docs/user/{installation.md → getting_started/installation.md} +1 -1
  27. docs/user/user.md +51 -22
  28. docs/user/{widgets.md → widgets/widgets.md} +3 -3
  29. pyproject.toml +1 -1
  30. tests/end-2-end/test_bec_dock_rpc_e2e.py +5 -5
  31. tests/unit_tests/test_spiral_progress_bar.py +5 -5
  32. {bec_widgets-0.56.0.dist-info → bec_widgets-0.56.2.dist-info}/WHEEL +0 -0
  33. {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
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: bec_widgets
3
- Version: 0.56.0
3
+ Version: 0.56.2
4
4
  Summary: BEC Widgets
5
5
  Project-URL: Bug Tracker, https://gitlab.psi.ch/bec/bec_widgets/issues
6
6
  Project-URL: Homepage, https://gitlab.psi.ch/bec/bec_widgets
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":
@@ -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, ConnectionConfig] = Field({}, description="The widgets in the dock.")
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._last_state
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
- self._last_state = self.saveState()
95
- return self._last_state
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
- endpoint = v.endpoint if isinstance(v, EndpointInfo) else v
20
+ v = v.endpoint if isinstance(v, EndpointInfo) else v
21
21
  if slot == "on_scan_progress":
22
- if endpoint != "scans/scan_progress":
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 endpoint.startswith("internal/devices/readback/"):
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)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: bec_widgets
3
- Version: 0.56.0
3
+ Version: 0.56.2
4
4
  Summary: BEC Widgets
5
5
  Project-URL: Bug Tracker, https://gitlab.psi.ch/bec/bec_widgets/issues
6
6
  Project-URL: Homepage, https://gitlab.psi.ch/bec/bec_widgets
@@ -2,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=njGoNqpkjXZ4eW62VZRXcA7Q3r6rACQZ3zmrbkw7CYU,7323
5
+ CHANGELOG.md,sha256=Dlbe1lzOU3UKOPM1DoQGLtyP1ujMmmOlJwmHaj34Sl8,7082
6
6
  LICENSE,sha256=YRKe85CBRyP7UpEAWwU8_qSIyuy5-l_9C-HKg5Qm8MQ,1511
7
- PKG-INFO,sha256=SgL1tTmnfhqyT5Dav1JAw0w_cJUMTOZOs_HYTGYYvmI,1135
7
+ PKG-INFO,sha256=4xqyCIK1rFhZFj-yomxD4tuLq6qzwkBaMBOZcswJgIM,1135
8
8
  README.md,sha256=y4jB6wvArS7N8_iTbKWnSM_oRAqLA2GqgzUR-FMh5sU,2645
9
- pyproject.toml,sha256=IyB21-mPQaaTEIyW8uDEpM32fX8SGurA06Tm_ogva88,1803
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=kg4hnEM6B1-V_i8qsypjZ1r45aTJTA9hz4VfjWlbYSE,52501
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=vnOQnOWWnd-3X07kniSW_I5l0uEHZOaWhfuqZkDGIqE,8467
52
- bec_widgets/widgets/dock/dock_area.py,sha256=UaI5Z-c9C16lhTbXmEVzfl55Y8ymKSk4sPWGleIsUVY,7182
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=MbnG6d738aYgNiFuOFHgyaGre0eVLA8OdSg-Xx7XIYU,29712
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=ILAAYEubRcEGyOvwAPpIlccPfi08sZH2giNiym4v2kw,7013
84
- bec_widgets/widgets/spiral_progress_bar/spiral_progress_bar.py,sha256=Geev5PwJUsYgzoY0a-fx6ZmBOptKTPeJa_Mp8Ouh0fY,22563
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=pASMheaNEMnHl91PHQWUW0uu3OqXByYnDeSrlrVAUeI,2474
89
- docs/index.md,sha256=6HrqaPXb5uUPEtM2gZaVUi1wM1kUYmdC2aIFpmItzZ0,453
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/developer/developer.md,sha256=xJvO-EAf-9SqDARRnqFLRd8k_o258U97V0DmvgZKMos,477
95
- docs/developer/reference.md,sha256=P0uuBwSWuDhbXifSbyDKJRkDhb1_nETckTTnt12-A4g,150
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/installation.md,sha256=8eotL5UQALR8z5aZ5fiJuR3yJOldg2S91ngvn2VVp7I,1233
100
- docs/user/user.md,sha256=e5WKSginne0HMP7KpqmYEqBtHsPUgw36Egwrq3YUnpg,1997
101
- docs/user/widgets.md,sha256=viEb7_nqXKcnJT3HqWvq9d2MKRtuwORf58xCquwUWOo,1903
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=PAEKKf2iRcwzBs5v_Egrbpd_zn-KYHV_hH1xj8Tqi2w,7582
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=NY-zFt_fQ-_4_J2Paql8VdqJ-mozOFYZrZ-Y3iKNYcA,12383
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.0.dist-info/METADATA,sha256=SgL1tTmnfhqyT5Dav1JAw0w_cJUMTOZOs_HYTGYYvmI,1135
136
- bec_widgets-0.56.0.dist-info/WHEEL,sha256=zEMcRr9Kr03x1ozGwg5v9NQBKn3kndp6LSoSlVg-jhU,87
137
- bec_widgets-0.56.0.dist-info/licenses/LICENSE,sha256=YRKe85CBRyP7UpEAWwU8_qSIyuy5-l_9C-HKg5Qm8MQ,1511
138
- bec_widgets-0.56.0.dist-info/RECORD,,
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,,
@@ -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
+ }
@@ -1,4 +1,5 @@
1
- ## API Reference
1
+ (api_reference)=
2
+ # API Reference
2
3
 
3
4
  ```{eval-rst}
4
5
  .. autosummary::
@@ -7,4 +8,5 @@
7
8
  :recursive:
8
9
 
9
10
  bec_widgets
11
+
10
12
  ```
@@ -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>