bec-widgets 2.3.0__py3-none-any.whl → 2.5.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.
- .github/ISSUE_TEMPLATE/bug_report.md +26 -0
- .github/ISSUE_TEMPLATE/feature_request.md +48 -0
- .github/workflows/check_pr.yml +28 -0
- .github/workflows/ci.yml +36 -0
- .github/workflows/end2end-conda.yml +48 -0
- .github/workflows/formatter.yml +61 -0
- .github/workflows/generate-cli-check.yml +49 -0
- .github/workflows/pytest-matrix.yml +49 -0
- .github/workflows/pytest.yml +65 -0
- .github/workflows/semantic_release.yml +103 -0
- CHANGELOG.md +1726 -1546
- LICENSE +1 -1
- PKG-INFO +2 -1
- README.md +11 -0
- bec_widgets/cli/client.py +346 -0
- bec_widgets/examples/jupyter_console/jupyter_console_window.py +8 -8
- bec_widgets/tests/utils.py +3 -3
- bec_widgets/utils/entry_validator.py +13 -3
- bec_widgets/utils/side_panel.py +65 -39
- bec_widgets/utils/toolbar.py +79 -0
- bec_widgets/widgets/containers/layout_manager/layout_manager.py +34 -1
- bec_widgets/widgets/control/device_input/base_classes/device_input_base.py +1 -1
- bec_widgets/widgets/control/device_input/base_classes/device_signal_input_base.py +27 -31
- bec_widgets/widgets/control/device_input/device_combobox/device_combobox.py +1 -1
- bec_widgets/widgets/control/device_input/device_line_edit/device_line_edit.py +1 -1
- bec_widgets/widgets/editors/dict_backed_table.py +7 -0
- bec_widgets/widgets/editors/scan_metadata/scan_metadata.py +1 -0
- bec_widgets/widgets/editors/web_console/register_web_console.py +15 -0
- bec_widgets/widgets/editors/web_console/web_console.py +230 -0
- bec_widgets/widgets/editors/web_console/web_console.pyproject +1 -0
- bec_widgets/widgets/editors/web_console/web_console_plugin.py +54 -0
- bec_widgets/widgets/plots/image/image.py +90 -0
- bec_widgets/widgets/plots/roi/__init__.py +0 -0
- bec_widgets/widgets/plots/roi/image_roi.py +867 -0
- bec_widgets/widgets/plots/waveform/settings/curve_settings/curve_tree.py +11 -46
- bec_widgets/widgets/utility/visual/color_button_native/__init__.py +0 -0
- bec_widgets/widgets/utility/visual/color_button_native/color_button_native.py +58 -0
- bec_widgets/widgets/utility/visual/color_button_native/color_button_native.pyproject +1 -0
- bec_widgets/widgets/utility/visual/color_button_native/color_button_native_plugin.py +56 -0
- bec_widgets/widgets/utility/visual/color_button_native/register_color_button_native.py +17 -0
- {bec_widgets-2.3.0.dist-info → bec_widgets-2.5.0.dist-info}/METADATA +2 -1
- {bec_widgets-2.3.0.dist-info → bec_widgets-2.5.0.dist-info}/RECORD +46 -25
- {bec_widgets-2.3.0.dist-info → bec_widgets-2.5.0.dist-info}/licenses/LICENSE +1 -1
- pyproject.toml +17 -5
- {bec_widgets-2.3.0.dist-info → bec_widgets-2.5.0.dist-info}/WHEEL +0 -0
- {bec_widgets-2.3.0.dist-info → bec_widgets-2.5.0.dist-info}/entry_points.txt +0 -0
@@ -31,6 +31,9 @@ from bec_widgets.widgets.control.device_input.device_line_edit.device_line_edit
|
|
31
31
|
)
|
32
32
|
from bec_widgets.widgets.dap.dap_combo_box.dap_combo_box import DapComboBox
|
33
33
|
from bec_widgets.widgets.plots.waveform.curve import CurveConfig, DeviceSignal
|
34
|
+
from bec_widgets.widgets.utility.visual.color_button_native.color_button_native import (
|
35
|
+
ColorButtonNative,
|
36
|
+
)
|
34
37
|
from bec_widgets.widgets.utility.visual.colormap_widget.colormap_widget import BECColorMapWidget
|
35
38
|
|
36
39
|
if TYPE_CHECKING: # pragma: no cover
|
@@ -40,49 +43,6 @@ if TYPE_CHECKING: # pragma: no cover
|
|
40
43
|
logger = bec_logger.logger
|
41
44
|
|
42
45
|
|
43
|
-
class ColorButton(QPushButton):
|
44
|
-
"""A QPushButton subclass that displays a color.
|
45
|
-
|
46
|
-
The background is set to the given color and the button text is the hex code.
|
47
|
-
The text color is chosen automatically (black if the background is light, white if dark)
|
48
|
-
to guarantee good readability.
|
49
|
-
"""
|
50
|
-
|
51
|
-
def __init__(self, color="#000000", parent=None):
|
52
|
-
"""Initialize the color button.
|
53
|
-
|
54
|
-
Args:
|
55
|
-
color (str): The initial color in hex format (e.g., '#000000').
|
56
|
-
parent: Optional QWidget parent.
|
57
|
-
"""
|
58
|
-
super().__init__(parent)
|
59
|
-
self.set_color(color)
|
60
|
-
|
61
|
-
def set_color(self, color):
|
62
|
-
"""Set the button's color and update its appearance.
|
63
|
-
|
64
|
-
Args:
|
65
|
-
color (str or QColor): The new color to assign.
|
66
|
-
"""
|
67
|
-
if isinstance(color, QColor):
|
68
|
-
self._color = color.name()
|
69
|
-
else:
|
70
|
-
self._color = color
|
71
|
-
self._update_appearance()
|
72
|
-
|
73
|
-
def color(self):
|
74
|
-
"""Return the current color in hex."""
|
75
|
-
return self._color
|
76
|
-
|
77
|
-
def _update_appearance(self):
|
78
|
-
"""Update the button style based on the background color's brightness."""
|
79
|
-
c = QColor(self._color)
|
80
|
-
brightness = c.lightnessF()
|
81
|
-
text_color = "#000000" if brightness > 0.5 else "#FFFFFF"
|
82
|
-
self.setStyleSheet(f"background-color: {self._color}; color: {text_color};")
|
83
|
-
self.setText(self._color)
|
84
|
-
|
85
|
-
|
86
46
|
class CurveRow(QTreeWidgetItem):
|
87
47
|
DELETE_BUTTON_COLOR = "#CC181E"
|
88
48
|
"""A unified row that can represent either a device or a DAP curve.
|
@@ -193,7 +153,7 @@ class CurveRow(QTreeWidgetItem):
|
|
193
153
|
def _init_style_controls(self):
|
194
154
|
"""Create columns 3..6: color button, style combo, width spin, symbol spin."""
|
195
155
|
# Color in col 3
|
196
|
-
self.color_button =
|
156
|
+
self.color_button = ColorButtonNative(color=self.config.color)
|
197
157
|
self.color_button.clicked.connect(lambda: self._select_color(self.color_button))
|
198
158
|
self.tree.setItemWidget(self, 3, self.color_button)
|
199
159
|
|
@@ -284,6 +244,11 @@ class CurveRow(QTreeWidgetItem):
|
|
284
244
|
self.dap_combo.deleteLater()
|
285
245
|
self.dap_combo = None
|
286
246
|
|
247
|
+
if getattr(self, "color_button", None) is not None:
|
248
|
+
self.color_button.close()
|
249
|
+
self.color_button.deleteLater()
|
250
|
+
self.color_button = None
|
251
|
+
|
287
252
|
# Remove the item from the tree widget
|
288
253
|
index = self.tree.indexOfTopLevelItem(self)
|
289
254
|
if index != -1:
|
@@ -337,8 +302,8 @@ class CurveRow(QTreeWidgetItem):
|
|
337
302
|
self.config.label = f"{parent_conf.label}-{new_dap}"
|
338
303
|
|
339
304
|
# Common style fields
|
340
|
-
self.config.color = self.color_button.color
|
341
|
-
self.config.symbol_color = self.color_button.color
|
305
|
+
self.config.color = self.color_button.color
|
306
|
+
self.config.symbol_color = self.color_button.color
|
342
307
|
self.config.pen_style = self.style_combo.currentText()
|
343
308
|
self.config.pen_width = self.width_spin.value()
|
344
309
|
self.config.symbol_size = self.symbol_spin.value()
|
File without changes
|
@@ -0,0 +1,58 @@
|
|
1
|
+
from qtpy.QtGui import QColor
|
2
|
+
from qtpy.QtWidgets import QPushButton
|
3
|
+
|
4
|
+
from bec_widgets import BECWidget, SafeProperty, SafeSlot
|
5
|
+
|
6
|
+
|
7
|
+
class ColorButtonNative(BECWidget, QPushButton):
|
8
|
+
"""A QPushButton subclass that displays a color.
|
9
|
+
|
10
|
+
The background is set to the given color and the button text is the hex code.
|
11
|
+
The text color is chosen automatically (black if the background is light, white if dark)
|
12
|
+
to guarantee good readability.
|
13
|
+
"""
|
14
|
+
|
15
|
+
RPC = False
|
16
|
+
PLUGIN = True
|
17
|
+
ICON_NAME = "colors"
|
18
|
+
|
19
|
+
def __init__(self, parent=None, color="#000000", **kwargs):
|
20
|
+
"""Initialize the color button.
|
21
|
+
|
22
|
+
Args:
|
23
|
+
parent: Optional QWidget parent.
|
24
|
+
color (str): The initial color in hex format (e.g., '#000000').
|
25
|
+
"""
|
26
|
+
super().__init__(parent=parent, **kwargs)
|
27
|
+
self.set_color(color)
|
28
|
+
|
29
|
+
@SafeSlot()
|
30
|
+
def set_color(self, color):
|
31
|
+
"""Set the button's color and update its appearance.
|
32
|
+
|
33
|
+
Args:
|
34
|
+
color (str or QColor): The new color to assign.
|
35
|
+
"""
|
36
|
+
if isinstance(color, QColor):
|
37
|
+
self._color = color.name()
|
38
|
+
else:
|
39
|
+
self._color = color
|
40
|
+
self._update_appearance()
|
41
|
+
|
42
|
+
@SafeProperty("QColor")
|
43
|
+
def color(self):
|
44
|
+
"""Return the current color in hex."""
|
45
|
+
return self._color
|
46
|
+
|
47
|
+
@color.setter
|
48
|
+
def color(self, value):
|
49
|
+
"""Set the button's color and update its appearance."""
|
50
|
+
self.set_color(value)
|
51
|
+
|
52
|
+
def _update_appearance(self):
|
53
|
+
"""Update the button style based on the background color's brightness."""
|
54
|
+
c = QColor(self._color)
|
55
|
+
brightness = c.lightnessF()
|
56
|
+
text_color = "#000000" if brightness > 0.5 else "#FFFFFF"
|
57
|
+
self.setStyleSheet(f"background-color: {self._color}; color: {text_color};")
|
58
|
+
self.setText(self._color)
|
@@ -0,0 +1 @@
|
|
1
|
+
{'files': ['color_button_native.py']}
|
@@ -0,0 +1,56 @@
|
|
1
|
+
# Copyright (C) 2022 The Qt Company Ltd.
|
2
|
+
# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
|
3
|
+
|
4
|
+
from qtpy.QtDesigner import QDesignerCustomWidgetInterface
|
5
|
+
|
6
|
+
from bec_widgets.utils.bec_designer import designer_material_icon
|
7
|
+
from bec_widgets.widgets.utility.visual.color_button_native.color_button_native import (
|
8
|
+
ColorButtonNative,
|
9
|
+
)
|
10
|
+
|
11
|
+
DOM_XML = """
|
12
|
+
<ui language='c++'>
|
13
|
+
<widget class='ColorButtonNative' name='color_button_native'>
|
14
|
+
</widget>
|
15
|
+
</ui>
|
16
|
+
"""
|
17
|
+
|
18
|
+
|
19
|
+
class ColorButtonNativePlugin(QDesignerCustomWidgetInterface): # pragma: no cover
|
20
|
+
def __init__(self):
|
21
|
+
super().__init__()
|
22
|
+
self._form_editor = None
|
23
|
+
|
24
|
+
def createWidget(self, parent):
|
25
|
+
t = ColorButtonNative(parent)
|
26
|
+
return t
|
27
|
+
|
28
|
+
def domXml(self):
|
29
|
+
return DOM_XML
|
30
|
+
|
31
|
+
def group(self):
|
32
|
+
return "BEC Buttons"
|
33
|
+
|
34
|
+
def icon(self):
|
35
|
+
return designer_material_icon(ColorButtonNative.ICON_NAME)
|
36
|
+
|
37
|
+
def includeFile(self):
|
38
|
+
return "color_button_native"
|
39
|
+
|
40
|
+
def initialize(self, form_editor):
|
41
|
+
self._form_editor = form_editor
|
42
|
+
|
43
|
+
def isContainer(self):
|
44
|
+
return False
|
45
|
+
|
46
|
+
def isInitialized(self):
|
47
|
+
return self._form_editor is not None
|
48
|
+
|
49
|
+
def name(self):
|
50
|
+
return "ColorButtonNative"
|
51
|
+
|
52
|
+
def toolTip(self):
|
53
|
+
return "A QPushButton subclass that displays a color."
|
54
|
+
|
55
|
+
def whatsThis(self):
|
56
|
+
return self.toolTip()
|
@@ -0,0 +1,17 @@
|
|
1
|
+
def main(): # pragma: no cover
|
2
|
+
from qtpy import PYSIDE6
|
3
|
+
|
4
|
+
if not PYSIDE6:
|
5
|
+
print("PYSIDE6 is not available in the environment. Cannot patch designer.")
|
6
|
+
return
|
7
|
+
from PySide6.QtDesigner import QPyDesignerCustomWidgetCollection
|
8
|
+
|
9
|
+
from bec_widgets.widgets.utility.visual.color_button_native.color_button_native_plugin import (
|
10
|
+
ColorButtonNativePlugin,
|
11
|
+
)
|
12
|
+
|
13
|
+
QPyDesignerCustomWidgetCollection.addCustomWidget(ColorButtonNativePlugin())
|
14
|
+
|
15
|
+
|
16
|
+
if __name__ == "__main__": # pragma: no cover
|
17
|
+
main()
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.4
|
2
2
|
Name: bec_widgets
|
3
|
-
Version: 2.
|
3
|
+
Version: 2.5.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
|
@@ -25,6 +25,7 @@ Requires-Dist: coverage~=7.0; extra == 'dev'
|
|
25
25
|
Requires-Dist: fakeredis>=2.23.2,~=2.23; extra == 'dev'
|
26
26
|
Requires-Dist: isort>=5.13.2,~=5.13; extra == 'dev'
|
27
27
|
Requires-Dist: pytest-bec-e2e<=4.0,>=2.21.4; extra == 'dev'
|
28
|
+
Requires-Dist: pytest-cov~=6.1.1; extra == 'dev'
|
28
29
|
Requires-Dist: pytest-qt~=4.4; extra == 'dev'
|
29
30
|
Requires-Dist: pytest-random-order~=1.1; extra == 'dev'
|
30
31
|
Requires-Dist: pytest-timeout~=2.2; extra == 'dev'
|
@@ -2,12 +2,22 @@
|
|
2
2
|
.gitlab-ci.yml,sha256=1nMYldzVk0tFkBWYTcUjumOrdSADASheWOAc0kOFDYs,9509
|
3
3
|
.pylintrc,sha256=eeY8YwSI74oFfq6IYIbCqnx3Vk8ZncKaatv96n_Y8Rs,18544
|
4
4
|
.readthedocs.yaml,sha256=aSOc277LqXcsTI6lgvm_JY80lMlr69GbPKgivua2cS0,603
|
5
|
-
CHANGELOG.md,sha256=
|
6
|
-
LICENSE,sha256=
|
7
|
-
PKG-INFO,sha256=
|
8
|
-
README.md,sha256=
|
9
|
-
pyproject.toml,sha256=
|
5
|
+
CHANGELOG.md,sha256=h7kdqbYxLcnSHMm1ZlTgI3qX9is3O3FZ06Np2p5O5OI,283984
|
6
|
+
LICENSE,sha256=Daeiu871NcAp8uYi4eB_qHgvypG-HX0ioRQyQxFwjeg,1531
|
7
|
+
PKG-INFO,sha256=d4teMR3mTeaZ-dcAXB-vAH5w4wJ36LuExkG8lf5nh9U,1273
|
8
|
+
README.md,sha256=oY5Jc1uXehRASuwUJ0umin2vfkFh7tHF-LLruHTaQx0,3560
|
9
|
+
pyproject.toml,sha256=wM4rYmu934tOm5F908GwhWKscxO5tkhqYp7klvvzxyo,2902
|
10
10
|
.git_hooks/pre-commit,sha256=n3RofIZHJl8zfJJIUomcMyYGFi_rwq4CC19z0snz3FI,286
|
11
|
+
.github/ISSUE_TEMPLATE/bug_report.md,sha256=EnMCP_Fo6ozZ0epRQqprabyJDMzSEHvHPRW6xAJVnR0,491
|
12
|
+
.github/ISSUE_TEMPLATE/feature_request.md,sha256=JmGrIly0ougXdUShMwsvWi6cgK1fcYNKkF03lKgQH44,1649
|
13
|
+
.github/workflows/check_pr.yml,sha256=jKMtYBJTNRAdw_MAS4JzdKVSoNrv8nxUQMqobsYFAXw,903
|
14
|
+
.github/workflows/ci.yml,sha256=1mhavTQnhEksshnaTDhDce-BIdai209l5AeMSFlOTSw,986
|
15
|
+
.github/workflows/end2end-conda.yml,sha256=N7q_sOZL1Mcivdkb8YIdvqbkkaG79rjHDQRpR2xPdtM,1794
|
16
|
+
.github/workflows/formatter.yml,sha256=CdUVrRxWyVes9y-Ez3jiCJXqANPJtl6kfpGQxeWMhcQ,1694
|
17
|
+
.github/workflows/generate-cli-check.yml,sha256=b6TcK8F5Hy0sFjgXpk0w3BO9eMDZw9WysTl3P7zEPuQ,1742
|
18
|
+
.github/workflows/pytest-matrix.yml,sha256=r61nxCVDo-YZ9XIHG2YwdgEX-TF5JNBcWdKHhUyBeqA,1902
|
19
|
+
.github/workflows/pytest.yml,sha256=Vtz8uYct2vDVWPAkELhG7lHAKsu5glVCaZL8soANiNE,2204
|
20
|
+
.github/workflows/semantic_release.yml,sha256=pdkv1rVG3YgG7yu4nNWvbGZifH4bqO1eh3pM0KHRK04,3720
|
11
21
|
.gitlab/issue_templates/bug_report_template.md,sha256=gAuyEwl7XlnebBrkiJ9AqffSNOywmr8vygUFWKTuQeI,386
|
12
22
|
.gitlab/issue_templates/documentation_update_template.md,sha256=FHLdb3TS_D9aL4CYZCjyXSulbaW5mrN2CmwTaeLPbNw,860
|
13
23
|
.gitlab/issue_templates/feature_request_template.md,sha256=vjxCnmj53Mp4FPzCrNxhkO-8StRQUZ36PlXu4K8VGaI,1543
|
@@ -23,7 +33,7 @@ bec_widgets/assets/app_icons/bec_widgets_icon.png,sha256=K8dgGwIjalDh9PRHUsSQBqg
|
|
23
33
|
bec_widgets/assets/app_icons/ui_loader_tile.png,sha256=qSK3XHqvnAVGV9Q0ulORcGFbXJ9LDq2uz8l9uTtMsNk,1812476
|
24
34
|
bec_widgets/assets/app_icons/widget_launch_tile.png,sha256=bWsICHFfSe9-ESUj3AwlE95dDOea-f6M-s9fBapsxB4,2252911
|
25
35
|
bec_widgets/cli/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
26
|
-
bec_widgets/cli/client.py,sha256=
|
36
|
+
bec_widgets/cli/client.py,sha256=PbeumL7pGM2uncKn00Hm3jGeEEY7ANwrgVcyLDDSG6M,90128
|
27
37
|
bec_widgets/cli/client_utils.py,sha256=F2hyt--jL53bN8NoWifNUMqwwx5FbpS6I1apERdTRzM,18114
|
28
38
|
bec_widgets/cli/generate_cli.py,sha256=xcPNyJoa3IjddX1yEDY45tT-Cs4jO5cQLUmcEubKs44,10976
|
29
39
|
bec_widgets/cli/server.py,sha256=lYEkOaokLbND4KjbXyySzb5nq3YQ6m4L0NAmHAjMCIU,5633
|
@@ -37,7 +47,7 @@ bec_widgets/examples/general_app/general_app.py,sha256=PoFCTuA_1yqrpgthASpYFgH7J
|
|
37
47
|
bec_widgets/examples/general_app/general_app.ui,sha256=TsejkM3Z8znnixyqxoj4SwhIIpIzTAuGAMkGXSS1aT8,10479
|
38
48
|
bec_widgets/examples/general_app/web_links.py,sha256=d5OgzgI9zb-NAC0pOGanOtJX3nZoe4x8QuQTw-_hK_8,434
|
39
49
|
bec_widgets/examples/jupyter_console/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
40
|
-
bec_widgets/examples/jupyter_console/jupyter_console_window.py,sha256=
|
50
|
+
bec_widgets/examples/jupyter_console/jupyter_console_window.py,sha256=Zqb2jjmlELs3W9t_T-V8dGgQJ7z3YPDzGJNXMxRH3ys,6503
|
41
51
|
bec_widgets/examples/plugin_example_pyside/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
42
52
|
bec_widgets/examples/plugin_example_pyside/main.py,sha256=zDP5wO7wb3BVsQ15HOCRT1nNmCujIVRvSXZ3Txje8L0,549
|
43
53
|
bec_widgets/examples/plugin_example_pyside/registertictactoe.py,sha256=cVhBnP0qx5j9Jft-VeKvlTFE-bX58hbP45CX0f4r5pM,535
|
@@ -46,7 +56,7 @@ bec_widgets/examples/plugin_example_pyside/tictactoe.py,sha256=s3rCurXloVcmMdzZi
|
|
46
56
|
bec_widgets/examples/plugin_example_pyside/tictactoeplugin.py,sha256=MFMwONn4EZ3V8DboEG4I3BXpURE9JDbKB7XTzzfZl5w,1978
|
47
57
|
bec_widgets/examples/plugin_example_pyside/tictactoetaskmenu.py,sha256=SiJaoX3OYA8YMkSwU1d7KEfSUjQQUsQgpRAxSSlr8oQ,2376
|
48
58
|
bec_widgets/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
49
|
-
bec_widgets/tests/utils.py,sha256
|
59
|
+
bec_widgets/tests/utils.py,sha256=-aBZ9LfzN1rWUarT5FZusdjY4GpRI2FIx2zfxF9STLY,6958
|
50
60
|
bec_widgets/utils/__init__.py,sha256=1930ji1Jj6dVuY81Wd2kYBhHYNV-2R0bN_L4o9zBj1U,533
|
51
61
|
bec_widgets/utils/bec_connector.py,sha256=ATOSyZqryn1QHPc7aotiDnUtzFhlj_gmcukMT_pqjHQ,19272
|
52
62
|
bec_widgets/utils/bec_designer.py,sha256=ehNl_i743rijmhPiIGNd1bihE7-l4oJzTVoa4yjPjls,5426
|
@@ -60,7 +70,7 @@ bec_widgets/utils/colors.py,sha256=4Oms3kcstf7-WddGMB2TZXPqJwFMGVjFyBO8tHZHnxk,1
|
|
60
70
|
bec_widgets/utils/compact_popup.py,sha256=xVK_lQqL5Hy1ZnUzHXB8GU-Ru-mXevKcdM8ync3ssiA,10269
|
61
71
|
bec_widgets/utils/container_utils.py,sha256=J8YXombOlAPa3M8NGZdhntp2NirBu4raDEQZOgP4elM,3791
|
62
72
|
bec_widgets/utils/crosshair.py,sha256=z2Db0tz-SqDGn3wwyCOuQ5mZn9gQU8wQ7YrCVAAAU_A,18892
|
63
|
-
bec_widgets/utils/entry_validator.py,sha256=
|
73
|
+
bec_widgets/utils/entry_validator.py,sha256=lwT8HP0RDG1FXENIeZ3IDEF2DQmD8KXGkRxPoMXbryk,1817
|
64
74
|
bec_widgets/utils/error_popups.py,sha256=UBAmD1YlAgKodpihudyf0VWtI59KGFiLgnjiKmKGjgk,13254
|
65
75
|
bec_widgets/utils/expandable_frame.py,sha256=VV4mgwz4lXbO3r-dNCX2QFUguwWCCXSUkXyjDSTJHbU,2345
|
66
76
|
bec_widgets/utils/filter_io.py,sha256=GKO6GOTiKxTuTp_SHp5Ewou54N7wIZXgWWvlFvhbBmw,5114
|
@@ -80,9 +90,9 @@ bec_widgets/utils/rpc_decorator.py,sha256=pIvtqySQLnuS7l2Ti_UAe4WX7CRivZnsE5ZdKA
|
|
80
90
|
bec_widgets/utils/rpc_server.py,sha256=iOIEy8s5DAL_aG6RC9G5DScBfyolpfDVeR2a_3h46JM,10310
|
81
91
|
bec_widgets/utils/serialization.py,sha256=_SO8q0ylC0MWckT9yTbCtF0QNsRoT6ysL8WnN8-GQ-U,1174
|
82
92
|
bec_widgets/utils/settings_dialog.py,sha256=1z6noC9k6BSIGAw12DvHHiW3LmvPquaGMjWSe5wdmek,4307
|
83
|
-
bec_widgets/utils/side_panel.py,sha256=
|
93
|
+
bec_widgets/utils/side_panel.py,sha256=enxcQOwJOMfD3MxgPA9mQSKSX_F6Omy2zePncYDW1FA,14193
|
84
94
|
bec_widgets/utils/thread_checker.py,sha256=rDNuA3X6KQyA7JPb67mccTg0z8YkInynLAENQDQpbuE,1607
|
85
|
-
bec_widgets/utils/toolbar.py,sha256=
|
95
|
+
bec_widgets/utils/toolbar.py,sha256=SUzR1E5TTsuWa9lS5HHVQ-XznEGMf6MbGVS842UML9w,40500
|
86
96
|
bec_widgets/utils/ui_loader.py,sha256=uLROPSeprfmNE9y2_010fUuvEd5oLfs3X2oah4FnMkg,4945
|
87
97
|
bec_widgets/utils/validator_delegate.py,sha256=Emj1WF6W8Ke1ruBWUfmHdVJpmOSPezuOt4zvQTay_44,442
|
88
98
|
bec_widgets/utils/widget_io.py,sha256=afR7i59fw2WrEQCmkH5dwhz1uNjfMPnJTIhE8NWVBsU,21552
|
@@ -104,7 +114,7 @@ bec_widgets/widgets/containers/dock/dock_area.pyproject,sha256=URW0UrDXCnkzk80rb
|
|
104
114
|
bec_widgets/widgets/containers/dock/dock_area_plugin.py,sha256=fDVXKPZuHr85B2fLfAYf_Ic5d9mZQpnZrODTDquzZpM,1331
|
105
115
|
bec_widgets/widgets/containers/dock/register_dock_area.py,sha256=L7BL4qknCjtqsDP-RMQzk2qRPpcYuzXWlb7sJB_0DDM,475
|
106
116
|
bec_widgets/widgets/containers/layout_manager/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
107
|
-
bec_widgets/widgets/containers/layout_manager/layout_manager.py,sha256=
|
117
|
+
bec_widgets/widgets/containers/layout_manager/layout_manager.py,sha256=V7s8mtB3VLPstyGVaR9YKcoTVlfMMOYNpIJUsw2WQVc,35198
|
108
118
|
bec_widgets/widgets/containers/main_window/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
109
119
|
bec_widgets/widgets/containers/main_window/main_window.py,sha256=Y9egriyEuK9b7sER5gqwTSlCmA7EnIMnKpeF-Ui2UM0,6189
|
110
120
|
bec_widgets/widgets/containers/main_window/addons/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
@@ -164,15 +174,15 @@ bec_widgets/widgets/control/device_control/positioner_group/positioner_group_plu
|
|
164
174
|
bec_widgets/widgets/control/device_control/positioner_group/register_positioner_group.py,sha256=vjoIwn1CQbg3gEwKzgY2MuscfGab2agM5YV0r1_UL0k,531
|
165
175
|
bec_widgets/widgets/control/device_input/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
166
176
|
bec_widgets/widgets/control/device_input/base_classes/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
167
|
-
bec_widgets/widgets/control/device_input/base_classes/device_input_base.py,sha256=
|
168
|
-
bec_widgets/widgets/control/device_input/base_classes/device_signal_input_base.py,sha256=
|
177
|
+
bec_widgets/widgets/control/device_input/base_classes/device_input_base.py,sha256=r4DwWQz2wwNQ3Uswzdy12MGycV7pFrE_Zv4h_2G5IRA,15915
|
178
|
+
bec_widgets/widgets/control/device_input/base_classes/device_signal_input_base.py,sha256=rauBYZ2_5mXkTFgVk5d77g8D7b_ugK7g0By7a5YVmu0,9139
|
169
179
|
bec_widgets/widgets/control/device_input/device_combobox/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
170
180
|
bec_widgets/widgets/control/device_input/device_combobox/device_combo_box.pyproject,sha256=wI2eXR5ky_IM9-BCHJnH_9CEqYcZwIuLcgitSEr8OJU,40
|
171
181
|
bec_widgets/widgets/control/device_input/device_combobox/device_combo_box_plugin.py,sha256=E8LD9T4O2w621q25uHqBqZLDiQ6zpMR25ZDuf51jrPw,1434
|
172
|
-
bec_widgets/widgets/control/device_input/device_combobox/device_combobox.py,sha256=
|
182
|
+
bec_widgets/widgets/control/device_input/device_combobox/device_combobox.py,sha256=5HZBYWM9rhqisd8G0p2Scdzg7-WC_u8ob6fj0hpuApM,6131
|
173
183
|
bec_widgets/widgets/control/device_input/device_combobox/register_device_combo_box.py,sha256=elw4M4xfIFWe8C0MkdqqqyfnyOVrdl0g0j6bqwOU1GE,526
|
174
184
|
bec_widgets/widgets/control/device_input/device_line_edit/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
175
|
-
bec_widgets/widgets/control/device_input/device_line_edit/device_line_edit.py,sha256=
|
185
|
+
bec_widgets/widgets/control/device_input/device_line_edit/device_line_edit.py,sha256=NRCqE0o30caosgmMTIWCWgqbpDe1EXThR--XJrHP9rI,6620
|
176
186
|
bec_widgets/widgets/control/device_input/device_line_edit/device_line_edit.pyproject,sha256=tqAYXRbxsHR41MwqmAxvfq1CFeZ1IRv84whUG67HjjE,41
|
177
187
|
bec_widgets/widgets/control/device_input/device_line_edit/device_line_edit_plugin.py,sha256=LoG1VyO21pZ9dbnDVU03xzqgP8P1oEmdeotlkYs_pE8,1466
|
178
188
|
bec_widgets/widgets/control/device_input/device_line_edit/register_device_line_edit.py,sha256=NTB3HghW5S7NvUlPe_k_uFYQLWPYgjgln2bAYipfkpM,527
|
@@ -206,7 +216,7 @@ bec_widgets/widgets/dap/lmfit_dialog/lmfit_dialog_compact.ui,sha256=JbdMEPzbA3p2
|
|
206
216
|
bec_widgets/widgets/dap/lmfit_dialog/lmfit_dialog_vertical.ui,sha256=BVm0XydqbgmIYOs3YPQzQsL4v4gZzourR10dH_2NrVg,5078
|
207
217
|
bec_widgets/widgets/dap/lmfit_dialog/register_lm_fit_dialog.py,sha256=7tB1gsvv310_kVuKf2u4EdSR4F1posm7QCrWH5Kih-Q,480
|
208
218
|
bec_widgets/widgets/editors/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
209
|
-
bec_widgets/widgets/editors/dict_backed_table.py,sha256=
|
219
|
+
bec_widgets/widgets/editors/dict_backed_table.py,sha256=u8n5diNaKY-UBb5vkpDSRtSI7w7g1096g37co8nxA8A,6422
|
210
220
|
bec_widgets/widgets/editors/console/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
211
221
|
bec_widgets/widgets/editors/console/console.py,sha256=OB5vvqpYNhUGWzn5Dx5rR1n0rQulef5Yv-by5RGjr2w,29323
|
212
222
|
bec_widgets/widgets/editors/console/console.pyproject,sha256=JcoDuZG03g1Bxkd3Aipo7jjLexujfbibIZqXHIgLSWc,26
|
@@ -217,7 +227,7 @@ bec_widgets/widgets/editors/jupyter_console/jupyter_console.py,sha256=-e7HQOECeH
|
|
217
227
|
bec_widgets/widgets/editors/scan_metadata/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
218
228
|
bec_widgets/widgets/editors/scan_metadata/_util.py,sha256=3mm8ziir0UPnf25ONEfQ277SFC8132HeQVgdXWik5tI,1881
|
219
229
|
bec_widgets/widgets/editors/scan_metadata/register_scan_metadata.py,sha256=dGcd8AXM1E9i-N45_CIRdCIyKtHJlq_7neyKHrDx6C0,487
|
220
|
-
bec_widgets/widgets/editors/scan_metadata/scan_metadata.py,sha256=
|
230
|
+
bec_widgets/widgets/editors/scan_metadata/scan_metadata.py,sha256=DPTwBSp9wkjL0FC5vMXr0Eby0Xo1T-9ak5YeALdY-jw,5371
|
221
231
|
bec_widgets/widgets/editors/scan_metadata/scan_metadata.pyproject,sha256=_4guiQAGxiQ4gSN5i5S160UnFXvPFC1W1nG77PubNYQ,31
|
222
232
|
bec_widgets/widgets/editors/scan_metadata/scan_metadata_plugin.py,sha256=ldp4O8JYh9WPwI0mybH1-4FOF-b6EOF6A0tRQCmbyxo,1329
|
223
233
|
bec_widgets/widgets/editors/text_box/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
@@ -230,6 +240,10 @@ bec_widgets/widgets/editors/vscode/register_vs_code_editor.py,sha256=nx38IeUI3iG
|
|
230
240
|
bec_widgets/widgets/editors/vscode/vs_code_editor.pyproject,sha256=bxx0jZlSfBo-Em7p15W1QIJ9lFr9jqTqGynUQG01ocU,24
|
231
241
|
bec_widgets/widgets/editors/vscode/vs_code_editor_plugin.py,sha256=n0NNsGVbgjKYy9frE1njLRTGbcpQTMNyztmVA8HS8Gs,1346
|
232
242
|
bec_widgets/widgets/editors/vscode/vscode.py,sha256=djQm4uwExENKOY27ZQEE3cvDvfM-8CWVSnXf5mVXvsk,6216
|
243
|
+
bec_widgets/widgets/editors/web_console/register_web_console.py,sha256=7XW-OreiNcEpe4l-AOmbx2ckDC16FDddvtnnqF-0N5I,479
|
244
|
+
bec_widgets/widgets/editors/web_console/web_console.py,sha256=DJTT16q2BEbvFC-3F-lVnKNF-QYyCk02L3oy4hmFHgw,7137
|
245
|
+
bec_widgets/widgets/editors/web_console/web_console.pyproject,sha256=z1FZSkWOyfeO2noufC-iVjAJm7lS5bPHq-x0q3C7NUA,29
|
246
|
+
bec_widgets/widgets/editors/web_console/web_console_plugin.py,sha256=Jyy6FHhuDrG0QS8cizRDbe9O0MLfG4twi7iNHjhc80U,1254
|
233
247
|
bec_widgets/widgets/editors/website/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
234
248
|
bec_widgets/widgets/editors/website/register_website_widget.py,sha256=VSVrZRCZoIxnpwyN5kZ6NvR7-5b1TX2yE30dRs01hSc,484
|
235
249
|
bec_widgets/widgets/editors/website/website.py,sha256=AtttTUSeRl3fE7r88PmjwL1Rmlx5_g1en3Sr__NPuRY,3059
|
@@ -243,7 +257,7 @@ bec_widgets/widgets/games/register_minesweeper.py,sha256=8fgMBD3yB-5_eGqhG_qxpj3
|
|
243
257
|
bec_widgets/widgets/plots/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
244
258
|
bec_widgets/widgets/plots/plot_base.py,sha256=NliWkXihJIPHRJHe-CNIrdjgxONk7uExG_3SsIpyoRQ,33848
|
245
259
|
bec_widgets/widgets/plots/image/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
246
|
-
bec_widgets/widgets/plots/image/image.py,sha256=
|
260
|
+
bec_widgets/widgets/plots/image/image.py,sha256=KzBfUysHwVHEhOydzNbsn0NYTSk0CjkGlyev7otClFQ,34338
|
247
261
|
bec_widgets/widgets/plots/image/image.pyproject,sha256=_sRCIu4MNgToaB4D7tUMWq3xKX6T2VoRS3UzGNIseHQ,23
|
248
262
|
bec_widgets/widgets/plots/image/image_item.py,sha256=2bn9H5YLmo7ohQnnf1mLlL24TASnlZNzMvF7buMutmI,8728
|
249
263
|
bec_widgets/widgets/plots/image/image_plugin.py,sha256=R0Hzh2GgYlfZLPZwOMgqLKKIA5DxEnTcSrbI7zTe-tI,1204
|
@@ -272,6 +286,8 @@ bec_widgets/widgets/plots/multi_waveform/settings/control_panel.py,sha256=3oxxec
|
|
272
286
|
bec_widgets/widgets/plots/multi_waveform/settings/multi_waveform_controls.ui,sha256=rkLNyVn2ovv-Q9IH2o8_l3F9uvH0QoudWUGmKvcLpK4,5857
|
273
287
|
bec_widgets/widgets/plots/multi_waveform/toolbar_bundles/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
274
288
|
bec_widgets/widgets/plots/multi_waveform/toolbar_bundles/monitor_selection.py,sha256=lGreAkRBd-A4X_wqYZiKyGDmb_3uzLunjSju9A2PjWw,2532
|
289
|
+
bec_widgets/widgets/plots/roi/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
290
|
+
bec_widgets/widgets/plots/roi/image_roi.py,sha256=fD58NF4uNwr1Zww6tl7-gSjTFiyalbZD37TjfGCYO4w,31383
|
275
291
|
bec_widgets/widgets/plots/scatter_waveform/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
276
292
|
bec_widgets/widgets/plots/scatter_waveform/register_scatter_waveform.py,sha256=KttVjlAK3PfP9tyMfLnqEm6kphap8NZyqyaRry8oebY,514
|
277
293
|
bec_widgets/widgets/plots/scatter_waveform/scatter_curve.py,sha256=nCyZ_6EunS1m5XkLB-CwfBV9L4IX04D9SpHlHc8zG_I,6763
|
@@ -300,7 +316,7 @@ bec_widgets/widgets/plots/waveform/waveform_plugin.py,sha256=2AZPtBHs75l9cdhwQnY
|
|
300
316
|
bec_widgets/widgets/plots/waveform/settings/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
301
317
|
bec_widgets/widgets/plots/waveform/settings/curve_settings/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
302
318
|
bec_widgets/widgets/plots/waveform/settings/curve_settings/curve_setting.py,sha256=Q-wgtzsllExbeOxQoCPmcCQfKRjp_hJeYcinSSy_0HI,4454
|
303
|
-
bec_widgets/widgets/plots/waveform/settings/curve_settings/curve_tree.py,sha256=
|
319
|
+
bec_widgets/widgets/plots/waveform/settings/curve_settings/curve_tree.py,sha256=P_503kqKzKcSwkDnjCfB-u0zLTZGoMEbCsR-xAACtww,21030
|
304
320
|
bec_widgets/widgets/plots/waveform/utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
305
321
|
bec_widgets/widgets/plots/waveform/utils/roi_manager.py,sha256=zCl3-p3qP02zi837Udz8VUzsbUAwiP-26K3VpLsvaUU,2964
|
306
322
|
bec_widgets/widgets/progress/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
@@ -363,6 +379,11 @@ bec_widgets/widgets/utility/visual/color_button/color_button.py,sha256=Z-NVeS2A3
|
|
363
379
|
bec_widgets/widgets/utility/visual/color_button/color_button.pyproject,sha256=LUYF4VkDOB4ttVe7YfvLh64K-XZg0-xaVT06BqCT3UA,30
|
364
380
|
bec_widgets/widgets/utility/visual/color_button/color_button_plugin.py,sha256=Eqp6eW1Iu1uS40_rHzgA_Hxy1F6Co7pzv2fdz5cWNGU,1282
|
365
381
|
bec_widgets/widgets/utility/visual/color_button/register_color_button.py,sha256=BD1XGznJqYX3DgUPy2HWDgzu8KdLspR6wagseG5Bo2s,507
|
382
|
+
bec_widgets/widgets/utility/visual/color_button_native/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
383
|
+
bec_widgets/widgets/utility/visual/color_button_native/color_button_native.py,sha256=8GgEOSQ86ZWaaGj_6iFExbQSuFmdP72N_GywCRUWVxQ,1833
|
384
|
+
bec_widgets/widgets/utility/visual/color_button_native/color_button_native.pyproject,sha256=ceGob3QdHeAvyTj5RQTuxpUB2hNFh3nhRfNpHep4K_k,37
|
385
|
+
bec_widgets/widgets/utility/visual/color_button_native/color_button_native_plugin.py,sha256=RfGUHfLRqRfXGbDAR6SJ46OleXaXEmXyfCjqtQ9yjBs,1389
|
386
|
+
bec_widgets/widgets/utility/visual/color_button_native/register_color_button_native.py,sha256=-TLOcJNpg0hsUaGBNPhWFrzgVwSmXuk8xtY48zAERSc,533
|
366
387
|
bec_widgets/widgets/utility/visual/colormap_selector/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
367
388
|
bec_widgets/widgets/utility/visual/colormap_selector/colormap_selector.py,sha256=OqyVPcqclQqpeK96k_lIoGFcLcnfb4tMS4EkMQZRP9Q,3838
|
368
389
|
bec_widgets/widgets/utility/visual/colormap_selector/colormap_selector.pyproject,sha256=lHl9qmlMCB6BKB2orqctKwLcKK3Swc0THsyr-5O_vXM,35
|
@@ -378,8 +399,8 @@ bec_widgets/widgets/utility/visual/dark_mode_button/dark_mode_button.py,sha256=O
|
|
378
399
|
bec_widgets/widgets/utility/visual/dark_mode_button/dark_mode_button.pyproject,sha256=Lbi9zb6HNlIq14k6hlzR-oz6PIFShBuF7QxE6d87d64,34
|
379
400
|
bec_widgets/widgets/utility/visual/dark_mode_button/dark_mode_button_plugin.py,sha256=CzChz2SSETYsR8-36meqWnsXCT-FIy_J_xeU5coWDY8,1350
|
380
401
|
bec_widgets/widgets/utility/visual/dark_mode_button/register_dark_mode_button.py,sha256=rMpZ1CaoucwobgPj1FuKTnt07W82bV1GaSYdoqcdMb8,521
|
381
|
-
bec_widgets-2.
|
382
|
-
bec_widgets-2.
|
383
|
-
bec_widgets-2.
|
384
|
-
bec_widgets-2.
|
385
|
-
bec_widgets-2.
|
402
|
+
bec_widgets-2.5.0.dist-info/METADATA,sha256=d4teMR3mTeaZ-dcAXB-vAH5w4wJ36LuExkG8lf5nh9U,1273
|
403
|
+
bec_widgets-2.5.0.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
|
404
|
+
bec_widgets-2.5.0.dist-info/entry_points.txt,sha256=dItMzmwA1wizJ1Itx15qnfJ0ZzKVYFLVJ1voxT7K7D4,214
|
405
|
+
bec_widgets-2.5.0.dist-info/licenses/LICENSE,sha256=Daeiu871NcAp8uYi4eB_qHgvypG-HX0ioRQyQxFwjeg,1531
|
406
|
+
bec_widgets-2.5.0.dist-info/RECORD,,
|
pyproject.toml
CHANGED
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
|
|
4
4
|
|
5
5
|
[project]
|
6
6
|
name = "bec_widgets"
|
7
|
-
version = "2.
|
7
|
+
version = "2.5.0"
|
8
8
|
description = "BEC Widgets"
|
9
9
|
requires-python = ">=3.10"
|
10
10
|
classifiers = [
|
@@ -38,6 +38,7 @@ dev = [
|
|
38
38
|
"pytest-timeout~=2.2",
|
39
39
|
"pytest-xvfb~=3.0",
|
40
40
|
"pytest~=8.0",
|
41
|
+
"pytest-cov~=6.1.1",
|
41
42
|
]
|
42
43
|
|
43
44
|
[project.urls]
|
@@ -70,7 +71,7 @@ include_trailing_comma = true
|
|
70
71
|
known_first_party = ["bec_widgets"]
|
71
72
|
|
72
73
|
[tool.semantic_release]
|
73
|
-
build_command = "python -m build"
|
74
|
+
build_command = "pip install build wheel && python -m build"
|
74
75
|
version_toml = ["pyproject.toml:project.version"]
|
75
76
|
|
76
77
|
[tool.semantic_release.commit_author]
|
@@ -96,12 +97,23 @@ default_bump_level = 0
|
|
96
97
|
|
97
98
|
[tool.semantic_release.remote]
|
98
99
|
name = "origin"
|
99
|
-
type = "
|
100
|
-
ignore_token_for_push =
|
100
|
+
type = "github"
|
101
|
+
ignore_token_for_push = true
|
101
102
|
|
102
103
|
[tool.semantic_release.remote.token]
|
103
|
-
env = "
|
104
|
+
env = "GH_TOKEN"
|
104
105
|
|
105
106
|
[tool.semantic_release.publish]
|
106
107
|
dist_glob_patterns = ["dist/*"]
|
107
108
|
upload_to_vcs_release = true
|
109
|
+
|
110
|
+
[tool.coverage.report]
|
111
|
+
skip_empty = true # exclude empty *files*, e.g. __init__.py, from the report
|
112
|
+
exclude_lines = [
|
113
|
+
"pragma: no cover",
|
114
|
+
"if TYPE_CHECKING:",
|
115
|
+
"return NotImplemented",
|
116
|
+
"raise NotImplementedError",
|
117
|
+
"\\.\\.\\.",
|
118
|
+
'if __name__ == "__main__":',
|
119
|
+
]
|
File without changes
|
File without changes
|