From 234f8805bcdbeb79efe68cf2abbf2703666f7fac Mon Sep 17 00:00:00 2001 From: Talley Lambert Date: Thu, 26 Mar 2026 20:48:28 -0400 Subject: [PATCH 1/2] apply formatting --- packages/PyQt6-Qlementine/project.py | 4 +- .../PySide6Qlementine/__init__.py | 7 +++- .../scripts/generate_stubs.py | 19 ++++++---- .../scripts/generate_utils_bridge.py | 38 +++++++++++-------- tests/test_widgets.py | 1 - tests/utils/test_badge_utils.py | 1 - tests/utils/test_color_utils.py | 1 - tests/utils/test_font_utils.py | 1 - tests/utils/test_geometry_utils.py | 1 - tests/utils/test_image_utils.py | 1 - tests/utils/test_layout_utils.py | 1 - tests/utils/test_menu_utils.py | 1 - tests/utils/test_primitive_utils.py | 1 - tests/utils/test_state_utils.py | 1 - tests/utils/test_style_utils.py | 1 - tests/utils/test_widget_utils.py | 1 - 16 files changed, 40 insertions(+), 40 deletions(-) diff --git a/packages/PyQt6-Qlementine/project.py b/packages/PyQt6-Qlementine/project.py index eca17b3..242bc60 100644 --- a/packages/PyQt6-Qlementine/project.py +++ b/packages/PyQt6-Qlementine/project.py @@ -30,9 +30,7 @@ def fix_rpath_macos(so: Path, new_rpaths: list[str]) -> None: ["install_name_tool", "-delete_rpath", rpath, str(so)], check=True ) for rpath in new_rpaths: - subprocess.run( - ["install_name_tool", "-add_rpath", rpath, str(so)], check=True - ) + subprocess.run(["install_name_tool", "-add_rpath", rpath, str(so)], check=True) print(f"Updated RPATH for {so} to {new_rpaths}") diff --git a/packages/PySide6-Qlementine/PySide6Qlementine/__init__.py b/packages/PySide6-Qlementine/PySide6Qlementine/__init__.py index 2d9eb4d..41f2517 100644 --- a/packages/PySide6-Qlementine/PySide6Qlementine/__init__.py +++ b/packages/PySide6-Qlementine/PySide6Qlementine/__init__.py @@ -2,6 +2,8 @@ import sys +from . import utils as utils + if sys.platform == "win32": import os @@ -24,8 +26,10 @@ del PySide6, shiboken6, os, _mod, _dir, _qt_bin + def _init(): import types + from . import PySide6Qlementine as _ql ns = globals() @@ -40,7 +44,6 @@ def _init(): # appStyle lives on UtilsBridge (free functions are rejected by shiboken) ns["appStyle"] = _ql.UtilsBridge.appStyle + _init() del _init - -from . import utils as utils diff --git a/packages/PySide6-Qlementine/scripts/generate_stubs.py b/packages/PySide6-Qlementine/scripts/generate_stubs.py index 92f717a..4c3986e 100644 --- a/packages/PySide6-Qlementine/scripts/generate_stubs.py +++ b/packages/PySide6-Qlementine/scripts/generate_stubs.py @@ -158,9 +158,7 @@ def _split_stubs(content: str) -> tuple[str, str]: dedented = stripped method_block = [dedented] i += 1 - while i < len(lines) and lines[i].startswith( - (" ", "\t") - ): + while i < len(lines) and lines[i].startswith((" ", "\t")): # Dedent method body (8 spaces -> 4 spaces) body = lines[i] if body.startswith(" "): @@ -207,13 +205,11 @@ def _split_stubs(content: str) -> tuple[str, str]: def _generate_utils_stubs_from_bridge(header: str) -> str: """Generate utils.pyi by introspecting UtilsBridge static method signatures.""" import inspect - import typing from shibokensupport.signature import get_signature # type: ignore bridge = PySide6Qlementine.PySide6Qlementine.UtilsBridge lines = [header.rstrip(), ""] - seen: dict[str, list[str]] = {} for name in sorted(dir(bridge)): if name.startswith("_") or name == "appStyle": @@ -308,8 +304,17 @@ def _run_ruff(path: Path) -> None: ruff_args = ["--target-version", "py310"] subprocess.run( [ - ruff, "check", *ruff_args, "--fix", "--unsafe-fixes", - str(path), "--select", "E,F,W,I,UP,RUF", "--ignore", "E501", "--quiet", + ruff, + "check", + *ruff_args, + "--fix", + "--unsafe-fixes", + str(path), + "--select", + "E,F,W,I,UP,RUF", + "--ignore", + "E501", + "--quiet", ], check=False, ) diff --git a/packages/PySide6-Qlementine/scripts/generate_utils_bridge.py b/packages/PySide6-Qlementine/scripts/generate_utils_bridge.py index e4558a8..4f10bee 100644 --- a/packages/PySide6-Qlementine/scripts/generate_utils_bridge.py +++ b/packages/PySide6-Qlementine/scripts/generate_utils_bridge.py @@ -33,6 +33,7 @@ "WidgetUtils.sip", } + def _find_functions(text: str) -> list[tuple[str, str, str]]: """Extract function declarations, handling nested parens in defaults.""" results: list[tuple[str, str, str]] = [] @@ -66,6 +67,7 @@ def _find_functions(text: str) -> list[tuple[str, str, str]]: results.append((m.group(1).strip(), m.group(2).strip(), params)) return results + # Matches #include lines inside %TypeHeaderCode blocks INCLUDE_RE = re.compile(r"^#include\s+[<\"](.+?)[>\"]", re.MULTILINE) @@ -170,16 +172,18 @@ def generate_bridge( if "oclero/qlementine/style/QlementineStyle.hpp" not in seen: lines.append("#include ") - lines.extend([ - "", - "namespace oclero::qlementine {", - "", - "class UtilsBridge {", - "public:", - " static QlementineStyle* appStyle() {", - " return oclero::qlementine::appStyle();", - " }", - ]) + lines.extend( + [ + "", + "namespace oclero::qlementine {", + "", + "class UtilsBridge {", + "public:", + " static QlementineStyle* appStyle() {", + " return oclero::qlementine::appStyle();", + " }", + ] + ) for ret_type, name, params in all_functions: call_args = format_call_args(params) @@ -193,12 +197,14 @@ def generate_bridge( lines.append(f" {body}") lines.append(" }") - lines.extend([ - "};", - "", - "} // namespace oclero::qlementine", - "", - ]) + lines.extend( + [ + "};", + "", + "} // namespace oclero::qlementine", + "", + ] + ) return "\n".join(lines) diff --git a/tests/test_widgets.py b/tests/test_widgets.py index 2ca3429..0594134 100644 --- a/tests/test_widgets.py +++ b/tests/test_widgets.py @@ -4,7 +4,6 @@ from typing import TYPE_CHECKING -import pytest from _qt_compat import ( QAction, QApplication, diff --git a/tests/utils/test_badge_utils.py b/tests/utils/test_badge_utils.py index aeaa7db..d245628 100644 --- a/tests/utils/test_badge_utils.py +++ b/tests/utils/test_badge_utils.py @@ -9,7 +9,6 @@ Theme = Qlementine.Theme - def test_draw_status_badge(qapp): pixmap = QtGui.QPixmap(64, 64) pixmap.fill(QtGui.QColor(255, 255, 255)) diff --git a/tests/utils/test_color_utils.py b/tests/utils/test_color_utils.py index 9427283..473a350 100644 --- a/tests/utils/test_color_utils.py +++ b/tests/utils/test_color_utils.py @@ -5,7 +5,6 @@ from _qt_compat import QColor, Qlementine - def test_get_contrast_ratio(): # NOTE: upstream getContrastRatio is a stub returning 4.5 ratio = Qlementine.utils.getContrastRatio(QColor(0, 0, 0), QColor(255, 255, 255)) diff --git a/tests/utils/test_font_utils.py b/tests/utils/test_font_utils.py index 7998fd5..f6fe67e 100644 --- a/tests/utils/test_font_utils.py +++ b/tests/utils/test_font_utils.py @@ -5,7 +5,6 @@ from _qt_compat import Qlementine, QtGui - def test_point_size_to_pixel_size(qapp): result = Qlementine.utils.pointSizeToPixelSize(12.0, 96.0) assert isinstance(result, float) diff --git a/tests/utils/test_geometry_utils.py b/tests/utils/test_geometry_utils.py index 48bd4c0..9a49694 100644 --- a/tests/utils/test_geometry_utils.py +++ b/tests/utils/test_geometry_utils.py @@ -5,7 +5,6 @@ from _qt_compat import Qlementine, QtCore - def test_point_inside_rounded_rect(): rect = QtCore.QRectF(0, 0, 100, 100) center = QtCore.QPointF(50, 50) diff --git a/tests/utils/test_image_utils.py b/tests/utils/test_image_utils.py index ac7cd0f..2accab6 100644 --- a/tests/utils/test_image_utils.py +++ b/tests/utils/test_image_utils.py @@ -8,7 +8,6 @@ RadiusesF = Qlementine.RadiusesF - def test_colorize_image(qapp): pixmap = QtGui.QPixmap(32, 32) pixmap.fill(QColor(128, 128, 128)) diff --git a/tests/utils/test_layout_utils.py b/tests/utils/test_layout_utils.py index cfa7957..94d4a37 100644 --- a/tests/utils/test_layout_utils.py +++ b/tests/utils/test_layout_utils.py @@ -5,7 +5,6 @@ from _qt_compat import Qlementine, QtWidgets, QWidget - def test_get_layout_margins(qapp): w = QWidget() w.setLayout(QtWidgets.QVBoxLayout()) diff --git a/tests/utils/test_menu_utils.py b/tests/utils/test_menu_utils.py index f242f85..25f4444 100644 --- a/tests/utils/test_menu_utils.py +++ b/tests/utils/test_menu_utils.py @@ -5,7 +5,6 @@ from _qt_compat import Qlementine, QtWidgets - def test_get_top_level_menu_returns_self(qapp): menu = QtWidgets.QMenu() result = Qlementine.utils.getTopLevelMenu(menu) diff --git a/tests/utils/test_primitive_utils.py b/tests/utils/test_primitive_utils.py index df590fb..5cc0682 100644 --- a/tests/utils/test_primitive_utils.py +++ b/tests/utils/test_primitive_utils.py @@ -10,7 +10,6 @@ Theme = Qlementine.Theme - def _make_painter(): """Create a pixmap and painter for drawing tests.""" pixmap = QtGui.QPixmap(100, 100) diff --git a/tests/utils/test_state_utils.py b/tests/utils/test_state_utils.py index c4980de..faefa1c 100644 --- a/tests/utils/test_state_utils.py +++ b/tests/utils/test_state_utils.py @@ -14,7 +14,6 @@ QStyle = QtWidgets.QStyle - def test_get_mouse_state_from_flags(qapp): state = QStyle.StateFlag.State_Enabled | QStyle.StateFlag.State_MouseOver result = Qlementine.utils.getMouseState(state) diff --git a/tests/utils/test_style_utils.py b/tests/utils/test_style_utils.py index a41acfc..145ebee 100644 --- a/tests/utils/test_style_utils.py +++ b/tests/utils/test_style_utils.py @@ -5,7 +5,6 @@ from _qt_compat import Qlementine, QWidget - def test_should_have_hover_events(qapp): w = QWidget() result = Qlementine.utils.shouldHaveHoverEvents(w) diff --git a/tests/utils/test_widget_utils.py b/tests/utils/test_widget_utils.py index 9f88859..80c8993 100644 --- a/tests/utils/test_widget_utils.py +++ b/tests/utils/test_widget_utils.py @@ -5,7 +5,6 @@ from _qt_compat import Qlementine, QWidget - def test_make_vertical_line(qapp): parent = QWidget() line = Qlementine.utils.makeVerticalLine(parent) From 2919dd31821295baaa9f23e1b4983a1d7f94b639 Mon Sep 17 00:00:00 2001 From: Talley Lambert Date: Fri, 27 Mar 2026 09:31:20 -0400 Subject: [PATCH 2/2] fix: move utils import to the end of the file --- packages/PySide6-Qlementine/PySide6Qlementine/__init__.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/PySide6-Qlementine/PySide6Qlementine/__init__.py b/packages/PySide6-Qlementine/PySide6Qlementine/__init__.py index 41f2517..a37e443 100644 --- a/packages/PySide6-Qlementine/PySide6Qlementine/__init__.py +++ b/packages/PySide6-Qlementine/PySide6Qlementine/__init__.py @@ -2,8 +2,6 @@ import sys -from . import utils as utils - if sys.platform == "win32": import os @@ -47,3 +45,5 @@ def _init(): _init() del _init + +from . import utils as utils # noqa: E402