summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFlorian Bruhin <me@the-compiler.org>2023-06-29 21:55:45 +0200
committerFlorian Bruhin <me@the-compiler.org>2023-06-29 21:56:08 +0200
commitc8744122f63698e6917fee2a870197f550cfd27a (patch)
tree42a929c6a85b81b3f585a81885f256f9b923fe60
parent3811ec71a7f71ee3a0e2cde63309853b4149b7e5 (diff)
downloadqutebrowser-c8744122f63698e6917fee2a870197f550cfd27a.tar.gz
qutebrowser-c8744122f63698e6917fee2a870197f550cfd27a.zip
qt6 mypy: Fix unused-ignores with mypy-pyqt5
-rw-r--r--.mypy.ini4
-rw-r--r--qutebrowser/browser/browsertab.py8
-rw-r--r--qutebrowser/browser/network/pac.py18
-rw-r--r--qutebrowser/browser/webengine/interceptor.py4
-rw-r--r--qutebrowser/browser/webengine/notification.py2
-rw-r--r--qutebrowser/browser/webengine/webenginequtescheme.py2
-rw-r--r--qutebrowser/browser/webengine/webenginetab.py14
-rw-r--r--qutebrowser/mainwindow/prompt.py2
-rw-r--r--qutebrowser/mainwindow/tabbedbrowser.py3
-rw-r--r--qutebrowser/misc/crashdialog.py2
-rw-r--r--qutebrowser/misc/httpclient.py3
-rw-r--r--qutebrowser/utils/debug.py2
-rw-r--r--qutebrowser/utils/qtutils.py11
-rw-r--r--qutebrowser/utils/urlutils.py15
-rw-r--r--qutebrowser/utils/version.py8
15 files changed, 62 insertions, 36 deletions
diff --git a/.mypy.ini b/.mypy.ini
index 3e83460f0..e0bff335f 100644
--- a/.mypy.ini
+++ b/.mypy.ini
@@ -11,9 +11,7 @@ disallow_incomplete_defs = True
check_untyped_defs = True
disallow_untyped_decorators = True
warn_redundant_casts = True
-## can't use warn_unused_ignores because of different Qt5/Qt6 ignores.
-## FIXME:v4 (lint) reenable when dropping Qt 5
-# warn_unused_ignores = True
+warn_unused_ignores = True
# warn_return_any = True
# no_implicit_reexport = True
strict_equality = True
diff --git a/qutebrowser/browser/browsertab.py b/qutebrowser/browser/browsertab.py
index eae58f7ed..9692be483 100644
--- a/qutebrowser/browser/browsertab.py
+++ b/qutebrowser/browser/browsertab.py
@@ -1073,7 +1073,7 @@ class AbstractTab(QWidget):
# FIXME:v4 ignore needed for QtWebKit
self.data.splitter = miscwidgets.InspectorSplitter(
win_id=self.win_id,
- main_webview=widget, # type: ignore[arg-type]
+ main_webview=widget, # type: ignore[arg-type,unused-ignore]
)
self._layout.wrap(self, self.data.splitter)
self.history._history = widget.history()
@@ -1182,7 +1182,7 @@ class AbstractTab(QWidget):
def _on_load_finished(self, ok: bool) -> None:
assert self._widget is not None
# FIXME:mypy PyQt6-stubs issue?
- if sip.isdeleted(self._widget): # type: ignore[arg-type]
+ if sip.isdeleted(self._widget):
# https://github.com/qutebrowser/qutebrowser/issues/3498
return
@@ -1318,7 +1318,7 @@ class AbstractTab(QWidget):
else:
qtutils.ensure_valid(rect)
# FIXME:v4 ignore needed for QtWebKit
- pic = self._widget.grab(rect) # type: ignore[arg-type]
+ pic = self._widget.grab(rect) # type: ignore[arg-type,unused-ignore]
if pic.isNull():
return None
@@ -1343,4 +1343,4 @@ class AbstractTab(QWidget):
def is_deleted(self) -> bool:
assert self._widget is not None
# FIXME:mypy PyQt6-stubs issue?
- return sip.isdeleted(self._widget) # type: ignore[arg-type]
+ return sip.isdeleted(self._widget)
diff --git a/qutebrowser/browser/network/pac.py b/qutebrowser/browser/network/pac.py
index c372c6eea..8a67850f5 100644
--- a/qutebrowser/browser/network/pac.py
+++ b/qutebrowser/browser/network/pac.py
@@ -21,15 +21,16 @@
import sys
import functools
-from typing import Optional
+from typing import Optional, cast
+from qutebrowser.qt import machinery
from qutebrowser.qt.core import QObject, pyqtSignal, pyqtSlot, QUrl
from qutebrowser.qt.network import (QNetworkProxy, QNetworkRequest, QHostInfo,
QNetworkReply, QNetworkAccessManager,
QHostAddress)
from qutebrowser.qt.qml import QJSEngine, QJSValue
-from qutebrowser.utils import log, utils, qtutils, resources
+from qutebrowser.utils import log, utils, qtutils, resources, urlutils
class ParseProxyError(Exception):
@@ -214,13 +215,20 @@ class PACResolver:
"""
qtutils.ensure_valid(query.url())
+ string_flags: urlutils.URL_FLAGS_T
if from_file:
string_flags = QUrl.ComponentFormattingOption.PrettyDecoded
else:
- string_flags = QUrl.UrlFormattingOption.RemoveUserInfo # type: ignore[assignment]
+ string_flags = QUrl.UrlFormattingOption.RemoveUserInfo
if query.url().scheme() == 'https':
- string_flags |= QUrl.UrlFormattingOption.RemovePath # type: ignore[assignment]
- string_flags |= QUrl.UrlFormattingOption.RemoveQuery # type: ignore[assignment]
+ https_opts = (
+ QUrl.UrlFormattingOption.RemovePath |
+ QUrl.UrlFormattingOption.RemoveQuery)
+
+ if machinery.IS_QT5:
+ string_flags |= cast(QUrl.UrlFormattingOption, https_opts)
+ else:
+ string_flags |= https_opts
result = self._resolver.call([query.url().toString(string_flags),
query.peerHostName()])
diff --git a/qutebrowser/browser/webengine/interceptor.py b/qutebrowser/browser/webengine/interceptor.py
index 5781a281d..651b08061 100644
--- a/qutebrowser/browser/webengine/interceptor.py
+++ b/qutebrowser/browser/webengine/interceptor.py
@@ -36,8 +36,8 @@ class WebEngineRequest(interceptors.Request):
_WHITELISTED_REQUEST_METHODS = {
# FIXME:mypy PyQt6-stubs issue?
- QByteArray(b'GET'), # type: ignore[call-overload]
- QByteArray(b'HEAD'), # type: ignore[call-overload]
+ QByteArray(b'GET'), # type: ignore[call-overload,unused-ignore]
+ QByteArray(b'HEAD'), # type: ignore[call-overload,unused-ignore]
}
def __init__(self, *args, webengine_info, **kwargs):
diff --git a/qutebrowser/browser/webengine/notification.py b/qutebrowser/browser/webengine/notification.py
index ba00b066b..1c608812e 100644
--- a/qutebrowser/browser/webengine/notification.py
+++ b/qutebrowser/browser/webengine/notification.py
@@ -1112,7 +1112,7 @@ class DBusNotificationAdapter(AbstractNotificationAdapter):
bits = qimage.constBits().asstring(size)
# FIXME:mypy PyQt6-stubs issue
- image_data.add(QByteArray(bits)) # type: ignore[call-overload]
+ image_data.add(QByteArray(bits)) # type: ignore[call-overload,unused-ignore]
image_data.endStructure()
return image_data
diff --git a/qutebrowser/browser/webengine/webenginequtescheme.py b/qutebrowser/browser/webengine/webenginequtescheme.py
index fd21408b6..205380484 100644
--- a/qutebrowser/browser/webengine/webenginequtescheme.py
+++ b/qutebrowser/browser/webengine/webenginequtescheme.py
@@ -28,7 +28,7 @@ from qutebrowser.browser import qutescheme
from qutebrowser.utils import log, qtutils
# FIXME:mypy PyQt6-stubs issue?
-_QUTE = QByteArray(b'qute') # type: ignore[call-overload]
+_QUTE = QByteArray(b'qute') # type: ignore[call-overload,unused-ignore]
class QuteSchemeHandler(QWebEngineUrlSchemeHandler):
diff --git a/qutebrowser/browser/webengine/webenginetab.py b/qutebrowser/browser/webengine/webenginetab.py
index a1d3af6ea..23dfcdb58 100644
--- a/qutebrowser/browser/webengine/webenginetab.py
+++ b/qutebrowser/browser/webengine/webenginetab.py
@@ -106,6 +106,12 @@ class WebEnginePrinting(browsertab.AbstractPrinting):
self._widget.print(printer)
+if machinery.IS_QT5:
+ _FIND_FLAG_T = Union[QWebEnginePage.FindFlag, QWebEnginePage.FindFlags]
+else:
+ _FIND_FLAG_T = QWebEnginePage.FindFlag
+
+
@dataclasses.dataclass
class _FindFlags:
@@ -114,13 +120,11 @@ class _FindFlags:
def to_qt(self):
"""Convert flags into Qt flags."""
- # FIXME:mypy Those should be correct, reevaluate with PyQt6-stubs
- flags = QWebEnginePage.FindFlag(0)
+ flags: _FIND_FLAG_T = QWebEnginePage.FindFlag(0)
if self.case_sensitive:
- flags |= ( # type: ignore[assignment]
- QWebEnginePage.FindFlag.FindCaseSensitively)
+ flags |= QWebEnginePage.FindFlag.FindCaseSensitively
if self.backward:
- flags |= QWebEnginePage.FindFlag.FindBackward # type: ignore[assignment]
+ flags |= QWebEnginePage.FindFlag.FindBackward
return flags
def __bool__(self):
diff --git a/qutebrowser/mainwindow/prompt.py b/qutebrowser/mainwindow/prompt.py
index c1ad82990..90e0d21c6 100644
--- a/qutebrowser/mainwindow/prompt.py
+++ b/qutebrowser/mainwindow/prompt.py
@@ -189,7 +189,7 @@ class PromptQueue(QObject):
question.completed.connect(loop.deleteLater)
log.prompt.debug("Starting loop.exec() for {}".format(question))
flags = QEventLoop.ProcessEventsFlag.ExcludeSocketNotifiers
- loop.exec(flags) # type: ignore[arg-type]
+ loop.exec(flags)
log.prompt.debug("Ending loop.exec() for {}".format(question))
log.prompt.debug("Restoring old question {}".format(old_question))
diff --git a/qutebrowser/mainwindow/tabbedbrowser.py b/qutebrowser/mainwindow/tabbedbrowser.py
index df79752ea..dbaffa2bf 100644
--- a/qutebrowser/mainwindow/tabbedbrowser.py
+++ b/qutebrowser/mainwindow/tabbedbrowser.py
@@ -221,7 +221,8 @@ class TabbedBrowser(QWidget):
self._tab_insert_idx_right = -1
self.is_shutting_down = False
self.widget.tabCloseRequested.connect(self.on_tab_close_requested)
- self.widget.new_tab_requested.connect(self.tabopen) # type: ignore[arg-type]
+ self.widget.new_tab_requested.connect( # type: ignore[arg-type,unused-ignore]
+ self.tabopen)
self.widget.currentChanged.connect(self._on_current_changed)
self.cur_fullscreen_requested.connect(self.widget.tab_bar().maybe_hide)
diff --git a/qutebrowser/misc/crashdialog.py b/qutebrowser/misc/crashdialog.py
index 1d709c0e4..81085f6a4 100644
--- a/qutebrowser/misc/crashdialog.py
+++ b/qutebrowser/misc/crashdialog.py
@@ -634,7 +634,7 @@ class ReportErrorDialog(QDialog):
hbox.addStretch()
btn = QPushButton("Close")
# FIXME:mypy PyQt6-stubs issue
- btn.clicked.connect(self.close) # type: ignore[arg-type]
+ btn.clicked.connect(self.close) # type: ignore[arg-type,unused-ignore]
hbox.addWidget(btn)
vbox.addLayout(hbox)
diff --git a/qutebrowser/misc/httpclient.py b/qutebrowser/misc/httpclient.py
index 23943c27c..269c73c81 100644
--- a/qutebrowser/misc/httpclient.py
+++ b/qutebrowser/misc/httpclient.py
@@ -81,7 +81,8 @@ class HTTPClient(QObject):
request.setHeader(QNetworkRequest.KnownHeaders.ContentTypeHeader,
'application/x-www-form-urlencoded;charset=utf-8')
# FIXME:mypy PyQt6-stubs issue
- reply = self._nam.post(request, encoded_data) # type: ignore[call-overload]
+ reply = self._nam.post( # type: ignore[call-overload,unused-ignore]
+ request, encoded_data)
self._handle_reply(reply)
def get(self, url):
diff --git a/qutebrowser/utils/debug.py b/qutebrowser/utils/debug.py
index 15796c5d2..654062d70 100644
--- a/qutebrowser/utils/debug.py
+++ b/qutebrowser/utils/debug.py
@@ -227,7 +227,7 @@ def qflags_key(base: Type[sip.simplewrapper],
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) # type: ignore[call-arg,unused-ignore]
names.append(qenum_key(base, enum_value, klass))
return '|'.join(names)
diff --git a/qutebrowser/utils/qtutils.py b/qutebrowser/utils/qtutils.py
index d5c0dd12f..89e4140c2 100644
--- a/qutebrowser/utils/qtutils.py
+++ b/qutebrowser/utils/qtutils.py
@@ -459,7 +459,8 @@ class QtValueError(ValueError):
if machinery.IS_QT6:
_ProcessEventFlagType = QEventLoop.ProcessEventsFlag
else:
- _ProcessEventFlagType = QEventLoop.ProcessEventsFlags
+ _ProcessEventFlagType = Union[
+ QEventLoop.ProcessEventsFlag, QEventLoop.ProcessEventsFlags]
class EventLoop(QEventLoop):
@@ -474,15 +475,15 @@ class EventLoop(QEventLoop):
self._executing = False
def exec(
- self,
- flags: _ProcessEventFlagType = (
- QEventLoop.ProcessEventsFlag.AllEvents # type: ignore[assignment]
- ),
+ self,
+ flags: _ProcessEventFlagType = QEventLoop.ProcessEventsFlag.AllEvents,
) -> int:
"""Override exec_ to raise an exception when re-running."""
if self._executing:
raise AssertionError("Eventloop is already running!")
self._executing = True
+ if machinery.IS_QT5:
+ flags = cast(QEventLoop.ProcessEventsFlags, flags)
status = super().exec(flags)
self._executing = False
return status
diff --git a/qutebrowser/utils/urlutils.py b/qutebrowser/utils/urlutils.py
index 866d0a662..5e8fbebe5 100644
--- a/qutebrowser/utils/urlutils.py
+++ b/qutebrowser/utils/urlutils.py
@@ -42,6 +42,17 @@ from qutebrowser.browser.network import pac
# https://github.com/qutebrowser/qutebrowser/issues/108
+if machinery.IS_QT6:
+ URL_FLAGS_T = Union[QUrl.UrlFormattingOption, QUrl.ComponentFormattingOption]
+else:
+ URL_FLAGS_T = Union[
+ QUrl.FormattingOptions,
+ QUrl.UrlFormattingOption,
+ QUrl.ComponentFormattingOption,
+ QUrl.ComponentFormattingOptions,
+ ]
+
+
# URL schemes supported by QtWebEngine
WEBENGINE_SCHEMES = [
'about',
@@ -508,8 +519,8 @@ def same_domain(url1: QUrl, url2: QUrl) -> bool:
# we use a NetworkManager from QtWebKit. However, QtWebKit is Qt 5 only.
assert machinery.IS_QT6, machinery.INFO
- suffix1 = url1.topLevelDomain() # type: ignore[attr-defined]
- suffix2 = url2.topLevelDomain() # type: ignore[attr-defined]
+ suffix1 = url1.topLevelDomain() # type: ignore[attr-defined,unused-ignore]
+ suffix2 = url2.topLevelDomain() # type: ignore[attr-defined,unused-ignore]
if not suffix1:
return url1.host() == url2.host()
diff --git a/qutebrowser/utils/version.py b/qutebrowser/utils/version.py
index ebe361390..727028759 100644
--- a/qutebrowser/utils/version.py
+++ b/qutebrowser/utils/version.py
@@ -1045,13 +1045,15 @@ def opengl_info() -> Optional[OpenGLInfo]: # pragma: no cover
return None
if vf is None:
- log.init.debug( # type: ignore[unreachable]
+ log.init.debug( # type: ignore[unreachable,unused-ignore]
"Getting version functions failed!")
return None
# FIXME:mypy PyQt6-stubs issue?
- vendor = vf.glGetString(vf.GL_VENDOR) # type: ignore[attr-defined]
- version = vf.glGetString(vf.GL_VERSION) # type: ignore[attr-defined]
+ vendor = vf.glGetString(
+ vf.GL_VENDOR) # type: ignore[attr-defined,unused-ignore]
+ version = vf.glGetString(
+ vf.GL_VERSION) # type: ignore[attr-defined,unused-ignore]
return OpenGLInfo.parse(vendor=vendor, version=version)
finally: