bec-widgets 0.52.0__py3-none-any.whl → 0.53.0__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 (85) hide show
  1. .git_hooks/pre-commit +3 -0
  2. .gitignore +177 -0
  3. .gitlab/issue_templates/bug_report_template.md +17 -0
  4. .gitlab/issue_templates/documentation_update_template.md +27 -0
  5. .gitlab/issue_templates/feature_request_template.md +40 -0
  6. .gitlab/merge_request_templates/default.md +28 -0
  7. .gitlab-ci.yml +225 -0
  8. .pylintrc +581 -0
  9. .readthedocs.yaml +25 -0
  10. CHANGELOG.md +176 -0
  11. PKG-INFO +33 -0
  12. bec_widgets-0.52.0.dist-info/METADATA → README.md +6 -42
  13. bec_widgets/cli/client.py +132 -17
  14. bec_widgets/cli/client_utils.py +1 -0
  15. bec_widgets/cli/generate_cli.py +1 -0
  16. bec_widgets/cli/rpc_register.py +4 -0
  17. bec_widgets/cli/rpc_wigdet_handler.py +2 -3
  18. bec_widgets/examples/modular_app/modular.ui +92 -0
  19. bec_widgets/examples/modular_app/modular_app.py +197 -0
  20. bec_widgets/examples/motor_movement/motor_control_compilations.py +1 -1
  21. bec_widgets/examples/motor_movement/motor_example.py +3 -12
  22. bec_widgets/utils/bec_connector.py +7 -0
  23. bec_widgets/utils/bec_dispatcher.py +1 -3
  24. bec_widgets/utils/bec_table.py +1 -0
  25. bec_widgets/utils/container_utils.py +3 -0
  26. bec_widgets/utils/crosshair.py +1 -0
  27. bec_widgets/utils/entry_validator.py +2 -0
  28. bec_widgets/utils/layout_manager.py +4 -0
  29. bec_widgets/utils/widget_io.py +5 -0
  30. bec_widgets/utils/yaml_dialog.py +2 -0
  31. bec_widgets/validation/monitor_config_validator.py +2 -1
  32. bec_widgets/widgets/dock/dock_area.py +6 -4
  33. bec_widgets/widgets/figure/figure.py +15 -15
  34. bec_widgets/widgets/monitor/config_dialog.py +3 -19
  35. bec_widgets/widgets/monitor/example_configs/config_device.yaml +60 -0
  36. bec_widgets/widgets/monitor/example_configs/config_scans.yaml +92 -0
  37. bec_widgets/widgets/motor_map/motor_map.py +3 -14
  38. bec_widgets/widgets/plots/image.py +41 -0
  39. bec_widgets/widgets/plots/motor_map.py +16 -9
  40. bec_widgets/widgets/plots/plot_base.py +10 -0
  41. bec_widgets/widgets/plots/waveform.py +31 -0
  42. bec_widgets/widgets/scan_control/scan_control.py +11 -5
  43. bec_widgets/widgets/toolbar/toolbar.py +1 -0
  44. bec_widgets-0.53.0.dist-info/METADATA +33 -0
  45. bec_widgets-0.53.0.dist-info/RECORD +156 -0
  46. {bec_widgets-0.52.0.dist-info → bec_widgets-0.53.0.dist-info}/WHEEL +1 -2
  47. bec_widgets-0.53.0.dist-info/licenses/LICENSE +29 -0
  48. docs/Makefile +20 -0
  49. docs/_templates/custom-class-template.rst +34 -0
  50. docs/_templates/custom-module-template.rst +66 -0
  51. docs/conf.py +81 -0
  52. docs/developer/developer.md +26 -0
  53. docs/developer/reference.md +10 -0
  54. docs/index.md +39 -0
  55. docs/introduction/introduction.md +18 -0
  56. docs/make.bat +35 -0
  57. docs/requirements.txt +10 -0
  58. docs/user/apps/modular_app.md +6 -0
  59. docs/user/apps/motor_app.md +34 -0
  60. docs/user/apps/motor_app_10fps.gif +0 -0
  61. docs/user/apps/plot_app.md +6 -0
  62. docs/user/apps.md +39 -0
  63. docs/user/customisation.md +13 -0
  64. docs/user/installation.md +46 -0
  65. docs/user/user.md +38 -0
  66. docs/user/widgets/motor.gif +0 -0
  67. docs/user/widgets/scatter_2D.gif +0 -0
  68. docs/user/widgets/w1D.gif +0 -0
  69. docs/user/widgets.md +41 -0
  70. pyproject.toml +94 -0
  71. tests/unit_tests/test_bec_dispatcher.py +3 -26
  72. tests/unit_tests/test_bec_figure.py +1 -5
  73. tests/unit_tests/test_bec_motor_map.py +1 -4
  74. tests/unit_tests/test_config_dialog.py +1 -5
  75. tests/unit_tests/test_configs/config_device.yaml +33 -0
  76. tests/unit_tests/test_configs/config_device_no_entry.yaml +27 -0
  77. tests/unit_tests/test_configs/config_scan.yaml +82 -0
  78. tests/unit_tests/test_motor_control.py +1 -1
  79. tests/unit_tests/test_motor_map.py +5 -20
  80. tests/unit_tests/test_stream_plot.py +2 -12
  81. bec_widgets/utils/ctrl_c.py +0 -39
  82. bec_widgets-0.52.0.dist-info/RECORD +0 -115
  83. bec_widgets-0.52.0.dist-info/top_level.txt +0 -2
  84. /bec_widgets-0.52.0.dist-info/LICENSE → /LICENSE +0 -0
  85. /bec_widgets/{simulations/__init__.py → examples/modular_app/___init__.py} +0 -0
CHANGELOG.md ADDED
@@ -0,0 +1,176 @@
1
+ # CHANGELOG
2
+
3
+
4
+
5
+ ## v0.53.0 (2024-05-09)
6
+
7
+ ### Ci
8
+
9
+ * ci: use formatter config of toml file ([`5cc816d`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/5cc816d0af73e20c648e044a027c589704ab1625))
10
+
11
+ ### Documentation
12
+
13
+ * docs: update install instructions ([`57ee735`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/57ee735e5c2436d45a285507cdc939daa20e8e8f))
14
+
15
+ ### Feature
16
+
17
+ * feat: moved to pyproject.toml; closes #162 ([`c86ce30`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/c86ce302a964d71ee631f0817609ab5aa0e3ab0f))
18
+
19
+ ### Fix
20
+
21
+ * fix: fixed semver job and upgraded to v9 ([`32e1a9d`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/32e1a9d8472eb1c25d30697d407a8ffecd04e75d))
22
+
23
+ ### Refactor
24
+
25
+ * refactor: applied formatter ([`4117fd7`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/4117fd7b5b2090ff4fb7ad9e0d92cc87cd13ed5f))
26
+
27
+
28
+ ## v0.52.1 (2024-05-08)
29
+
30
+ ### Fix
31
+
32
+ * fix(docstrings): docstrings formating fixed for sphinx to properly format readdocs ([`7f2f7cd`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/7f2f7cd07a14876617cd83cedde8c281fdc52c3a))
33
+
34
+
35
+ ## v0.52.0 (2024-05-07)
36
+
37
+ ### Ci
38
+
39
+ * ci: fixed support for child pipelines ([`e65c7f3`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/e65c7f3be895ada407bd358edf67d569d2cab08e))
40
+
41
+ ### Feature
42
+
43
+ * feat(utils/layout_manager): added GridLayoutManager to extend functionalities of native QGridLayout ([`fcd6ef0`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/fcd6ef0975dc872f69c9d6fb2b8a1ad04a423aae))
44
+
45
+ * feat(widget/dock): BECDock and BECDock area for dockable windows ([`d8ff8af`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/d8ff8afcd474660a6069bbdab05f10a65f221727))
46
+
47
+ ### Fix
48
+
49
+ * fix(widgets/dock): BECDockArea close overwrites the default pyqtgraph Container close + minor improvements ([`ceae979`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/ceae979f375ecc33c5c97148f197655c1ca57b6c))
50
+
51
+ ### Refactor
52
+
53
+ * refactor(widget/plots): WidgetConfig changed to SubplotConfig ([`03fa1f2`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/03fa1f26d0fa6b58ed05556fb2438d1e62f6c107))
54
+
55
+
56
+ ## v0.51.0 (2024-05-07)
57
+
58
+ ### Build
59
+
60
+ * build(cli): changed repo name to bec_widgets ([`799ea55`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/799ea554de9a7f3720d100be4886a63f02c6a390))
61
+
62
+ * build(setup): fakeredis added to dev env ([`df32350`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/df323504fea024a97304d96c2e39e61450714069))
63
+
64
+ * build(setup): PyQt6 version is set to 6.7 ([`0ab8aa3`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/0ab8aa3a2fe51b5c38b25fca44c1c422bb42478d))
65
+
66
+ ### Ci
67
+
68
+ * ci: added rule for parent-child pipelines ([`e085125`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/e0851250eecb85503db929d37f75d2ba366308a6))
69
+
70
+ ### Feature
71
+
72
+ * feat(utils): added plugin helper to find and load ([`5ece269`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/5ece269adb0e9b0c2a468f1dfbaa6212e86d3561))
73
+
74
+
75
+ ## v0.50.2 (2024-04-30)
76
+
77
+ ### Fix
78
+
79
+ * fix: 'disconnect_slot' has to be symmetric with 'connect_slot' regarding QtThreadSafeCallback ([`0dfcaa4`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/0dfcaa4b708948af0a40ec7cf34d03ff1e96ffac))
80
+
81
+
82
+ ## v0.50.1 (2024-04-29)
83
+
84
+ ### Fix
85
+
86
+ * 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))
87
+
88
+
89
+ ## v0.50.0 (2024-04-29)
90
+
91
+ ### Feature
92
+
93
+ * feat(plots): universal cleanup and remove also for children items ([`381d713`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/381d713837bb9217c58ba1d8b89691aa35c9f5ec))
94
+
95
+ * feat(rpc/rpc_register): singleton rpc register for all rpc connections for session ([`a898e7e`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/a898e7e4f14e9ae854703dddbd1eb8c50cb640ff))
96
+
97
+ ### Fix
98
+
99
+ * fix(widgets/figure): access pattern changed for getting widgets by coordinates for rpc ([`13c018a`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/13c018a79704a7497c140df57179d294e43ecffa))
100
+
101
+ * fix(plots): cleanup policy reviewed for children items ([`8f20a0b`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/8f20a0b3b1b5dd117b36b45645717190b9ee9cbf))
102
+
103
+ * fix(rpc/client_utils): getoutput more transparent + error handling ([`6b6a6b2`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/6b6a6b2249f24d3d02bd5fcd7ef1c63ed794c304))
104
+
105
+ * fix(rpc_register): thread lock for listign all connections ([`2ca3267`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/2ca32675ec3f00137e2140259db51f6e5aa7bb71))
106
+
107
+ ### Test
108
+
109
+ * test(cli/rpc_register): e2e RPCRegister ([`4f261be`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/4f261be4c7cfe54501443d031f9266f4f838f6e2))
110
+
111
+ * test(cli/rpc_register): rpc_register tests added ([`40eb75f`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/40eb75f85a4d99d498b086a37e799276a9d2ac3f))
112
+
113
+
114
+ ## v0.49.1 (2024-04-26)
115
+
116
+ ### Build
117
+
118
+ * build(pyqt6): fixing PyQt6-Qt6 package to 6.6.3 ([`a222298`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/a22229849cbb57c15e4c1bae02d7e52e672f8c4c))
119
+
120
+ ### Fix
121
+
122
+ * fix(widgets/editor): qscintilla editor removed ([`ab85374`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/ab8537483da6c87cb9a0b0f01706208c964f292d))
123
+
124
+
125
+ ## v0.49.0 (2024-04-24)
126
+
127
+ ### Feature
128
+
129
+ * feat(rpc/client_utils): timeout for rpc response ([`6500a00`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/6500a00682a2a7ca535a138bd9496ed8470856a8))
130
+
131
+ ### Fix
132
+
133
+ * fix(rpc/client_utils): close clean up policy for BECFigure ([`9602085`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/9602085f82cbc983f89b5bfe48bf35f08438fa87))
134
+
135
+
136
+ ## v0.48.0 (2024-04-24)
137
+
138
+ ### Feature
139
+
140
+ * feat(cli): added auto updates plugin support ([`6238693`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/6238693ffb44b47a56b969bc4129f2af7a2c04fe))
141
+
142
+
143
+ ## v0.47.0 (2024-04-23)
144
+
145
+ ### Feature
146
+
147
+ * feat(utils/thread_checker): util class to check the thread leakage for closeEvent in qt ([`71cb80d`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/71cb80d544c5f4ef499379a431ce0c17907c7ce8))
148
+
149
+ ### Refactor
150
+
151
+ * refactor(utils/container_utils): part of the logic regarding locating widgets moved from BECFigure to utility class ([`77ff796`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/77ff7962cc91bce15d1c91b67b75b66fbea612c3))
152
+
153
+
154
+ ## v0.46.7 (2024-04-21)
155
+
156
+ ### Fix
157
+
158
+ * fix(plot/image): monitors are now validated with current bec session ([`67a99a1`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/67a99a1a19c261f9a1f09635f274cd9fbfe53639))
159
+
160
+
161
+ ## v0.46.6 (2024-04-19)
162
+
163
+ ### Ci
164
+
165
+ * ci: changed ophyd default branch to main ([`81484e8`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/81484e8160a4a09907313ed747c27ab3b6cbfdc4))
166
+
167
+ ### Fix
168
+
169
+ * fix(cli): fixed support for devices as cli input ([`1111610`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/1111610f3206c5c46db6b4bd1e8827f1a4cd9e3f))
170
+
171
+
172
+ ## v0.46.5 (2024-04-19)
173
+
174
+ ### Test
175
+
176
+ * test(rpc/bec_figure): test_rpc_plotting_shortcuts_init_configs extended by testing scatter z gradient for BECWaveform through RPC ([`a156803`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/a1568033899bbcdbd457e697d6c8d478df26ba54))
PKG-INFO ADDED
@@ -0,0 +1,33 @@
1
+ Metadata-Version: 2.3
2
+ Name: bec_widgets
3
+ Version: 0.53.0
4
+ Summary: BEC Widgets
5
+ Project-URL: Bug Tracker, https://gitlab.psi.ch/bec/bec_widgets/issues
6
+ Project-URL: Homepage, https://gitlab.psi.ch/bec/bec_widgets
7
+ License-File: LICENSE
8
+ Classifier: Development Status :: 3 - Alpha
9
+ Classifier: Programming Language :: Python :: 3
10
+ Classifier: Topic :: Scientific/Engineering
11
+ Requires-Python: >=3.10
12
+ Requires-Dist: bec-lib
13
+ Requires-Dist: black
14
+ Requires-Dist: h5py
15
+ Requires-Dist: jedi
16
+ Requires-Dist: pydantic
17
+ Requires-Dist: pyqtdarktheme
18
+ Requires-Dist: pyqtgraph
19
+ Requires-Dist: qtconsole
20
+ Requires-Dist: qtpy
21
+ Requires-Dist: zmq
22
+ Provides-Extra: dev
23
+ Requires-Dist: coverage; extra == 'dev'
24
+ Requires-Dist: fakeredis; extra == 'dev'
25
+ Requires-Dist: isort; extra == 'dev'
26
+ Requires-Dist: pytest; extra == 'dev'
27
+ Requires-Dist: pytest-qt; extra == 'dev'
28
+ Requires-Dist: pytest-random-order; extra == 'dev'
29
+ Requires-Dist: pytest-timeout; extra == 'dev'
30
+ Provides-Extra: pyqt5
31
+ Requires-Dist: pyqt5>=5.9; extra == 'pyqt5'
32
+ Provides-Extra: pyqt6
33
+ Requires-Dist: pyqt6>=6.7; extra == 'pyqt6'
@@ -1,40 +1,3 @@
1
- Metadata-Version: 2.1
2
- Name: bec-widgets
3
- Version: 0.52.0
4
- Summary: BEC Widgets
5
- Home-page: https://gitlab.psi.ch/bec/bec-widgets
6
- Project-URL: Bug Tracker, https://gitlab.psi.ch/bec/bec-widgets/issues
7
- Classifier: Programming Language :: Python :: 3
8
- Classifier: Development Status :: 3 - Alpha
9
- Classifier: Topic :: Scientific/Engineering
10
- Requires-Python: >=3.10
11
- Description-Content-Type: text/markdown
12
- License-File: LICENSE
13
- Requires-Dist: pydantic
14
- Requires-Dist: qtconsole
15
- Requires-Dist: PyQt6 >=6.7
16
- Requires-Dist: jedi
17
- Requires-Dist: qtpy
18
- Requires-Dist: pyqtgraph
19
- Requires-Dist: bec-lib
20
- Requires-Dist: zmq
21
- Requires-Dist: h5py
22
- Requires-Dist: pyqtdarktheme
23
- Requires-Dist: black
24
- Provides-Extra: dev
25
- Requires-Dist: pytest ; extra == 'dev'
26
- Requires-Dist: pytest-random-order ; extra == 'dev'
27
- Requires-Dist: pytest-timeout ; extra == 'dev'
28
- Requires-Dist: coverage ; extra == 'dev'
29
- Requires-Dist: pytest-qt ; extra == 'dev'
30
- Requires-Dist: black ; extra == 'dev'
31
- Requires-Dist: isort ; extra == 'dev'
32
- Requires-Dist: fakeredis ; extra == 'dev'
33
- Provides-Extra: pyqt5
34
- Requires-Dist: PyQt5 >=5.9 ; extra == 'pyqt5'
35
- Provides-Extra: pyqt6
36
- Requires-Dist: PyQt6 >=6.7 ; extra == 'pyqt6'
37
-
38
1
  # BEC Widgets
39
2
 
40
3
  BEC Widgets is a GUI framework designed for interaction with [BEC (Beamline Experiment Control)](https://gitlab.psi.ch/bec/bec).
@@ -43,7 +6,7 @@ BEC Widgets is a GUI framework designed for interaction with [BEC (Beamline Expe
43
6
  Use the package manager [pip](https://pip.pypa.io/en/stable/) to install BEC Widgets:
44
7
 
45
8
  ```bash
46
- pip install bec_widgets
9
+ pip install bec_widgets PyQt6
47
10
  ```
48
11
 
49
12
  For development purposes, you can clone the repository and install the package locally in editable mode:
@@ -51,10 +14,11 @@ For development purposes, you can clone the repository and install the package l
51
14
  ```bash
52
15
  git clone https://gitlab.psi.ch/bec/bec-widgets
53
16
  cd bec_widgets
54
- pip install -e .[dev]
17
+ pip install -e .[dev,pyqt6]
55
18
  ```
56
19
 
57
- BEC Widgets currently supports both PyQt5 and PyQt6. By default, PyQt6 is installed.
20
+ BEC Widgets currently supports both PyQt5 and PyQt6, however, no default distribution is specified. As a result, users must install one of the supported
21
+ Python Qt distributions manually.
58
22
 
59
23
  To select a specific Python Qt distribution, install the package with an additional tag:
60
24
 
@@ -68,7 +32,7 @@ pip install bec_widgets[pyqt5]
68
32
  ```
69
33
  ## Documentation
70
34
 
71
- Documentation of BEC Widgets can be found [here](https://bec-widgets.readthedocs.io/en/latest/). The documentation of the BEC can be found [here](https://beamline-experiment-control.readthedocs.io/en/latest/).
35
+ Documentation of BEC Widgets can be found [here](https://bec-widgets.readthedocs.io/en/latest/). The documentation of the BEC can be found [here](https://bec.readthedocs.io/en/latest/).
72
36
 
73
37
  ## Contributing
74
38
 
@@ -107,4 +71,4 @@ All commits should use the Angular commit scheme:
107
71
 
108
72
  ## License
109
73
 
110
- [BSD-3-Clause](https://choosealicense.com/licenses/bsd-3-clause/)
74
+ [BSD-3-Clause](https://choosealicense.com/licenses/bsd-3-clause/)