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.py31
1 files changed, 31 insertions, 0 deletions
diff --git a/qutebrowser/qt/sip.py b/qutebrowser/qt/sip.py
new file mode 100644
index 000000000..2cfd9c82f
--- /dev/null
+++ b/qutebrowser/qt/sip.py
@@ -0,0 +1,31 @@
+# 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
+
+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
+
+if machinery.USE_PYSIDE6:
+ raise machinery.Unavailable()
+elif machinery.USE_PYQT5:
+ try:
+ from PyQt5.sip import *
+ _VENDORED_SIP = True
+ except ImportError:
+ pass
+elif machinery.USE_PYQT6:
+ try:
+ from PyQt6.sip import *
+ _VENDORED_SIP = True
+ except ImportError:
+ pass
+
+else:
+ raise machinery.UnknownWrapper()
+
+if not _VENDORED_SIP:
+ from sip import * # type: ignore[import] # pylint: disable=import-error