bec-widgets 0.113.0__py3-none-any.whl → 0.115.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.
CHANGELOG.md CHANGED
@@ -1,18 +1,51 @@
1
1
  # CHANGELOG
2
2
 
3
+
4
+ ## v0.115.0 (2024-10-08)
5
+
6
+ ### Features
7
+
8
+ * feat: add bec-app script to launch applications ([`8bf4842`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/8bf48427884338672a8e3de3deb20439b0bfdf99))
9
+
10
+ ### Fixes
11
+
12
+ * fix: make Alignment1D a MainWindow as it is an application ([`c5e9ed6`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/c5e9ed6e422acb908e1ada32822f5d7cc256ade7))
13
+
14
+ * fix: adjust bec_qthemes dependency ([`b207e45`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/b207e45a67818ee061272ce00a09fe7ea31cd1ba))
15
+
16
+
17
+ ## v0.114.0 (2024-10-02)
18
+
19
+ ### Features
20
+
21
+ * feat: new 'scan_axis' signal
22
+
23
+ Signal is emitted before "scan_started", to inform about scan positioner
24
+ and (start, stop) positions. In case of multiple bundles, the signal
25
+ is emitted multiple times. ([`f084e25`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/f084e2514bc9459cccaa951b79044bc25884e738))
26
+
27
+ ### Fixes
28
+
29
+ * fix: prevent exception when empty string updates are coming from widget ([`04cfb1e`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/04cfb1edf19437d54f07b868bcf3cfc2a35fd3bc))
30
+
31
+ * fix: use new 'scan_axis' signal, to set_x and select x axis on waveform
32
+
33
+ Fixes #361, do not try to change x axis when not permitted ([`efa2763`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/efa276358b0f5a45cce9fa84fa5f9aafaf4284f7))
34
+
35
+
3
36
  ## v0.113.0 (2024-10-02)
4
37
 
5
- ### Feature
38
+ ### Features
6
39
 
7
40
  * feat: add first draft for alignment_1d GUI ([`63c24f9`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/63c24f97a355edaa928b6e222909252b276bcada))
8
41
 
9
42
  * feat: add move to position button to lmfit dialog ([`281cb27`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/281cb27d8b5433e27a7ba0ca0a19e4b45b9c544f))
10
43
 
11
- ### Fix
44
+ ### Fixes
12
45
 
13
46
  * fix: add is_log checks and functionality to plot_indicator_items ([`0f9953e`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/0f9953e8fdcf3f9b5a09f994c69edb6b34756df9))
14
47
 
15
- ### Refactor
48
+ ### Refactoring
16
49
 
17
50
  * refactor: various minor improvements for the alignment gui ([`f554f3c`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/f554f3c1672c4fe32968a5991dc98802556a6f3b))
18
51
 
@@ -26,7 +59,7 @@
26
59
 
27
60
  * refactor: use accent colors for bec_status_box icons; closes #338 ([`e039304`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/e039304fd3ee03dc4a3fa22a69c207139e0c0d28))
28
61
 
29
- ### Test
62
+ ### Testing
30
63
 
31
64
  * test: add tests for scan_status_callback ([`dc0c825`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/dc0c825fd594c093a24543ff803d6c6564010e92))
32
65
 
@@ -34,6 +67,7 @@
34
67
 
35
68
  * feat : Add bec_signal_proxy to handle signals with option to unblock them manually. ([`1dcfeb6`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/1dcfeb6cfce3c69f0c5401731d4d3f9a1981b22e))
36
69
 
70
+
37
71
  ## v0.112.1 (2024-09-19)
38
72
 
39
73
  ### Documentation
@@ -42,27 +76,29 @@
42
76
 
43
77
  * docs(device_box): updated screenshot ([`c8e614b`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/c8e614b575b48be788a6389a7aa0cfa033d86ab8))
44
78
 
45
- ### Fix
79
+ ### Fixes
46
80
 
47
81
  * fix: test e2e dap wait_for_fit ([`b2f7d3c`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/b2f7d3c5f3f4bf00cc628f788e2c278ebb5688ae))
48
82
 
83
+
49
84
  ## v0.112.0 (2024-09-17)
50
85
 
51
- ### Feature
86
+ ### Features
52
87
 
53
88
  * feat: console: various improvements, auto-adapt rows to widget size, Qt Designer plugin ([`286ad71`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/286ad7196b0b8562d648fb304eab7d759b6a959b))
54
89
 
90
+
55
91
  ## v0.111.0 (2024-09-17)
56
92
 
57
93
  ### Documentation
58
94
 
59
95
  * docs(position_indicator): updated position indicator documentation and added designer properties ([`60f7d54`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/60f7d54e2b4c3129de6c95729b8b4aea1757174f))
60
96
 
61
- ### Feature
97
+ ### Features
62
98
 
63
99
  * feat(position_indicator): improved design and added more customization options ([`d15b222`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/d15b22250fbceb708d89872c0380693e04acb107))
64
100
 
65
- ### Fix
101
+ ### Fixes
66
102
 
67
103
  * fix(position_indicator): fixed user access ([`dd932dd`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/dd932dd8f3910ab67ec8403124f4e176d048e542))
68
104
 
@@ -72,86 +108,66 @@
72
108
 
73
109
  * fix(palette viewer): fixed background for tool tip ([`9045323`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/9045323049d2a39c36fc8845f3b2883d6933436b))
74
110
 
111
+
75
112
  ## v0.110.0 (2024-09-12)
76
113
 
77
- ### Feature
114
+ ### Features
78
115
 
79
116
  * feat(palette_viewer): added widget to display the current palette and accent colors ([`a8576c1`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/a8576c164cad17746ec4fcd5c775fb78f70c055c))
80
117
 
118
+
81
119
  ## v0.109.1 (2024-09-09)
82
120
 
83
- ### Fix
121
+ ### Fixes
84
122
 
85
123
  * fix: refactor textbox widget, remove inheritance, adhere to bec style; closes #324 ([`b0d786b`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/b0d786b991677c0846a0c6ba3f2252d48d94ccaa))
86
124
 
125
+
87
126
  ## v0.109.0 (2024-09-06)
88
127
 
89
- ### Feature
128
+ ### Features
90
129
 
91
130
  * feat(accent colors): added helper function to get all accent colors ([`84a59f7`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/84a59f70eed6d8a3c3aeeabc77a5f9ea4e864f61))
92
131
 
93
- ### Fix
132
+ ### Fixes
94
133
 
95
134
  * fix(theme): fixed theme access for themecontainer ([`de303f0`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/de303f0227fc9d3a74a0410f1e7999ac5132273c))
96
135
 
136
+
97
137
  ## v0.108.0 (2024-09-06)
98
138
 
99
139
  ### Documentation
100
140
 
101
141
  * docs(progressbar): added docs ([`7d07cea`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/7d07cea946f9c884477b01bebfb60b332ff09e0a))
102
142
 
103
- ### Feature
143
+ ### Features
104
144
 
105
145
  * feat(progressbar): added bec progressbar ([`f6d1d0b`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/f6d1d0bbe3ba30a3b7291cd36a1f7f8e6bd5b895))
106
146
 
107
147
  * feat(generate_cli): added support for property and qproperty setter ([`a52182d`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/a52182dca978833bfc3fad755c596d3a2ef45c42))
108
148
 
149
+
109
150
  ## v0.107.0 (2024-09-06)
110
151
 
111
152
  ### Documentation
112
153
 
113
154
  * docs: extend waveform docs ([`e6976dc`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/e6976dc15105209852090a00a97b7cda723142e9))
114
155
 
115
- ### Feature
156
+ ### Features
116
157
 
117
158
  * feat: add roi select for dap, allow automatic clear curves on plot request ([`7bdca84`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/7bdca8431496fe6562d2c28f5a6af869d1a2e654))
118
159
 
119
- ### Refactor
160
+ ### Refactoring
120
161
 
121
162
  * refactor: change style to bec_accent_colors ([`bd126dd`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/bd126dddbbec3e6c448cce263433d328d577c5c0))
122
163
 
123
- ### Test
164
+ ### Testing
124
165
 
125
166
  * test: add tests, including extension to end-2-end test ([`b1aff6d`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/b1aff6d791ff847eb2f628e66ccaa4672fdeea08))
126
167
 
168
+
127
169
  ## v0.106.0 (2024-09-05)
128
170
 
129
- ### Feature
171
+ ### Features
130
172
 
131
173
  * feat(plot_base): toggle to switch outer axes for plotting widgets ([`06d7741`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/06d7741622aea8556208cd17cae521c37333f8b6))
132
-
133
- ### Refactor
134
-
135
- * refactor: use DAPComboBox in curve_dialog selection ([`998a745`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/998a7451335b1b35c3e18691d3bab8d882e2d30b))
136
-
137
- ### Test
138
-
139
- * test: fix tests ([`6b15abc`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/6b15abcc73170cb49292741a619a08ee615e6250))
140
-
141
- ## v0.105.0 (2024-09-04)
142
-
143
- ### Feature
144
-
145
- * feat: add dap_combobox ([`cc691d4`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/cc691d4039bde710e78f362d2f0e712f9e8f196f))
146
-
147
- ### Refactor
148
-
149
- * refactor: cleanup and renaming of slot/signals ([`0fd5cee`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/0fd5cee77611b6645326eaefa68455ea8de26597))
150
-
151
- * refactor(logger): changed prints to logger calls ([`3a5d7d0`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/3a5d7d07966ab9b38ba33bda0bed38c30f500c66))
152
-
153
- ## v0.104.0 (2024-09-04)
154
-
155
- ### Fix
156
-
157
- * fix(scan_control): SafeSlot applied to run_scan to avoid faulty scan requests ([`9047916`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/90479167fb5cae393c884e71a80fcfdb48a76427))
PKG-INFO CHANGED
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: bec_widgets
3
- Version: 0.113.0
3
+ Version: 0.115.0
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
@@ -11,7 +11,7 @@ Classifier: Topic :: Scientific/Engineering
11
11
  Requires-Python: >=3.10
12
12
  Requires-Dist: bec-ipython-client>=2.21.4,~=2.21
13
13
  Requires-Dist: bec-lib>=2.21.4,~=2.21
14
- Requires-Dist: bec-qthemes>=0.4.2,~=0.4
14
+ Requires-Dist: bec-qthemes>=0.7,~=0.7
15
15
  Requires-Dist: black~=24.0
16
16
  Requires-Dist: isort>=5.13.2,~=5.13
17
17
  Requires-Dist: pydantic~=2.0
@@ -10,7 +10,7 @@ from bec_lib.device import Signal as BECSignal
10
10
  from bec_lib.endpoints import MessageEndpoints
11
11
  from qtpy.QtCore import QSize, Signal
12
12
  from qtpy.QtGui import QIcon
13
- from qtpy.QtWidgets import QCheckBox, QDoubleSpinBox, QPushButton, QSpinBox, QVBoxLayout, QWidget
13
+ from qtpy.QtWidgets import QCheckBox, QDoubleSpinBox, QMainWindow, QPushButton, QSpinBox
14
14
 
15
15
  import bec_widgets
16
16
  from bec_widgets.qt_utils.error_popups import SafeSlot as Slot
@@ -29,15 +29,13 @@ from bec_widgets.widgets.waveform.waveform_widget import BECWaveformWidget
29
29
  MODULE_PATH = os.path.dirname(bec_widgets.__file__)
30
30
 
31
31
 
32
- class Alignment1D(BECWidget, QWidget):
32
+ class Alignment1D(BECWidget, QMainWindow):
33
33
  """Alignment GUI to perform 1D scans"""
34
34
 
35
35
  # Emit a signal when a motion is ongoing
36
36
  motion_is_active = Signal(bool)
37
37
 
38
- def __init__(
39
- self, parent: Optional[QWidget] = None, client=None, gui_id: Optional[str] = None
40
- ) -> None:
38
+ def __init__(self, client=None, gui_id: Optional[str] = None) -> None:
41
39
  """Initialise the widget
42
40
 
43
41
  Args:
@@ -47,7 +45,7 @@ class Alignment1D(BECWidget, QWidget):
47
45
  gui_id: GUI ID.
48
46
  """
49
47
  super().__init__(client=client, gui_id=gui_id)
50
- QWidget.__init__(self, parent)
48
+ QMainWindow.__init__(self)
51
49
  self.get_bec_shortcuts()
52
50
  self._accent_colors = get_accent_colors()
53
51
  self.ui_file = "alignment_1d.ui"
@@ -60,9 +58,7 @@ class Alignment1D(BECWidget, QWidget):
60
58
  """Initialise the UI from QT Designer file"""
61
59
  current_path = os.path.dirname(__file__)
62
60
  self.ui = UILoader(self).loader(os.path.join(current_path, self.ui_file))
63
- layout = QVBoxLayout(self)
64
- layout.addWidget(self.ui)
65
- self.setLayout(layout)
61
+ self.setCentralWidget(self.ui)
66
62
  # Customize the plotting widget
67
63
  self.waveform = self.ui.findChild(BECWaveformWidget, "bec_waveform_widget")
68
64
  self._customise_bec_waveform_widget()
@@ -249,7 +245,7 @@ class Alignment1D(BECWidget, QWidget):
249
245
  box.ui.position_indicator.setFixedHeight(20)
250
246
 
251
247
 
252
- if __name__ == "__main__": # pragma: no cover
248
+ def main():
253
249
  import sys
254
250
 
255
251
  from qtpy.QtWidgets import QApplication # pylint: disable=ungrouped-imports
@@ -263,3 +259,7 @@ if __name__ == "__main__": # pragma: no cover
263
259
  window = Alignment1D()
264
260
  window.show()
265
261
  sys.exit(app.exec_())
262
+
263
+
264
+ if __name__ == "__main__": # pragma: no cover
265
+ main()
@@ -721,22 +721,6 @@
721
721
  </tabstops>
722
722
  <resources/>
723
723
  <connections>
724
- <connection>
725
- <sender>device_combobox</sender>
726
- <signal>currentTextChanged(QString)</signal>
727
- <receiver>dap_combo_box</receiver>
728
- <slot>select_x_axis(QString)</slot>
729
- <hints>
730
- <hint type="sourcelabel">
731
- <x>162</x>
732
- <y>170</y>
733
- </hint>
734
- <hint type="destinationlabel">
735
- <x>467</x>
736
- <y>170</y>
737
- </hint>
738
- </hints>
739
- </connection>
740
724
  <connection>
741
725
  <sender>device_combobox_2</sender>
742
726
  <signal>currentTextChanged(QString)</signal>
@@ -801,22 +785,6 @@
801
785
  </hint>
802
786
  </hints>
803
787
  </connection>
804
- <connection>
805
- <sender>device_combobox</sender>
806
- <signal>currentTextChanged(QString)</signal>
807
- <receiver>bec_waveform_widget</receiver>
808
- <slot>set_x(QString)</slot>
809
- <hints>
810
- <hint type="sourcelabel">
811
- <x>162</x>
812
- <y>170</y>
813
- </hint>
814
- <hint type="destinationlabel">
815
- <x>1099</x>
816
- <y>258</y>
817
- </hint>
818
- </hints>
819
- </connection>
820
788
  <connection>
821
789
  <sender>toggle_switch</sender>
822
790
  <signal>enabled(bool)</signal>
@@ -865,5 +833,55 @@
865
833
  </hint>
866
834
  </hints>
867
835
  </connection>
836
+ <!--
837
+ <connection>
838
+ <sender>device_combobox</sender>
839
+ <signal>currentTextChanged(QString)</signal>
840
+ <receiver>bec_waveform_widget</receiver>
841
+ <slot>set_x(QString)</slot>
842
+ <hints>
843
+ <hint type="sourcelabel">
844
+ <x>297</x>
845
+ <y>170</y>
846
+ </hint>
847
+ <hint type="destinationlabel">
848
+ <x>467</x>
849
+ <y>170</y>
850
+ </hint>
851
+ </hints>
852
+ </connection>
853
+ -->
854
+ <connection>
855
+ <sender>scan_control</sender>
856
+ <signal>scan_axis(QString,double,double)</signal>
857
+ <receiver>bec_waveform_widget</receiver>
858
+ <slot>set_x(QString)</slot>
859
+ <hints>
860
+ <hint type="sourcelabel">
861
+ <x>244</x>
862
+ <y>348</y>
863
+ </hint>
864
+ <hint type="destinationlabel">
865
+ <x>1140</x>
866
+ <y>491</y>
867
+ </hint>
868
+ </hints>
869
+ </connection>
870
+ <connection>
871
+ <sender>scan_control</sender>
872
+ <signal>scan_axis(QString,double,double)</signal>
873
+ <receiver>dap_combo_box</receiver>
874
+ <slot>select_x_axis(QString)</slot>
875
+ <hints>
876
+ <hint type="sourcelabel">
877
+ <x>244</x>
878
+ <y>322</y>
879
+ </hint>
880
+ <hint type="destinationlabel">
881
+ <x>909</x>
882
+ <y>189</y>
883
+ </hint>
884
+ </hints>
885
+ </connection>
868
886
  </connections>
869
887
  </ui>
@@ -0,0 +1,84 @@
1
+ """
2
+ Launcher for BEC GUI Applications
3
+
4
+ Application must be located in bec_widgets/applications ;
5
+ in order for the launcher to find the application, it has to be put in
6
+ a subdirectory with the same name as the main Python module:
7
+
8
+ /bec_widgets/applications
9
+ ├── alignment
10
+ │ └── alignment_1d
11
+ │ └── alignment_1d.py
12
+ ├── other_app
13
+ └── other_app.py
14
+
15
+ The tree above would contain 2 applications, alignment_1d and other_app.
16
+
17
+ The Python module for the application must have `if __name__ == "__main__":`
18
+ in order for the launcher to execute it (it is run with `python -m`).
19
+ """
20
+
21
+ import argparse
22
+ import os
23
+ import sys
24
+
25
+ MODULE_PATH = os.path.dirname(__file__)
26
+
27
+
28
+ def find_apps(base_dir: str) -> list[str]:
29
+ matching_modules = []
30
+
31
+ for root, dirs, files in os.walk(base_dir):
32
+ parent_dir = os.path.basename(root)
33
+
34
+ for file in files:
35
+ if file.endswith(".py") and file != "__init__.py":
36
+ file_name_without_ext = os.path.splitext(file)[0]
37
+
38
+ if file_name_without_ext == parent_dir:
39
+ rel_path = os.path.relpath(root, base_dir)
40
+ module_path = rel_path.replace(os.sep, ".")
41
+
42
+ module_name = f"{module_path}.{file_name_without_ext}"
43
+ matching_modules.append((file_name_without_ext, module_name))
44
+
45
+ return matching_modules
46
+
47
+
48
+ def main():
49
+ parser = argparse.ArgumentParser(description="BEC application launcher")
50
+
51
+ parser.add_argument("-m", "--module", type=str, help="The module to run (string argument).")
52
+
53
+ # Add a positional argument for the module, which acts as a fallback if -m is not provided
54
+ parser.add_argument(
55
+ "positional_module",
56
+ nargs="?", # This makes the positional argument optional
57
+ help="Positional argument that is treated as module if -m is not specified.",
58
+ )
59
+
60
+ args = parser.parse_args()
61
+ # If the -m/--module is not provided, fallback to the positional argument
62
+ module = args.module if args.module else args.positional_module
63
+
64
+ if module:
65
+ for app_name, app_module in find_apps(MODULE_PATH):
66
+ if module in (app_name, app_module):
67
+ print("Starting:", app_name)
68
+ python_executable = sys.executable
69
+
70
+ # Replace the current process with the new Python module
71
+ os.execvp(
72
+ python_executable,
73
+ [python_executable, "-m", f"bec_widgets.applications.{app_module}"],
74
+ )
75
+ print(f"Error: cannot find application {module}")
76
+
77
+ # display list of apps
78
+ print("Available applications:")
79
+ for app, _ in find_apps(MODULE_PATH):
80
+ print(f" - {app}")
81
+
82
+
83
+ if __name__ == "__main__": # pragma: no cover
84
+ main()
@@ -467,6 +467,10 @@ class BECWaveform(BECPlotBase):
467
467
  - Custom signal name of device from BEC.
468
468
  x_entry(str): Entry of the x signal.
469
469
  """
470
+ if not x_name:
471
+ # this can happen, if executed by a signal from a widget
472
+ return
473
+
470
474
  curve_configs = self.config.curves
471
475
  curve_ids = list(curve_configs.keys())
472
476
  curve_configs = list(curve_configs.values())
@@ -631,6 +635,13 @@ class BECWaveform(BECPlotBase):
631
635
  x_name = mode if mode is not None else "best_effort"
632
636
  self.x_axis_mode["name"] = x_name
633
637
 
638
+ if not x_name or not y_name:
639
+ # can happen if executed from a signal from a widget ;
640
+ # the code above has to be executed to set some other
641
+ # variables, but it cannot continue if both names are
642
+ # not set properly -> exit here
643
+ return
644
+
634
645
  # 3. Check - Get entry if not provided and validate
635
646
  x_entry, y_entry, z_entry = self._validate_signal_entries(
636
647
  x_name, y_name, z_name, x_entry, y_entry, z_entry, validate_bec
@@ -42,6 +42,7 @@ class ScanControl(BECWidget, QWidget):
42
42
 
43
43
  scan_started = Signal()
44
44
  scan_selected = Signal(str)
45
+ scan_axis = Signal(str, float, float)
45
46
 
46
47
  def __init__(
47
48
  self,
@@ -503,10 +504,12 @@ class ScanControl(BECWidget, QWidget):
503
504
  @SafeSlot(popup_error=True)
504
505
  def run_scan(self):
505
506
  """Starts the selected scan with the given parameters."""
506
- self.scan_started.emit()
507
507
  args, kwargs = self.get_scan_parameters()
508
+ for device, start, stop in zip(*[iter(args)] * 3):
509
+ self.scan_axis.emit(device.name, start, stop)
508
510
  scan_function = getattr(self.scans, self.comboBox_scan_selection.currentText())
509
511
  if callable(scan_function):
512
+ self.scan_started.emit()
510
513
  scan_function(*args, **kwargs)
511
514
 
512
515
  def cleanup(self):
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: bec_widgets
3
- Version: 0.113.0
3
+ Version: 0.115.0
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
@@ -11,7 +11,7 @@ Classifier: Topic :: Scientific/Engineering
11
11
  Requires-Python: >=3.10
12
12
  Requires-Dist: bec-ipython-client>=2.21.4,~=2.21
13
13
  Requires-Dist: bec-lib>=2.21.4,~=2.21
14
- Requires-Dist: bec-qthemes>=0.4.2,~=0.4
14
+ Requires-Dist: bec-qthemes>=0.7,~=0.7
15
15
  Requires-Dist: black~=24.0
16
16
  Requires-Dist: isort>=5.13.2,~=5.13
17
17
  Requires-Dist: pydantic~=2.0
@@ -2,11 +2,11 @@
2
2
  .gitlab-ci.yml,sha256=Dc1iDjsc72UxdUtihx4uSZU0lrTQeR8hZwGx1MQBfKE,8432
3
3
  .pylintrc,sha256=eeY8YwSI74oFfq6IYIbCqnx3Vk8ZncKaatv96n_Y8Rs,18544
4
4
  .readthedocs.yaml,sha256=aSOc277LqXcsTI6lgvm_JY80lMlr69GbPKgivua2cS0,603
5
- CHANGELOG.md,sha256=MsTSF60CZ8CIFVa6uxezN4uFqtKKwx3EtNpXThid_0g,6989
5
+ CHANGELOG.md,sha256=xNxt0fWzJsTPx07OGBYWsh3-b6Xyeo9NiZhKFZwoh9U,7301
6
6
  LICENSE,sha256=YRKe85CBRyP7UpEAWwU8_qSIyuy5-l_9C-HKg5Qm8MQ,1511
7
- PKG-INFO,sha256=C4C8XhGH6pOZ-_r4CnJWLdDM-x8W0u4MwToUKkVTD0I,1334
7
+ PKG-INFO,sha256=F0J9ZxDrWcTo3KqHlmYp2bBktM7rUMVBHFSp2aXhyug,1332
8
8
  README.md,sha256=Od69x-RS85Hph0-WwWACwal4yUd67XkEn4APEfHhHFw,2649
9
- pyproject.toml,sha256=i4en2BSq0FQlp72LBk4g93_t1N4lyRd3UCXW_oeFCuQ,2544
9
+ pyproject.toml,sha256=Ugkyy648qWHFcUST0xsGFrK3TFSnz9EyC3ifu5L8IUg,2592
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
@@ -14,10 +14,11 @@ pyproject.toml,sha256=i4en2BSq0FQlp72LBk4g93_t1N4lyRd3UCXW_oeFCuQ,2544
14
14
  .gitlab/merge_request_templates/default.md,sha256=tfyFA0hRCsIunbLGSlGbxWBQFeB3USpsA3H7IvwQ5UY,715
15
15
  bec_widgets/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
16
16
  bec_widgets/applications/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
17
+ bec_widgets/applications/bec_app.py,sha256=PptBknsnhWm5GSE-xBps4EAYP3f9i-q9YmUMROupnqQ,2801
17
18
  bec_widgets/applications/alignment/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
18
19
  bec_widgets/applications/alignment/alignment_1d/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
19
- bec_widgets/applications/alignment/alignment_1d/alignment_1d.py,sha256=V3blVi6iZbZBfzd7hzAk1ZGdSwiV2C6ZvZr9OUBAfNg,11293
20
- bec_widgets/applications/alignment/alignment_1d/alignment_1d.ui,sha256=-ZrQelty_vHKPICgtOmoxRsLp13StOOwegTuJp0Xshw,27154
20
+ bec_widgets/applications/alignment/alignment_1d/alignment_1d.py,sha256=eGqEXKVz4kSdaIBZAKfuI4pwYoLWwKyLjTY1eB31kgk,11200
21
+ bec_widgets/applications/alignment/alignment_1d/alignment_1d.ui,sha256=qgYZnT78MZmugVdTWUJSQNlAOJW278d2wEZ9bGXe94s,27537
21
22
  bec_widgets/assets/app_icons/BEC-General-App.png,sha256=hc2ktly53DZAbl_rE3cb-vdRa5gtdCmBEjfwm2y5P4g,447581
22
23
  bec_widgets/assets/app_icons/alignment_1d.png,sha256=5VouaWieb4lVv3wUBNHaO5ovUW2Fk25aTKYQzOWy0mg,2071069
23
24
  bec_widgets/assets/app_icons/bec_widgets_icon.png,sha256=K8dgGwIjalDh9PRHUsSQBqgdX7a00nM3igZdc20pkYM,1747017
@@ -169,7 +170,7 @@ bec_widgets/widgets/figure/plots/image/image_processor.py,sha256=GeTtWjbldy6VejM
169
170
  bec_widgets/widgets/figure/plots/motor_map/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
170
171
  bec_widgets/widgets/figure/plots/motor_map/motor_map.py,sha256=AiDq4bmcEoj9PlkRQtHCk-5cwvOFGPBcfxPNNr8E53Y,18399
171
172
  bec_widgets/widgets/figure/plots/waveform/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
172
- bec_widgets/widgets/figure/plots/waveform/waveform.py,sha256=wESdww5oTdAfVsW4M_kOZlxvEy5fFKKlDaf7NQuXXts,56296
173
+ bec_widgets/widgets/figure/plots/waveform/waveform.py,sha256=N3sF0TWJblsznTU8ZSt8QNvoXo7CZEiuDZymJsQUZzA,56708
173
174
  bec_widgets/widgets/figure/plots/waveform/waveform_curve.py,sha256=RUo4GfXwlaCei8BBvWBQF3IEB8h-KgpvaHur6JUvT6s,8682
174
175
  bec_widgets/widgets/image/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
175
176
  bec_widgets/widgets/image/bec_image_widget.pyproject,sha256=PHisdBo5_5UCApd27GkizzqgfdjsDx2bFZa_p9LiSW8,30
@@ -217,7 +218,7 @@ bec_widgets/widgets/ring_progress_bar/ring_progress_bar.pyproject,sha256=ZNYDnKD
217
218
  bec_widgets/widgets/ring_progress_bar/ring_progress_bar_plugin.py,sha256=-rw9ZSThgAH0Ubbr3X-L5x-ZqMXUGnauyFb4OmfUvD4,1394
218
219
  bec_widgets/widgets/scan_control/__init__.py,sha256=IOfHl15vxb_uC6KN62-PeUzbBha_vQyqkkXbJ2HU674,38
219
220
  bec_widgets/widgets/scan_control/register_scan_control.py,sha256=xUX2yR0-MaIMg9_y9qe50yDDphzsh2x1b5PMrF90yPM,475
220
- bec_widgets/widgets/scan_control/scan_control.py,sha256=wW_UwZbu9wgzRHTaB4gjtcr7txz9Hy27aKruNmMmK2w,19180
221
+ bec_widgets/widgets/scan_control/scan_control.py,sha256=xR043qG1biFePq7bmfZZTcCvoQovObDe9cjRj-B-ylA,19343
221
222
  bec_widgets/widgets/scan_control/scan_control.pyproject,sha256=eTgVDFKToIH8_BbJjM2RvbOLr7HnYoidX0SAHx640DM,30
222
223
  bec_widgets/widgets/scan_control/scan_control_plugin.py,sha256=7GaqmaRgbwIPjVoXcyKVDl8UpfqC2weViup-YFfzUsM,1270
223
224
  bec_widgets/widgets/scan_control/scan_group_box.py,sha256=H2QQFvRlmpF-lilmRRNB-vsAcYQkDYhbHZo32hPRVr8,10488
@@ -262,8 +263,8 @@ bec_widgets/widgets/website/register_website_widget.py,sha256=LIQJpV9uqcBiPR9cEA
262
263
  bec_widgets/widgets/website/website.py,sha256=42pncCc_zI2eqeMArIurVmPUukRo5bTxa2h1Skah-io,3012
263
264
  bec_widgets/widgets/website/website_widget.pyproject,sha256=scOiV3cV1_BjbzpPzy2N8rIJL5P2qIZz8ObTJ-Uvdtg,25
264
265
  bec_widgets/widgets/website/website_widget_plugin.py,sha256=pz38_C2cZ0yvPPS02wdIPcmhFo_yiwUhflsASocAPQQ,1341
265
- bec_widgets-0.113.0.dist-info/METADATA,sha256=C4C8XhGH6pOZ-_r4CnJWLdDM-x8W0u4MwToUKkVTD0I,1334
266
- bec_widgets-0.113.0.dist-info/WHEEL,sha256=1yFddiXMmvYK7QYTqtRNtX66WJ0Mz8PYEiEUoOUUxRY,87
267
- bec_widgets-0.113.0.dist-info/entry_points.txt,sha256=3otEkCdDB9LZJuBLzG4pFLK5Di0CVybN_12IsZrQ-58,166
268
- bec_widgets-0.113.0.dist-info/licenses/LICENSE,sha256=YRKe85CBRyP7UpEAWwU8_qSIyuy5-l_9C-HKg5Qm8MQ,1511
269
- bec_widgets-0.113.0.dist-info/RECORD,,
266
+ bec_widgets-0.115.0.dist-info/METADATA,sha256=F0J9ZxDrWcTo3KqHlmYp2bBktM7rUMVBHFSp2aXhyug,1332
267
+ bec_widgets-0.115.0.dist-info/WHEEL,sha256=1yFddiXMmvYK7QYTqtRNtX66WJ0Mz8PYEiEUoOUUxRY,87
268
+ bec_widgets-0.115.0.dist-info/entry_points.txt,sha256=dItMzmwA1wizJ1Itx15qnfJ0ZzKVYFLVJ1voxT7K7D4,214
269
+ bec_widgets-0.115.0.dist-info/licenses/LICENSE,sha256=YRKe85CBRyP7UpEAWwU8_qSIyuy5-l_9C-HKg5Qm8MQ,1511
270
+ bec_widgets-0.115.0.dist-info/RECORD,,
@@ -1,4 +1,5 @@
1
1
  [console_scripts]
2
+ bec-app = bec_widgets.applications.bec_app:main
2
3
  bec-designer = bec_widgets.utils.bec_designer:main
3
4
  bec-gui-server = bec_widgets.cli.server:main
4
5
  bw-generate-cli = bec_widgets.cli.generate_cli:main
pyproject.toml CHANGED
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
4
4
 
5
5
  [project]
6
6
  name = "bec_widgets"
7
- version = "0.113.0"
7
+ version = "0.115.0"
8
8
  description = "BEC Widgets"
9
9
  requires-python = ">=3.10"
10
10
  classifiers = [
@@ -19,7 +19,7 @@ dependencies = [
19
19
  "isort~=5.13, >=5.13.2", # needed for bw-generate-cli
20
20
  "pydantic~=2.0",
21
21
  "pyqtgraph~=0.13",
22
- "bec_qthemes~=0.4, >=0.4.2",
22
+ "bec_qthemes~=0.7, >=0.7",
23
23
  "qtconsole~=5.5, >=5.5.1", # needed for jupyter console
24
24
  "qtpy~=2.4",
25
25
  "pyte", # needed for vt100 console
@@ -48,6 +48,7 @@ Homepage = "https://gitlab.psi.ch/bec/bec_widgets"
48
48
  bw-generate-cli = "bec_widgets.cli.generate_cli:main"
49
49
  bec-gui-server = "bec_widgets.cli.server:main"
50
50
  bec-designer = "bec_widgets.utils.bec_designer:main"
51
+ bec-app = "bec_widgets.applications.bec_app:main"
51
52
 
52
53
  [tool.hatch.build.targets.wheel]
53
54
  include = ["*"]