diff options
Diffstat (limited to 'qutebrowser/utils')
-rw-r--r-- | qutebrowser/utils/debug.py | 14 | ||||
-rw-r--r-- | qutebrowser/utils/qtutils.py | 27 | ||||
-rw-r--r-- | qutebrowser/utils/usertypes.py | 4 | ||||
-rw-r--r-- | qutebrowser/utils/utils.py | 8 |
4 files changed, 34 insertions, 19 deletions
diff --git a/qutebrowser/utils/debug.py b/qutebrowser/utils/debug.py index ff6c3b9c2..f4f73dfc7 100644 --- a/qutebrowser/utils/debug.py +++ b/qutebrowser/utils/debug.py @@ -33,7 +33,7 @@ from qutebrowser.qt.core import Qt, QEvent, QMetaMethod, QObject, pyqtBoundSigna from qutebrowser.utils import log, utils, qtutils, objreg from qutebrowser.misc import objects -from qutebrowser.qt import sip +from qutebrowser.qt import sip, machinery def log_events(klass: Type[QObject]) -> Type[QObject]: @@ -99,7 +99,10 @@ def log_signals(obj: QObject) -> QObject: return obj -_EnumValueType = Union[sip.simplewrapper, int] +if machinery.IS_QT5: + _EnumValueType = Union[sip.simplewrapper, int] +else: + _EnumValueType = Union[sip.wrapper ,int] def _qenum_key_python( @@ -109,8 +112,10 @@ def _qenum_key_python( """New-style PyQt6: Try getting value from Python enum.""" if isinstance(value, enum.Enum) and value.name: return value.name + assert isinstance(value, int) # We got an int with klass passed: Try asking Python enum for member + assert klass if issubclass(klass, enum.Enum): try: name = klass(value).name @@ -131,7 +136,7 @@ def _qenum_key_qt( # However, not every Qt enum value has a staticMetaObject try: meta_obj = base.staticMetaObject # type: ignore[union-attr] - idx = meta_obj.indexOfEnumerator(klass.__name__) + idx = meta_obj.indexOfEnumerator(klass.__name__) # type: ignore[union-attr] meta_enum = meta_obj.enumerator(idx) key = meta_enum.valueToKey(int(value)) # type: ignore[arg-type] if key is not None: @@ -140,6 +145,7 @@ def _qenum_key_qt( pass # PyQt5: Try finding value match in class + assert klass for name, obj in vars(base).items(): if isinstance(obj, klass) and obj == value: return name @@ -222,7 +228,7 @@ def qflags_key(base: Type[_EnumValueType], for bit in bits: # We have to re-convert to an enum type here or we'll sometimes get an # empty string back. - enum_value = klass(bit) # type: ignore[call-arg] + enum_value = klass(bit) names.append(qenum_key(base, enum_value, klass)) return '|'.join(names) diff --git a/qutebrowser/utils/qtutils.py b/qutebrowser/utils/qtutils.py index 0bd9c94e8..66a4f679f 100644 --- a/qutebrowser/utils/qtutils.py +++ b/qutebrowser/utils/qtutils.py @@ -40,13 +40,14 @@ from qutebrowser.qt.core import (qVersion, QEventLoop, QDataStream, QByteArray, QIODevice, QFileDevice, QSaveFile, QT_VERSION_STR, PYQT_VERSION_STR, QObject, QUrl, QLibraryInfo) from qutebrowser.qt.gui import QColor +from qutebrowser.qt import machinery try: from qutebrowser.qt.webkit import qWebKitVersion except ImportError: # pragma: no cover qWebKitVersion = None # type: ignore[assignment] # noqa: N816 if TYPE_CHECKING: from qutebrowser.qt.webkit import QWebHistory - from qutebrowser.qt.webenginewidgets import QWebEngineHistory + from qutebrowser.qt.webenginecore import QWebEngineHistory from qutebrowser.misc import objects from qutebrowser.utils import usertypes, utils @@ -186,13 +187,21 @@ def check_qdatastream(stream: QDataStream) -> None: raise OSError(status_to_str[stream.status()]) -_QtSerializableType = Union[ - QObject, - QByteArray, - QUrl, - 'QWebEngineHistory', - 'QWebHistory' -] +if machinery.IS_QT5: + _QtSerializableType = Union[ + QObject, + QByteArray, + QUrl, + 'QWebEngineHistory', + 'QWebHistory' + ] +else: + _QtSerializableType = Union[ + QObject, + QByteArray, + QUrl, + 'QWebEngineHistory', + ] def serialize(obj: _QtSerializableType) -> QByteArray: @@ -581,7 +590,7 @@ class LibraryPath(enum.Enum): def library_path(which: LibraryPath) -> pathlib.Path: """Wrapper around QLibraryInfo.path / .location.""" - if hasattr(QLibraryInfo, "path"): + if machinery.IS_QT6: # Qt 6 val = getattr(QLibraryInfo.LibraryPath, which.value) ret = QLibraryInfo.path(val) diff --git a/qutebrowser/utils/usertypes.py b/qutebrowser/utils/usertypes.py index b84af4524..aadda000b 100644 --- a/qutebrowser/utils/usertypes.py +++ b/qutebrowser/utils/usertypes.py @@ -491,7 +491,7 @@ class AbstractCertificateErrorWrapper: """A wrapper over an SSL/certificate error.""" def __init__(self) -> None: - self._certificate_accepted = None + self._certificate_accepted: Optional[bool] = None def __str__(self) -> str: raise NotImplementedError @@ -514,7 +514,7 @@ class AbstractCertificateErrorWrapper: def defer(self) -> None: raise NotImplementedError - def certificate_was_accepted(self) -> None: + def certificate_was_accepted(self) -> bool: """Check whether the certificate was accepted by the user.""" if not self.is_overridable(): return False diff --git a/qutebrowser/utils/utils.py b/qutebrowser/utils/utils.py index 29c4be1d9..0817d4c56 100644 --- a/qutebrowser/utils/utils.py +++ b/qutebrowser/utils/utils.py @@ -138,16 +138,16 @@ class VersionNumber: return self._ver != other._ver def __ge__(self, other: 'VersionNumber') -> bool: - return self._ver >= other._ver # type: ignore[operator] + return self._ver >= other._ver def __gt__(self, other: 'VersionNumber') -> bool: - return self._ver > other._ver # type: ignore[operator] + return self._ver > other._ver def __le__(self, other: 'VersionNumber') -> bool: - return self._ver <= other._ver # type: ignore[operator] + return self._ver <= other._ver def __lt__(self, other: 'VersionNumber') -> bool: - return self._ver < other._ver # type: ignore[operator] + return self._ver < other._ver class Unreachable(Exception): |