summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--qutebrowser/qt.py65
-rw-r--r--qutebrowser/utils/version.py2
2 files changed, 46 insertions, 21 deletions
diff --git a/qutebrowser/qt.py b/qutebrowser/qt.py
index f0ba25cd4..112bd20a8 100644
--- a/qutebrowser/qt.py
+++ b/qutebrowser/qt.py
@@ -22,40 +22,65 @@
# pylint: disable=unused-import,import-error
import importlib
+PyQt5 = PyQt6 = False
try:
import PyQt5 as pyqt # noqa: N813
+ PyQt5 = True
except ImportError:
import PyQt6 as pyqt # type: ignore[import, no-redef] # noqa: N813
+ PyQt6 = True
# While upstream recommends using PyQt5.sip ever since PyQt5 5.11, some distributions
# still package later versions of PyQt5 with a top-level "sip" rather than "PyQt5.sip".
-# pylint: disable=ungrouped-imports
try:
- sip = importlib.import_module(f"{pyqt.__name__}.sip")
+ if PyQt5:
+ from PyQt5 import sip
+ elif PyQt6:
+ from PyQt6 import sip # type: ignore[no-redef]
except ImportError:
import sip # type: ignore[import, no-redef]
-QtCore = importlib.import_module(f"{pyqt.__name__}.QtCore")
-QtDBus = importlib.import_module(f"{pyqt.__name__}.QtDBus")
-QtGui = importlib.import_module(f"{pyqt.__name__}.QtGui")
-QtNetwork = importlib.import_module(f"{pyqt.__name__}.QtNetwork")
-QtPrintSupport = importlib.import_module(f"{pyqt.__name__}.QtPrintSupport")
-QtQml = importlib.import_module(f"{pyqt.__name__}.QtQml")
-QtSql = importlib.import_module(f"{pyqt.__name__}.QtSql")
-QtWidgets = importlib.import_module(f"{pyqt.__name__}.QtWidgets")
+# pylint: disable=ungrouped-imports
+if PyQt5:
+ from PyQt5 import QtCore
+ from PyQt5 import QtDBus
+ from PyQt5 import QtGui
+ from PyQt5 import QtNetwork
+ from PyQt5 import QtPrintSupport
+ from PyQt5 import QtQml
+ from PyQt5 import QtSql
+ from PyQt5 import QtWidgets
+elif PyQt6:
+ from PyQt6 import QtCore # type: ignore[no-redef]
+ from PyQt6 import QtDBus # type: ignore[no-redef]
+ from PyQt6 import QtGui # type: ignore[no-redef]
+ from PyQt6 import QtNetwork # type: ignore[no-redef]
+ from PyQt6 import QtPrintSupport # type: ignore[no-redef]
+ from PyQt6 import QtQml # type: ignore[no-redef]
+ from PyQt6 import QtSql # type: ignore[no-redef]
+ from PyQt6 import QtWidgets # type: ignore[no-redef]
try:
- QtWebEngine = importlib.import_module(f"{pyqt.__name__}.QtWebEngine")
- QtWebEngineCore = importlib.import_module(f"{pyqt.__name__}.QtWebEngineCore")
- QtWebEngineWidgets = importlib.import_module(f"{pyqt.__name__}.QtWebEngineWidgets")
+ if PyQt5:
+ from PyQt5 import QtWebEngine
+ from PyQt5 import QtWebEngineCore
+ from PyQt5 import QtWebEngineWidgets
+ elif PyQt6:
+ from PyQt6 import QtWebEngine # type: ignore[no-redef]
+ from PyQt6 import QtWebEngineCore # type: ignore[no-redef]
+ from PyQt6 import QtWebEngineWidgets # type: ignore[no-redef]
except ImportError:
- QtWebEngine = None
- QtWebEngineCore = None
- QtWebEngineWidgets = None
+ QtWebEngine = None # type: ignore[assignment]
+ QtWebEngineCore = None # type: ignore[assignment]
+ QtWebEngineWidgets = None # type: ignore[assignment]
try:
- QtWebKit = importlib.import_module(f"{pyqt.__name__}.QtWebKit")
- QtWebKitWidgets = importlib.import_module(f"{pyqt.__name__}.QtWebKitWidgets")
+ if PyQt5:
+ from PyQt5 import QtWebKit
+ from PyQt5 import QtWebKitWidgets
+ elif PyQt6:
+ from PyQt6 import QtWebKit # type: ignore[no-redef]
+ from PyQt6 import QtWebKitWidgets # type: ignore[no-redef]
except ImportError:
- QtWebKit = None
- QtWebKitWidgets = None
+ QtWebKit = None # type: ignore[assignment]
+ QtWebKitWidgets = None # type: ignore[assignment]
diff --git a/qutebrowser/utils/version.py b/qutebrowser/utils/version.py
index 28df9199d..6f6b00a88 100644
--- a/qutebrowser/utils/version.py
+++ b/qutebrowser/utils/version.py
@@ -39,7 +39,7 @@ from typing import (Mapping, Optional, Sequence, Tuple, ClassVar, Dict, cast,
from qutebrowser.qt import QtWidgets, QtWebKit, QtWebEngine, QtNetwork
if not QtWebKit:
- qWebKitVersion = None # type: ignore[assignment] # noqa: N816
+ qWebKitVersion = None
if QtWebEngine:
PYQT_WEBENGINE_VERSION_STR = QtWebEngine.PYQT_WEBENGINE_VERSION_STR
else: