diff options
Diffstat (limited to 'qutebrowser/qt/sip.py')
-rw-r--r-- | qutebrowser/qt/sip.py | 36 |
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 |