summaryrefslogtreecommitdiff
path: root/qutebrowser/qt/sip.py
diff options
context:
space:
mode:
Diffstat (limited to 'qutebrowser/qt/sip.py')
-rw-r--r--qutebrowser/qt/sip.py36
1 files changed, 21 insertions, 15 deletions
diff --git a/qutebrowser/qt/sip.py b/qutebrowser/qt/sip.py
index 2cfd9c82f..7e4bf246d 100644
--- a/qutebrowser/qt/sip.py
+++ b/qutebrowser/qt/sip.py
@@ -1,31 +1,37 @@
# vim: ft=python fileencoding=utf-8 sts=4 sw=4 et:
-# FIXME:qt6 (lint)
-# pylint: disable=missing-module-docstring,wildcard-import,unused-wildcard-import,no-else-raise
-# flake8: noqa
+# pylint: disable=wildcard-import,unused-wildcard-import
+
+"""Wrapped Qt imports for PyQt5.sip/PyQt6.sip.
+
+All code in qutebrowser should use this module instead of importing from
+PyQt/sip directly. This allows supporting both Qt 5 and Qt 6.
+
+See machinery.py for details on how Qt wrapper selection works.
+
+Any API exported from this module is based on the PyQt6.sip API:
+https://www.riverbankcomputing.com/static/Docs/PyQt6/api/sip/sip-module.html
+
+Note that we don't yet abstract between PySide/PyQt here.
+"""
from qutebrowser.qt import machinery
-# While upstream recommends using PyQt6.sip ever since PyQt6 5.11, some distributions
-# still package later versions of PyQt6 with a top-level "sip" rather than "PyQt6.sip".
-_VENDORED_SIP = False
+machinery.init_implicit()
-if machinery.USE_PYSIDE6:
+if machinery.USE_PYSIDE6: # pylint: disable=no-else-raise
raise machinery.Unavailable()
elif machinery.USE_PYQT5:
try:
from PyQt5.sip import *
- _VENDORED_SIP = True
except ImportError:
- pass
+ from sip import * # type: ignore[import]
elif machinery.USE_PYQT6:
try:
from PyQt6.sip import *
- _VENDORED_SIP = True
except ImportError:
- pass
-
+ # 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".
+ from sip import *
else:
raise machinery.UnknownWrapper()
-
-if not _VENDORED_SIP:
- from sip import * # type: ignore[import] # pylint: disable=import-error