From 78b3f9695c696e9f1413f77f10af91df6dcf2f88 Mon Sep 17 00:00:00 2001 From: Jimmy Date: Sun, 17 Apr 2022 10:59:59 +1200 Subject: Some leftovers and special cases pyqt wrapper re-write Imports in TYPE_CHECKING conditions are not consistently handled, possibly when they are only used in string types. Not sure what happened with the duplicates in the logging modules. Found by grepping 'Qt and "Qt --- qutebrowser/browser/browsertab.py | 34 +++++++++++++++++++++------------- qutebrowser/utils/log.py | 1 + tests/end2end/fixtures/testprocess.py | 3 +-- tests/unit/misc/test_ipc.py | 3 +-- tests/unit/utils/test_log.py | 2 +- 5 files changed, 25 insertions(+), 18 deletions(-) diff --git a/qutebrowser/browser/browsertab.py b/qutebrowser/browser/browsertab.py index 0b5e79573..7f725aa84 100644 --- a/qutebrowser/browser/browsertab.py +++ b/qutebrowser/browser/browsertab.py @@ -17,7 +17,7 @@ # You should have received a copy of the GNU General Public License # along with qutebrowser. If not, see . -"""Base class for a wrapper over QWebView/QWebEngineView.""" +"""Base class for a wrapper over webkitwidgets.QWebView/webenginecore.QWebEngineView.""" import enum import itertools @@ -28,10 +28,7 @@ from typing import (cast, TYPE_CHECKING, Any, Callable, Iterable, List, Optional from qutebrowser.qt import widgets, printsupport, network if TYPE_CHECKING: - from qutebrowser.qt.webkit import QWebHistory, QWebHistoryItem - from qutebrowser.qt.webkitwidgets import QWebPage, QWebView - from qutebrowser.qt.webenginewidgets import ( - QWebEngineHistory, QWebEngineHistoryItem, QWebEnginePage, QWebEngineView) + from qutebrowser.qt import webkit, webkitwidgets, webenginecore from qutebrowser.keyinput import modeman from qutebrowser.config import config, websettings @@ -47,7 +44,7 @@ if TYPE_CHECKING: tab_id_gen = itertools.count(0) -_WidgetType = Union["QWebView", "QWebEngineView"] +_WidgetType = Union["webkitwidgets.QWebView", "webenginecore.QWebEngineView"] def create(win_id: int, @@ -147,7 +144,12 @@ class AbstractAction: """Attribute ``action`` of AbstractTab for Qt WebActions.""" - action_base: Type[Union['QWebPage.WebAction', 'QWebEnginePage.WebAction']] + action_base: Type[ + Union[ + 'webkitwidgets.QWebPage.WebAction', + 'webenginecore.QWebEnginePage.WebAction', + ] + ] def __init__(self, tab: 'AbstractTab') -> None: self._widget = cast(_WidgetType, None) @@ -691,7 +693,7 @@ class AbstractHistoryPrivate: """Private API related to the history.""" - _history: Union["QWebHistory", "QWebEngineHistory"] + _history: Union["webkit.QWebHistory", "webenginecore.QWebEngineHistory"] def serialize(self) -> bytes: """Serialize into an opaque format understood by self.deserialize.""" @@ -712,13 +714,19 @@ class AbstractHistory: def __init__(self, tab: 'AbstractTab') -> None: self._tab = tab - self._history = cast(Union['QWebHistory', 'QWebEngineHistory'], None) + self._history = cast( + Union['webkit.QWebHistory', 'webenginecore.QWebEngineHistory'], None + ) self.private_api = AbstractHistoryPrivate() def __len__(self) -> int: raise NotImplementedError - def __iter__(self) -> Iterable[Union['QWebHistoryItem', 'QWebEngineHistoryItem']]: + def __iter__( + self, + ) -> Iterable[ + Union['webkit.QWebHistoryItem', 'webenginecore.QWebEngineHistoryItem'] + ]: raise NotImplementedError def _check_count(self, count: int) -> None: @@ -729,7 +737,7 @@ class AbstractHistory: def current_idx(self) -> int: raise NotImplementedError - def current_item(self) -> Union['QWebHistoryItem', 'QWebEngineHistoryItem']: + def current_item(self) -> Union['webkit.QWebHistoryItem', 'webenginecore.QWebEngineHistoryItem']: raise NotImplementedError def back(self, count: int = 1) -> None: @@ -964,7 +972,7 @@ class AbstractTabPrivate: class AbstractTab(widgets.QWidget): - """An adapter for QWebView/QWebEngineView representing a single tab.""" + """An adapter for webkitwidgets.QWebView/webenginecore.QWebEngineView representing a single tab.""" #: Signal emitted when a website requests to close this tab. window_close_requested = core.pyqtSignal() @@ -1058,7 +1066,7 @@ class AbstractTab(widgets.QWidget): self.before_load_started.connect(self._on_before_load_started) - def _set_widget(self, widget: Union["QWebView", "QWebEngineView"]) -> None: + def _set_widget(self, widget: Union["webkitwidgets.QWebView", "webenginecore.QWebEngineView"]) -> None: # pylint: disable=protected-access self._widget = widget self.data.splitter = miscwidgets.InspectorSplitter( diff --git a/qutebrowser/utils/log.py b/qutebrowser/utils/log.py index c0da78b90..328ca45a4 100644 --- a/qutebrowser/utils/log.py +++ b/qutebrowser/utils/log.py @@ -36,6 +36,7 @@ from typing import (TYPE_CHECKING, Any, Iterator, Mapping, MutableSequence, Optional, Set, Tuple, Union) from qutebrowser.qt import core + # Optional imports try: import colorama diff --git a/tests/end2end/fixtures/testprocess.py b/tests/end2end/fixtures/testprocess.py index 822d57b7a..a85f9644d 100644 --- a/tests/end2end/fixtures/testprocess.py +++ b/tests/end2end/fixtures/testprocess.py @@ -26,12 +26,11 @@ import dataclasses import pytest import pytestqt.wait_signal -from qutebrowser.qt import test from helpers import testutils from qutebrowser.utils import utils as quteutils -from qutebrowser.qt import core +from qutebrowser.qt import core, test class InvalidLine(Exception): diff --git a/tests/unit/misc/test_ipc.py b/tests/unit/misc/test_ipc.py index a58920544..5a7489e38 100644 --- a/tests/unit/misc/test_ipc.py +++ b/tests/unit/misc/test_ipc.py @@ -30,13 +30,12 @@ from unittest import mock from typing import Optional, List import pytest -from qutebrowser.qt import test import qutebrowser from qutebrowser.misc import ipc from qutebrowser.utils import standarddir, utils, version from helpers import stubs, testutils -from qutebrowser.qt import network, core +from qutebrowser.qt import network, core, test pytestmark = pytest.mark.usefixtures('qapp') diff --git a/tests/unit/utils/test_log.py b/tests/unit/utils/test_log.py index 9d2f5cc5b..f00c5cee3 100644 --- a/tests/unit/utils/test_log.py +++ b/tests/unit/utils/test_log.py @@ -28,9 +28,9 @@ import dataclasses import pytest import _pytest.logging # pylint: disable=import-private-name -from qutebrowser.qt import core from qutebrowser import qutebrowser +from qutebrowser.qt import core from qutebrowser.utils import log from qutebrowser.misc import utilcmds from qutebrowser.api import cmdutils -- cgit v1.2.3-54-g00ecf