bec-widgets 0.94.3__py3-none-any.whl → 0.94.4__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 CHANGED
@@ -1,5 +1,17 @@
1
1
  # CHANGELOG
2
2
 
3
+ ## v0.94.4 (2024-08-14)
4
+
5
+ ### Documentation
6
+
7
+ * docs: review developer section; add introduction ([`2af5c94`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/2af5c94913a3435c1839034df4f45f885b56d08b))
8
+
9
+ ### Fix
10
+
11
+ * fix: do not shutdown client in "close"
12
+
13
+ Terminating client connections has to be done at the application level ([`198c1d1`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/198c1d1064cc2dae55de4b941929341faddacb28))
14
+
3
15
  ## v0.94.3 (2024-08-13)
4
16
 
5
17
  ### Fix
@@ -141,11 +153,3 @@ This reverts commit fd6ae91993a23a7b8dbb2cf3c4b7c3eda6d2b0f6 ([`5aad401`](https:
141
153
  * fix(widgets): fixed import for tictactoe example ([`995a795`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/995a795060bebe25c17108d80ae0fa30463f03b1))
142
154
 
143
155
  ## v0.92.1 (2024-07-28)
144
-
145
- ### Fix
146
-
147
- * fix: use SafeSlot instead of Slot ([`bc1e239`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/bc1e23944cc0e5a861e3d0b4dc5b4ac6292d5269))
148
-
149
- * fix: linting ([`a3fe205`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/a3fe20500ae2ac03dcde07432f7e21ce5262ce46))
150
-
151
- * fix: always add a QApplication for tests ([`61a4e32`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/61a4e32deb337ed27f2f43358b88b7266413b58e))
PKG-INFO CHANGED
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: bec_widgets
3
- Version: 0.94.3
3
+ Version: 0.94.4
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
@@ -457,7 +457,6 @@ class BECImageWidget(BECWidget, QWidget):
457
457
 
458
458
  def cleanup(self):
459
459
  self.fig.cleanup()
460
- self.client.shutdown()
461
460
  self.toolbar.close()
462
461
  self.toolbar.deleteLater()
463
462
  return super().cleanup()
@@ -63,8 +63,6 @@ class BECJupyterConsole(RichJupyterWidget): # pragma: no cover:
63
63
 
64
64
  def closeEvent(self, event):
65
65
  self.shutdown_kernel()
66
- if self.client:
67
- self.client.shutdown()
68
66
 
69
67
 
70
68
  if __name__ == "__main__": # pragma: no cover
@@ -561,7 +561,6 @@ class BECWaveformWidget(BECWidget, QWidget):
561
561
 
562
562
  def cleanup(self):
563
563
  self.fig.cleanup()
564
- self.client.shutdown()
565
564
  return super().cleanup()
566
565
 
567
566
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: bec_widgets
3
- Version: 0.94.3
3
+ Version: 0.94.4
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=BtKhZI3dhK09En1BfpglYi-ZJwG6ZdC-iJr7kXFVfCg,8346
3
3
  .pylintrc,sha256=eeY8YwSI74oFfq6IYIbCqnx3Vk8ZncKaatv96n_Y8Rs,18544
4
4
  .readthedocs.yaml,sha256=aSOc277LqXcsTI6lgvm_JY80lMlr69GbPKgivua2cS0,603
5
- CHANGELOG.md,sha256=gE46tUW66TsIdZamfkYZMGj7-k6WJUT4oPY_7PPyQ3Q,6445
5
+ CHANGELOG.md,sha256=ZgJSqE7XIvqpjlDINU3jRRCwL5__8y6FOftSs8VgNNs,6463
6
6
  LICENSE,sha256=YRKe85CBRyP7UpEAWwU8_qSIyuy5-l_9C-HKg5Qm8MQ,1511
7
- PKG-INFO,sha256=giIQGgT_Zow6YiayO_MJDB6XtuM2IEnWABhbbg14HrA,1307
7
+ PKG-INFO,sha256=Fr6w7cyPHrpWO62J-UES9e5wuB2OKrOMWOKshp4VYCM,1307
8
8
  README.md,sha256=Od69x-RS85Hph0-WwWACwal4yUd67XkEn4APEfHhHFw,2649
9
- pyproject.toml,sha256=7CgY9VSUC5P1rXOXpjUppxnvxkVqsajIgSZQefR2-iA,2356
9
+ pyproject.toml,sha256=wDEM1QP9Ii5M219IXkmWm2WSgs7BSJ-Wq3qtwQbFt9s,2356
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
@@ -187,10 +187,10 @@ bec_widgets/widgets/figure/plots/waveform/waveform_curve.py,sha256=ZwRxSfPHbMWEv
187
187
  bec_widgets/widgets/image/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
188
188
  bec_widgets/widgets/image/bec_image_widget.pyproject,sha256=PHisdBo5_5UCApd27GkizzqgfdjsDx2bFZa_p9LiSW8,30
189
189
  bec_widgets/widgets/image/bec_image_widget_plugin.py,sha256=B7whBMsoQ85MyCR_C6YHBl2s1T7odOJJYeiHaLXzmcM,1387
190
- bec_widgets/widgets/image/image_widget.py,sha256=csPtl48uZgSlyomxG68bFJX929Y2WOvgv5risWQuXFI,16319
190
+ bec_widgets/widgets/image/image_widget.py,sha256=TCpTF8v94iSMklG9bYxZOjm9SbO60XZB9X0ldEp8lWE,16288
191
191
  bec_widgets/widgets/image/register_bec_image_widget.py,sha256=01YLZQTMSSIXvH1TSL-1AYsRs1a4EbSwKLVAwh9AjeA,478
192
192
  bec_widgets/widgets/jupyter_console/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
193
- bec_widgets/widgets/jupyter_console/jupyter_console.py,sha256=mBKM89H6SuHuFy1lQg1n8s1gQiN5QEkZf0xua8aPDns,2402
193
+ bec_widgets/widgets/jupyter_console/jupyter_console.py,sha256=-e7HQOECeH5eDrJYh4BFIzRL78LDkooU4otabyN0aX4,2343
194
194
  bec_widgets/widgets/motor_map/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
195
195
  bec_widgets/widgets/motor_map/bec_motor_map_widget.pyproject,sha256=NAI8s5gRKz80ED4KY7OgD2OgSH5HEsjt2ux2BYp66yg,63
196
196
  bec_widgets/widgets/motor_map/bec_motor_map_widget_plugin.py,sha256=V6iN82E8Za8BharR_cSyZZShh4fI9yc5ky2TQBGELR0,1316
@@ -256,7 +256,7 @@ bec_widgets/widgets/waveform/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NM
256
256
  bec_widgets/widgets/waveform/bec_waveform_widget.pyproject,sha256=GLD8GN9dXx9wNbtnevrxqqcwk7vKV-Uv8QYSycdaoaI,33
257
257
  bec_widgets/widgets/waveform/bec_waveform_widget_plugin.py,sha256=D9q3wdBPB5x0iCzyYDo1qdSXzySXdRIc1d5oD3Gv5gY,1420
258
258
  bec_widgets/widgets/waveform/register_bec_waveform_widget.py,sha256=qZHVZH_lP2hvzkG1Ra0EyrXlMeLkRCy0aceH-bfJ1cs,490
259
- bec_widgets/widgets/waveform/waveform_widget.py,sha256=zErnkgwm69QZEVvNRLi57v9-zRQeu0IaJpYRj34mGmA,19125
259
+ bec_widgets/widgets/waveform/waveform_widget.py,sha256=4aHwkLdn7C8BgvKqFIbOB0YaAxAIIFTG_hG0iLougKQ,19094
260
260
  bec_widgets/widgets/waveform/waveform_popups/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
261
261
  bec_widgets/widgets/waveform/waveform_popups/curve_dialog/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
262
262
  bec_widgets/widgets/waveform/waveform_popups/curve_dialog/curve_dialog.py,sha256=S1j44i1xxJtmCcNtbOsxF8XdklMPsG9t4-1DZ2YfOPw,13128
@@ -285,10 +285,11 @@ docs/assets/index_contribute.svg,sha256=OCjvYBw_JhcY_D5Zd7f1MctQvq1YNalYlqPNwB1X
285
285
  docs/assets/index_getting_started.svg,sha256=Www1OXmauYlouZD51AR6-VG2vxrEig8-jjuDPhzkNxc,3977
286
286
  docs/assets/index_user_guide.svg,sha256=sRjKwOHVJStBYIQUFVcnfmbeXd2qAp0HYjleSp66XCI,6429
287
287
  docs/assets/rocket_launch_48dp.svg,sha256=pdrPrBcKWUa5OlgWKM0B6TA6qAW7E57d7C7YW2r1OT8,1070
288
- docs/developer/developer.md,sha256=VUdMnQBsSRCawYMFCe0vya5oj1MimLML7Pd58kY6fYY,765
289
- docs/developer/getting_started/development.md,sha256=aYLmuLMYpp5FcIXeDUqCfcStIV8veuiMBjOt5bTW_30,1406
290
- docs/developer/getting_started/getting_started.md,sha256=My_K_6O7LLaXVB_eINrRku5o-jVx95lsmGgHxgZhT7A,378
291
- docs/developer/widgets/widgets.md,sha256=aNsJgG7R-3EerumNB6GH84JLIXfZqGN5GjvpKWDi0Hk,504
288
+ docs/developer/developer.md,sha256=LUbV1dnVI9r8FhsL2htKRqrGZDGkFXA-jo5TJfXz4OI,1099
289
+ docs/developer/introduction/concepts.md,sha256=N23ewZjPx97eJtrU6-0Lou2IvPfkfZ6Nw6n9SwASQ74,1721
290
+ docs/developer/introduction/contributing.md,sha256=ocW5kjBNwD5k_nDkusXUpsW8jJALajrpNSRVJftuF-k,1668
291
+ docs/developer/introduction/introduction.md,sha256=860Sw05t1RGW13IUlM5bJwK8DckYhSABPKZykgmwcpA,774
292
+ docs/developer/widget_development/widget_development.md,sha256=wGfDjbt9EonVxUg59keADy7wCLyS-KzCz7m4hY0OV_A,526
292
293
  docs/introduction/introduction.md,sha256=YBEFDhxqHTcbfbNTo76xDflaFUHIqDs-sToA1HRmCnI,1436
293
294
  docs/user/customisation.md,sha256=wCW8fAbqtlgGE3mURvXOrK67Xo0_B-lxfg0sYuQWB40,3186
294
295
  docs/user/user.md,sha256=uCTcjclIi6rdjYRQebko6bWFEVsjyfshsVU3BDYrC-Y,1403
@@ -376,8 +377,8 @@ tests/unit_tests/test_configs/config_device_no_entry.yaml,sha256=hdvue9KLc_kfNzG
376
377
  tests/unit_tests/test_configs/config_scan.yaml,sha256=vo484BbWOjA_e-h6bTjSV9k7QaQHrlAvx-z8wtY-P4E,1915
377
378
  tests/unit_tests/test_msgs/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
378
379
  tests/unit_tests/test_msgs/available_scans_message.py,sha256=m_z97hIrjHXXMa2Ex-UvsPmTxOYXfjxyJaGkIY6StTY,46532
379
- bec_widgets-0.94.3.dist-info/METADATA,sha256=giIQGgT_Zow6YiayO_MJDB6XtuM2IEnWABhbbg14HrA,1307
380
- bec_widgets-0.94.3.dist-info/WHEEL,sha256=1yFddiXMmvYK7QYTqtRNtX66WJ0Mz8PYEiEUoOUUxRY,87
381
- bec_widgets-0.94.3.dist-info/entry_points.txt,sha256=3otEkCdDB9LZJuBLzG4pFLK5Di0CVybN_12IsZrQ-58,166
382
- bec_widgets-0.94.3.dist-info/licenses/LICENSE,sha256=YRKe85CBRyP7UpEAWwU8_qSIyuy5-l_9C-HKg5Qm8MQ,1511
383
- bec_widgets-0.94.3.dist-info/RECORD,,
380
+ bec_widgets-0.94.4.dist-info/METADATA,sha256=Fr6w7cyPHrpWO62J-UES9e5wuB2OKrOMWOKshp4VYCM,1307
381
+ bec_widgets-0.94.4.dist-info/WHEEL,sha256=1yFddiXMmvYK7QYTqtRNtX66WJ0Mz8PYEiEUoOUUxRY,87
382
+ bec_widgets-0.94.4.dist-info/entry_points.txt,sha256=3otEkCdDB9LZJuBLzG4pFLK5Di0CVybN_12IsZrQ-58,166
383
+ bec_widgets-0.94.4.dist-info/licenses/LICENSE,sha256=YRKe85CBRyP7UpEAWwU8_qSIyuy5-l_9C-HKg5Qm8MQ,1511
384
+ bec_widgets-0.94.4.dist-info/RECORD,,
@@ -1,7 +1,9 @@
1
1
  (developer)=
2
2
  # Developer
3
3
 
4
- Welcome to the BEC Widgets developer guide! This section is intended for developers who want to contribute to the development of BEC Widgets.
4
+ Welcome to the BEC Widgets developer guide! BEC Widgets is a framework for building graphical user interfaces (GUIs) for [BEC](https://bec.readthedocs.io/en/latest/), a Python package for beamline experiment control.
5
+
6
+ This guide targets readers who want to develop new widgets or extend existing ones. If your goal is to use BEC Widgets to build GUIs for your experiments, please refer to the [user guide](#user).
5
7
 
6
8
  ```{toctree}
7
9
  ---
@@ -9,8 +11,8 @@ maxdepth: 2
9
11
  hidden: true
10
12
  ---
11
13
 
12
- getting_started/getting_started.md
13
- widgets/widgets.md
14
+ introduction/introduction.md
15
+ widget_development/widget_development.md
14
16
  api_reference/api_reference.md
15
17
  ```
16
18
 
@@ -21,26 +23,28 @@ api_reference/api_reference.md
21
23
  :gutter: 5
22
24
 
23
25
  ```{grid-item-card}
24
- :link: developer.getting_started
26
+ :link: developer.introduction
25
27
  :link-type: ref
26
28
  :img-top: /assets/rocket_launch_48dp.svg
27
29
  :text-align: center
28
30
 
29
- ## Getting Started
31
+ ## Introduction
30
32
 
31
- Learn how to install BEC Widgets and get started with the framework.
33
+ An introduction into the single-resposibility principle and the modular design of BEC Widgets.
32
34
  ```
33
35
 
34
36
  ```{grid-item-card}
35
- :link: developer.widgets
37
+ :link: developer.widget_development
36
38
  :link-type: ref
37
39
  :img-top: /assets/apps_48dp.svg
38
40
  :text-align: center
39
41
 
40
- ## Widgets
42
+ ## Widget Development
41
43
 
42
- Learn about the building blocks of larger applications: widgets.
44
+ Learn how to develop a new modular widget for BEC Widgets.
43
45
  ```
44
- ````
46
+
47
+ ````{grid} 2
48
+
45
49
 
46
50
 
@@ -0,0 +1,14 @@
1
+ (developer.concepts)=
2
+ # Concepts
3
+ This section provides an overview of the core concepts of BEC Widgets, which are based on the single-responsibility principle and modular design.
4
+
5
+ ## Moduler Design
6
+ We develop widgets with the single-responsibility principle in mind, meaning each widget is designed for a specific task. Our goal is to keep widgets simple, using them primarily for visualization or to initiate actions within BEC. Following these ideas, widgets should be designed to be reusable in various applications, making them versatile building blocks for larger GUIs.
7
+
8
+ We offer up to three different options for composing larger GUIs from these modular widgets: BECDesigner, DockArea widget, or scripting from the command line interface. More information about these options can be found in the user sections on [applications](user.applications).
9
+
10
+ ## Client-Server Architecture
11
+
12
+ BEC Widgets is built on top of the [BEC](https://bec.readthedocs.io/en/latest/) package, which provides the backend for beamline experiment control. BEC Widgets is a client of BEC, meaning it can interact with the backend through a client-server architecture. To make full usage of the available features of BEC, we recommend to check the documentation about [data access](https://bec.readthedocs.io/en/latest/developer/data_access/data_access.html) in which the messaging and event system of BEC is described.
13
+ In the context of BEC Widgets, the [`BECDispatcher`](/api_reference/_autosummary/bec_widgets.utils.bec_dispatcher.BECDispatcher) connects to this messaging and event system, allowing you to link your Qt [`Slots`](https://www.pythonguis.com/tutorials/pyside6-signals-slots-events/) to messages and event received from BEC.
14
+
@@ -1,5 +1,5 @@
1
- (developer.development)=
2
- # Development
1
+ (developer.contributing)=
2
+ # Contributing
3
3
 
4
4
  If you like to contribute to the development of BEC Widgets, you can follow the steps below to set up your development environment.
5
5
  BEC Widgets works in conjunction with [BEC](https://bec.readthedocs.io/en/latest/).
@@ -10,6 +10,7 @@ If you already have a BEC environment set up, you can install BEC Widgets in edi
10
10
  **Prerequisites**
11
11
  1. **Python Version:** BEC Widgets requires Python version 3.10 or higher. Verify your Python version to ensure compatibility.
12
12
  2. **BEC Installation:** BEC Widgets works in conjunction with BEC. While BEC is a dependency and will be installed automatically, you can find more information about BEC and its installation process in the [BEC documentation](https://beamline-experiment-control.readthedocs.io/en/latest/).
13
+ 3. **Qt Distributions:** BEC Widgets supports [PySide6](https://doc.qt.io/qtforpython-6/quickstart.html) and [PyQt6](https://www.riverbankcomputing.com/static/Docs/PyQt6/introduction.html). We use [qtpy](https://pypi.org/project/QtPy/) to abstract the underlying QT distribution.
13
14
 
14
15
  **Clone the Repository**:
15
16
  ```bash
@@ -20,8 +21,8 @@ cd bec_widgets
20
21
 
21
22
  Please install the package in editable mode into your BEC Python environemnt.
22
23
  ```bash
23
- pip install -e '.[dev,pyqt6]'
24
+ pip install -e '.[dev,pyside6]'
24
25
  ```
25
- This installs the package together with [PyQT6](https://www.riverbankcomputing.com/static/Docs/PyQt6/introduction.html).
26
+ This installs the package together with [PySide6](https://doc.qt.io/qtforpython-6/quickstart.html).
26
27
 
27
28
 
@@ -0,0 +1,15 @@
1
+ (developer.introduction)=
2
+ # Introduction
3
+ BEC Widgets is a framework providing modular components that can be integrated into various larger GUI applications. Each widget serves a specific purpose adhering to the single-responsibility principle as detailed in our [concepts section](developer.concepts), and offers a straightforward, user-friendly interface.
4
+ These widgets provide data visualisation tools and experimental control interfaces by triggering actions within BEC.
5
+ If you're interested in contributing to BEC Widgets, please refer to our [contributing guide](developer.contributing), which provides instructions for setting up your development environment and creating your own widgets.
6
+
7
+ ```{toctree}
8
+ ---
9
+ maxdepth: 2
10
+ hidden: false
11
+ ---
12
+
13
+ concepts/
14
+ contributing/
15
+ ```
@@ -1,5 +1,5 @@
1
- (developer.widgets)=
2
- # Widgets
1
+ (developer.widget_development)=
2
+ # Widget development
3
3
  This section provides an introduction to the building blocks of BEC Widgets: widgets. Widgets are the basic components of the graphical user interface (GUI) and are used to create larger applications. We will cover key topics such as how to develop new widgets or how to customise existing widgets. For details on the already available widgets and their usage, please refer to user section about [widgets](#user.widgets)
4
4
 
5
5
  ```{toctree}
pyproject.toml CHANGED
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
4
4
 
5
5
  [project]
6
6
  name = "bec_widgets"
7
- version = "0.94.3"
7
+ version = "0.94.4"
8
8
  description = "BEC Widgets"
9
9
  requires-python = ">=3.10"
10
10
  classifiers = [
@@ -1,12 +0,0 @@
1
- (developer.getting_started)=
2
- # Getting Started
3
- This section provides valuable information for developers who want to contribute to the development of BEC Widgets. The guide will help you set up the development environment, understand the modular development concept of BEC Widgets, and contribute to the project.
4
-
5
- ```{toctree}
6
- ---
7
- maxdepth: 2
8
- hidden: false
9
- ---
10
-
11
- development/
12
- ```