diff options
29 files changed, 88 insertions, 70 deletions
diff --git a/doc/changelog.asciidoc b/doc/changelog.asciidoc index 71cf6ec5d..666e24177 100644 --- a/doc/changelog.asciidoc +++ b/doc/changelog.asciidoc @@ -158,6 +158,7 @@ Changed `content.site_specific_quirks.skip`, so that `String.replaceAll` is now polyfilled on QtWebEngine < 5.15.3, hopefully improving website compaitibility. +- Hints are now displayed for elements setting an `aria-haspopup` attribute. Fixed ~~~~~ diff --git a/doc/help/settings.asciidoc b/doc/help/settings.asciidoc index 1b28eb39f..7767f1eea 100644 --- a/doc/help/settings.asciidoc +++ b/doc/help/settings.asciidoc @@ -3510,6 +3510,7 @@ Default: * +pass:[[role="menuitemcheckbox"\]]+ * +pass:[[role="menuitemradio"\]]+ * +pass:[[role="treeitem"\]]+ +* +pass:[[aria-haspopup\]]+ * +pass:[[ng-click\]]+ * +pass:[[ngClick\]]+ * +pass:[[data-ng-click\]]+ diff --git a/misc/requirements/requirements-dev.txt b/misc/requirements/requirements-dev.txt index cc0fb59b0..711899f72 100644 --- a/misc/requirements/requirements-dev.txt +++ b/misc/requirements/requirements-dev.txt @@ -5,15 +5,15 @@ build==0.10.0 bump2version==1.0.1 certifi==2023.5.7 cffi==1.15.1 -charset-normalizer==3.1.0 +charset-normalizer==3.2.0 cryptography==41.0.1 docutils==0.20.1 github3.py==4.0.1 hunter==3.6.1 idna==3.4 -importlib-metadata==6.7.0 -importlib-resources==5.12.0 -jaraco.classes==3.2.3 +importlib-metadata==6.8.0 +importlib-resources==6.0.0 +jaraco.classes==3.3.0 jeepney==0.8.0 keyring==24.2.0 manhole==1.8.0 @@ -40,8 +40,8 @@ sip==6.7.9 six==1.16.0 tomli==2.0.1 twine==4.0.2 -typing_extensions==4.6.3 +typing_extensions==4.7.1 uritemplate==4.1.1 # urllib3==2.0.3 webencodings==0.5.1 -zipp==3.15.0 +zipp==3.16.0 diff --git a/misc/requirements/requirements-flake8.txt b/misc/requirements/requirements-flake8.txt index 018c13a3c..f00809320 100644 --- a/misc/requirements/requirements-flake8.txt +++ b/misc/requirements/requirements-flake8.txt @@ -9,7 +9,7 @@ flake8-debugger==4.1.2 flake8-deprecated==2.0.1 flake8-docstrings==1.7.0 flake8-future-import==0.4.7 -flake8-plugin-utils==1.3.2 +flake8-plugin-utils==1.3.3 flake8-pytest-style==1.7.2 flake8-string-format==0.3.0 flake8-tidy-imports==4.9.0 diff --git a/misc/requirements/requirements-mypy.txt b/misc/requirements/requirements-mypy.txt index b5d23bf61..3d68d17a3 100644 --- a/misc/requirements/requirements-mypy.txt +++ b/misc/requirements/requirements-mypy.txt @@ -2,10 +2,9 @@ chardet==5.1.0 diff-cover==7.6.0 -importlib-metadata==6.7.0 -importlib-resources==5.12.0 +importlib-resources==6.0.0 Jinja2==3.1.2 -lxml==4.9.2 +lxml==4.9.3 MarkupSafe==2.1.3 mypy==1.4.1 mypy-extensions==1.0.0 @@ -13,11 +12,10 @@ pluggy==1.2.0 Pygments==2.15.1 PyQt5-stubs==5.15.6.0 tomli==2.0.1 -PyQt6-stubs @ git+https://github.com/python-qt-tools/PyQt6-stubs.git@f623a641cd5cdff53342177e4fbbf9cae8172336 types-colorama==0.4.15.11 types-docutils==0.20.0.1 types-Pygments==2.15.0.1 types-PyYAML==6.0.12.10 -typing_extensions==4.6.3 -zipp==3.15.0 -types-setuptools==68.0.0.0 +types-setuptools==68.0.0.1 +typing_extensions==4.7.1 +zipp==3.16.0 diff --git a/misc/requirements/requirements-mypy.txt-raw b/misc/requirements/requirements-mypy.txt-raw index 487d30ca6..027f4fef6 100644 --- a/misc/requirements/requirements-mypy.txt-raw +++ b/misc/requirements/requirements-mypy.txt-raw @@ -3,7 +3,6 @@ lxml # For HTML reports diff-cover PyQt5-stubs -git+https://github.com/python-qt-tools/PyQt6-stubs.git types-PyYAML types-colorama types-Pygments diff --git a/misc/requirements/requirements-pyinstaller.txt b/misc/requirements/requirements-pyinstaller.txt index 1652cd225..759c6f11f 100644 --- a/misc/requirements/requirements-pyinstaller.txt +++ b/misc/requirements/requirements-pyinstaller.txt @@ -2,4 +2,4 @@ altgraph==0.17.3 pyinstaller==5.13.0 -pyinstaller-hooks-contrib==2023.3 +pyinstaller-hooks-contrib==2023.5 diff --git a/misc/requirements/requirements-pylint.txt b/misc/requirements/requirements-pylint.txt index fd5e29978..752ce216c 100644 --- a/misc/requirements/requirements-pylint.txt +++ b/misc/requirements/requirements-pylint.txt @@ -1,9 +1,9 @@ # This file is automatically generated by scripts/dev/recompile_requirements.py -astroid==2.15.5 +astroid==2.15.6 certifi==2023.5.7 cffi==1.15.1 -charset-normalizer==3.1.0 +charset-normalizer==3.2.0 cryptography==41.0.1 dill==0.3.6 github3.py==4.0.1 @@ -12,7 +12,7 @@ isort==5.12.0 lazy-object-proxy==1.9.0 mccabe==0.7.0 pefile==2023.2.7 -platformdirs==3.8.0 +platformdirs==3.8.1 pycparser==2.21 PyJWT==2.7.0 pylint==2.17.4 @@ -20,7 +20,9 @@ python-dateutil==2.8.2 ./scripts/dev/pylint_checkers requests==2.31.0 six==1.16.0 +tomli==2.0.1 tomlkit==0.11.8 +typing_extensions==4.7.1 uritemplate==4.1.1 # urllib3==2.0.3 wrapt==1.15.0 diff --git a/misc/requirements/requirements-pyroma.txt b/misc/requirements/requirements-pyroma.txt index e0d7fe585..a06fab316 100644 --- a/misc/requirements/requirements-pyroma.txt +++ b/misc/requirements/requirements-pyroma.txt @@ -2,7 +2,7 @@ build==0.10.0 certifi==2023.5.7 -charset-normalizer==3.1.0 +charset-normalizer==3.2.0 docutils==0.20.1 idna==3.4 packaging==23.1 @@ -11,5 +11,5 @@ pyproject_hooks==1.0.0 pyroma==4.2 requests==2.31.0 tomli==2.0.1 -trove-classifiers==2023.5.24 +trove-classifiers==2023.7.6 urllib3==2.0.3 diff --git a/misc/requirements/requirements-sphinx.txt b/misc/requirements/requirements-sphinx.txt index e92e41b8c..c04ee67c5 100644 --- a/misc/requirements/requirements-sphinx.txt +++ b/misc/requirements/requirements-sphinx.txt @@ -3,11 +3,11 @@ alabaster==0.7.13 Babel==2.12.1 certifi==2023.5.7 -charset-normalizer==3.1.0 +charset-normalizer==3.2.0 docutils==0.20.1 idna==3.4 imagesize==1.4.1 -importlib-metadata==6.7.0 +importlib-metadata==6.8.0 Jinja2==3.1.2 MarkupSafe==2.1.3 packaging==23.1 @@ -23,4 +23,4 @@ sphinxcontrib-jsmath==1.0.1 sphinxcontrib-qthelp==1.0.3 sphinxcontrib-serializinghtml==1.1.5 urllib3==2.0.3 -zipp==3.15.0 +zipp==3.16.0 diff --git a/misc/requirements/requirements-tests.txt b/misc/requirements/requirements-tests.txt index abc44017a..e50492973 100644 --- a/misc/requirements/requirements-tests.txt +++ b/misc/requirements/requirements-tests.txt @@ -4,16 +4,18 @@ attrs==23.1.0 beautifulsoup4==4.12.2 blinker==1.6.2 certifi==2023.5.7 -charset-normalizer==3.1.0 +charset-normalizer==3.2.0 cheroot==10.0.0 -click==8.1.3 +click==8.1.4 coverage==7.2.7 -execnet==1.9.0 +exceptiongroup==1.1.2 +execnet==2.0.2 filelock==3.12.2 Flask==2.3.2 hunter==3.6.1 -hypothesis==6.79.3 +hypothesis==6.80.1 idna==3.4 +importlib-metadata==6.8.0 iniconfig==2.0.0 itsdangerous==2.1.2 jaraco.functools==3.8.0 @@ -24,7 +26,7 @@ manhole==1.8.0 more-itertools==9.1.0 packaging==23.1 parse==1.19.1 -parse-type==0.6.0 +parse-type==0.6.2 pluggy==1.2.0 py-cpuinfo==9.0.0 Pygments==2.15.1 @@ -36,7 +38,7 @@ pytest-instafail==0.5.0 pytest-mock==3.11.1 pytest-qt==4.2.0 pytest-repeat==0.9.1 -pytest-rerunfailures==11.1.2 +pytest-rerunfailures==12.0 pytest-xdist==3.3.1 pytest-xvfb==3.0.0 PyVirtualDisplay==3.0 @@ -47,7 +49,9 @@ sortedcontainers==2.4.0 soupsieve==2.4.1 tldextract==3.4.4 toml==0.10.2 -typing_extensions==4.6.3 +tomli==2.0.1 +typing_extensions==4.7.1 urllib3==2.0.3 vulture==2.7 Werkzeug==2.3.6 +zipp==3.16.0 diff --git a/misc/requirements/requirements-tox.txt b/misc/requirements/requirements-tox.txt index e68e79d46..2b83eed61 100644 --- a/misc/requirements/requirements-tox.txt +++ b/misc/requirements/requirements-tox.txt @@ -7,11 +7,11 @@ distlib==0.3.6 filelock==3.12.2 packaging==23.1 pip==23.1.2 -platformdirs==3.8.0 +platformdirs==3.8.1 pluggy==1.2.0 -pyproject-api==1.5.2 +pyproject-api==1.5.3 setuptools==68.0.0 tomli==2.0.1 -tox==4.6.3 +tox==4.6.4 virtualenv==20.23.1 wheel==0.40.0 diff --git a/qutebrowser/browser/history.py b/qutebrowser/browser/history.py index c0b23040c..a83621ae0 100644 --- a/qutebrowser/browser/history.py +++ b/qutebrowser/browser/history.py @@ -23,8 +23,9 @@ import contextlib import pathlib from typing import cast, Mapping, MutableSequence, Optional +from qutebrowser.qt import machinery from qutebrowser.qt.core import pyqtSlot, QUrl, QObject, pyqtSignal -from qutebrowser.qt.widgets import QProgressDialog, QApplication +from qutebrowser.qt.widgets import QProgressDialog, QApplication, QPushButton from qutebrowser.config import config from qutebrowser.api import cmdutils @@ -54,7 +55,13 @@ class HistoryProgress: self._progress.setMaximum(0) # unknown self._progress.setMinimumDuration(0) self._progress.setLabelText(text) - self._progress.setCancelButton(None) + + no_button = None + if machinery.IS_QT6: + # FIXME:mypy PyQt6 stubs issue + no_button = cast(QPushButton, None) + + self._progress.setCancelButton(no_button) self._progress.setAutoClose(False) self._progress.show() QApplication.processEvents() diff --git a/qutebrowser/browser/network/pac.py b/qutebrowser/browser/network/pac.py index c66b6bc03..fcca5d45d 100644 --- a/qutebrowser/browser/network/pac.py +++ b/qutebrowser/browser/network/pac.py @@ -65,7 +65,8 @@ def _js_slot(*args): return self._error_con.callAsConstructor([e]) # pylint: enable=protected-access - deco = pyqtSlot(*args, result=QJSValue) + # FIXME:mypy PyQt6 stubs issue, passing type should work too + deco = pyqtSlot(*args, result="QJSValue") return deco(new_method) return _decorator diff --git a/qutebrowser/browser/webengine/interceptor.py b/qutebrowser/browser/webengine/interceptor.py index 75acb3252..f56db3a65 100644 --- a/qutebrowser/browser/webengine/interceptor.py +++ b/qutebrowser/browser/webengine/interceptor.py @@ -33,9 +33,8 @@ class WebEngineRequest(interceptors.Request): """QtWebEngine-specific request interceptor functionality.""" _WHITELISTED_REQUEST_METHODS = { - # FIXME:mypy PyQt6-stubs issue? - QByteArray(b'GET'), # type: ignore[call-overload,unused-ignore] - QByteArray(b'HEAD'), # type: ignore[call-overload,unused-ignore] + QByteArray(b'GET'), + QByteArray(b'HEAD'), } def __init__(self, *args, webengine_info, **kwargs): diff --git a/qutebrowser/browser/webengine/notification.py b/qutebrowser/browser/webengine/notification.py index d140a8c61..4d08e914e 100644 --- a/qutebrowser/browser/webengine/notification.py +++ b/qutebrowser/browser/webengine/notification.py @@ -1109,8 +1109,7 @@ class DBusNotificationAdapter(AbstractNotificationAdapter): return None bits = qimage.constBits().asstring(size) - # FIXME:mypy PyQt6-stubs issue - image_data.add(QByteArray(bits)) # type: ignore[call-overload,unused-ignore] + image_data.add(QByteArray(bits)) image_data.endStructure() return image_data diff --git a/qutebrowser/browser/webengine/webenginequtescheme.py b/qutebrowser/browser/webengine/webenginequtescheme.py index 4a09c81fb..010b00975 100644 --- a/qutebrowser/browser/webengine/webenginequtescheme.py +++ b/qutebrowser/browser/webengine/webenginequtescheme.py @@ -25,8 +25,7 @@ from qutebrowser.qt.webenginecore import (QWebEngineUrlSchemeHandler, from qutebrowser.browser import qutescheme from qutebrowser.utils import log, qtutils -# FIXME:mypy PyQt6-stubs issue? -_QUTE = QByteArray(b'qute') # type: ignore[call-overload,unused-ignore] +_QUTE = QByteArray(b'qute') class QuteSchemeHandler(QWebEngineUrlSchemeHandler): diff --git a/qutebrowser/completion/completiondelegate.py b/qutebrowser/completion/completiondelegate.py index e497e1204..8c77a2036 100644 --- a/qutebrowser/completion/completiondelegate.py +++ b/qutebrowser/completion/completiondelegate.py @@ -299,7 +299,8 @@ class CompletionItemDelegate(QStyledItemDelegate): size = self._style.sizeFromContents(QStyle.ContentsType.CT_ItemViewItem, self._opt, docsize, self._opt.widget) qtutils.ensure_valid(size) - return size + QSize(10, 3) + # FIXME:mypy https://www.riverbankcomputing.com/pipermail/pyqt/2023-July/045400.html + return size + QSize(10, 3) # type: ignore[call-arg,unused-ignore] def paint(self, painter, option, index): """Override the QStyledItemDelegate paint function. diff --git a/qutebrowser/config/configdata.yml b/qutebrowser/config/configdata.yml index 8a255d04c..0b9d669dc 100644 --- a/qutebrowser/config/configdata.yml +++ b/qutebrowser/config/configdata.yml @@ -1741,6 +1741,7 @@ hints.selectors: - '[role="menuitemcheckbox"]' - '[role="menuitemradio"]' - '[role="treeitem"]' + - '[aria-haspopup]' - '[ng-click]' - '[ngClick]' - '[data-ng-click]' diff --git a/qutebrowser/keyinput/eventfilter.py b/qutebrowser/keyinput/eventfilter.py index 007be6d15..3f8d2779f 100644 --- a/qutebrowser/keyinput/eventfilter.py +++ b/qutebrowser/keyinput/eventfilter.py @@ -19,7 +19,6 @@ from typing import cast -from qutebrowser.qt import machinery from qutebrowser.qt.core import pyqtSlot, QObject, QEvent from qutebrowser.qt.gui import QKeyEvent, QWindow @@ -87,8 +86,6 @@ class EventFilter(QObject): True if the event should be filtered, False if it's passed through. """ ev_type = event.type() - if machinery.IS_QT6: - ev_type = cast(QEvent.Type, ev_type) if self._log_qt_events: try: diff --git a/qutebrowser/keyinput/modeman.py b/qutebrowser/keyinput/modeman.py index fe3650a2c..897318b66 100644 --- a/qutebrowser/keyinput/modeman.py +++ b/qutebrowser/keyinput/modeman.py @@ -474,11 +474,7 @@ class ModeManager(QObject): QEvent.Type.ShortcutOverride: functools.partial(self._handle_keypress, dry_run=True), } - ev_type = event.type() - if machinery.IS_QT6: - ev_type = cast(QEvent.Type, ev_type) - - handler = handlers[ev_type] + handler = handlers[event.type()] return handler(cast(QKeyEvent, event)) @cmdutils.register(instance='mode-manager', scope='window') diff --git a/qutebrowser/mainwindow/statusbar/command.py b/qutebrowser/mainwindow/statusbar/command.py index 4332316a3..b9c78d623 100644 --- a/qutebrowser/mainwindow/statusbar/command.py +++ b/qutebrowser/mainwindow/statusbar/command.py @@ -259,6 +259,9 @@ class Command(misc.CommandLineEdit): else: raise utils.Unreachable("setText got called with invalid text " "'{}'!".format(text)) + # FIXME:mypy PyQt6 stubs issue + if machinery.IS_QT6: + text = cast(str, text) super().setText(text) def keyPressEvent(self, e: QKeyEvent) -> None: diff --git a/qutebrowser/misc/httpclient.py b/qutebrowser/misc/httpclient.py index 1dddddba7..2bb152b03 100644 --- a/qutebrowser/misc/httpclient.py +++ b/qutebrowser/misc/httpclient.py @@ -78,9 +78,7 @@ class HTTPClient(QObject): request = HTTPRequest(url) request.setHeader(QNetworkRequest.KnownHeaders.ContentTypeHeader, 'application/x-www-form-urlencoded;charset=utf-8') - # FIXME:mypy PyQt6-stubs issue - reply = self._nam.post( # type: ignore[call-overload,unused-ignore] - request, encoded_data) + reply = self._nam.post(request, encoded_data) self._handle_reply(reply) def get(self, url): diff --git a/qutebrowser/qt/_core_pyqtproperty.py b/qutebrowser/qt/_core_pyqtproperty.py index ec57d4d1c..8ae62264f 100644 --- a/qutebrowser/qt/_core_pyqtproperty.py +++ b/qutebrowser/qt/_core_pyqtproperty.py @@ -1,16 +1,18 @@ """WORKAROUND for missing pyqtProperty typing, ported from PyQt5-stubs: FIXME:mypy PyQt6-stubs issue -https://github.com/python-qt-tools/PyQt5-stubs/blob/5.15.6.0/PyQt5-stubs/QtCore.pyi#L70-L111 +https://github.com/python-qt-tools/PyQt5-stubs/blob/5.15.6.0/PyQt5-stubs/QtCore.pyi#L68-L111 """ # flake8: noqa # pylint: disable=invalid-name,missing-class-docstring,too-many-arguments,redefined-builtin,unused-argument,import-error import typing -from PyQt6.QtCore import QObjectT, pyqtSignal +from PyQt6.QtCore import QObject, pyqtSignal if typing.TYPE_CHECKING: + QObjectT = typing.TypeVar("QObjectT", bound=QObject) + TPropertyTypeVal = typing.TypeVar("TPropertyTypeVal") TPropGetter = typing.TypeVar( diff --git a/qutebrowser/utils/utils.py b/qutebrowser/utils/utils.py index a81952b7d..6b450aa29 100644 --- a/qutebrowser/utils/utils.py +++ b/qutebrowser/utils/utils.py @@ -128,17 +128,20 @@ class VersionNumber: return NotImplemented return self._ver != other._ver + # FIXME:mypy type ignores below needed for PyQt5-stubs: + # Unsupported left operand type for ... ("QVersionNumber") + def __ge__(self, other: 'VersionNumber') -> bool: - return self._ver >= other._ver # type: ignore[operator] + return self._ver >= other._ver # type: ignore[operator,unused-ignore] def __gt__(self, other: 'VersionNumber') -> bool: - return self._ver > other._ver # type: ignore[operator] + return self._ver > other._ver # type: ignore[operator,unused-ignore] def __le__(self, other: 'VersionNumber') -> bool: - return self._ver <= other._ver # type: ignore[operator] + return self._ver <= other._ver # type: ignore[operator,unused-ignore] def __lt__(self, other: 'VersionNumber') -> bool: - return self._ver < other._ver # type: ignore[operator] + return self._ver < other._ver # type: ignore[operator,unused-ignore] class Unreachable(Exception): diff --git a/requirements.txt b/requirements.txt index b0c1444f8..963bb43ce 100644 --- a/requirements.txt +++ b/requirements.txt @@ -2,11 +2,12 @@ adblock==0.6.0 colorama==0.4.6 -importlib-resources==5.12.0 ; python_version=="3.8.*" +importlib-resources==6.0.0 ; python_version=="3.8.*" Jinja2==3.1.2 MarkupSafe==2.1.3 Pygments==2.15.1 PyYAML==6.0 +zipp==3.16.0 # Unpinned due to recompile_requirements.py limitations pyobjc-core ; sys_platform=="darwin" pyobjc-framework-Cocoa ; sys_platform=="darwin" diff --git a/scripts/dev/changelog_urls.json b/scripts/dev/changelog_urls.json index baf9e2583..89d3b332a 100644 --- a/scripts/dev/changelog_urls.json +++ b/scripts/dev/changelog_urls.json @@ -104,7 +104,6 @@ "PyQt-builder": "https://www.riverbankcomputing.com/news", "PyQt5-sip": "https://www.riverbankcomputing.com/news", "PyQt5-stubs": "https://github.com/python-qt-tools/PyQt5-stubs/blob/master/CHANGELOG.md", - "PyQt6-stubs": "https://github.com/python-qt-tools/PyQt6-stubs/commits/main", "sip": "https://www.riverbankcomputing.com/news", "PyQt6": "https://www.riverbankcomputing.com/news", "PyQt6-Qt6": "https://www.riverbankcomputing.com/news", @@ -138,8 +137,8 @@ "pyroma": "https://github.com/regebro/pyroma/blob/master/CHANGES.txt", "adblock": "https://github.com/ArniDagur/python-adblock/blob/master/CHANGELOG.md", "importlib-resources": "https://importlib-resources.readthedocs.io/en/latest/history.html", - "importlib-metadata": "https://github.com/python/importlib_metadata/blob/main/CHANGES.rst", - "zipp": "https://github.com/jaraco/zipp/blob/main/CHANGES.rst", + "importlib-metadata": "https://github.com/python/importlib_metadata/blob/main/NEWS.rst", + "zipp": "https://github.com/jaraco/zipp/blob/main/NEWS.rst", "pip": "https://pip.pypa.io/en/stable/news/", "wheel": "https://wheel.readthedocs.io/en/stable/news.html", "setuptools": "https://setuptools.readthedocs.io/en/latest/history.html", @@ -148,7 +147,7 @@ "bleach": "https://github.com/mozilla/bleach/blob/main/CHANGES", "jeepney": "https://gitlab.com/takluyver/jeepney/-/blob/master/docs/release-notes.rst", "keyring": "https://github.com/jaraco/keyring/blob/main/NEWS.rst", - "jaraco.classes": "https://github.com/jaraco/jaraco.classes/blob/main/CHANGES.rst", + "jaraco.classes": "https://github.com/jaraco/jaraco.classes/blob/main/NEWS.rst", "pkginfo": "https://bazaar.launchpad.net/~tseaver/pkginfo/trunk/view/head:/CHANGES.txt", "readme-renderer": "https://github.com/pypa/readme_renderer/blob/main/CHANGES.rst", "requests-toolbelt": "https://github.com/requests/toolbelt/blob/master/HISTORY.rst", @@ -165,5 +164,6 @@ "pyproject_hooks": "https://pyproject-hooks.readthedocs.io/en/latest/changelog.html", "markdown-it-py": "https://github.com/executablebooks/markdown-it-py/blob/master/CHANGELOG.md", "mdurl": "https://github.com/executablebooks/mdurl/commits/master", - "blinker": "https://blinker.readthedocs.io/en/stable/#changes" + "blinker": "https://blinker.readthedocs.io/en/stable/#changes", + "exceptiongroup": "https://github.com/agronholm/exceptiongroup/blob/main/CHANGES.rst" } diff --git a/scripts/dev/ci/docker/Dockerfile.j2 b/scripts/dev/ci/docker/Dockerfile.j2 index e9a0facd7..3a1adbdef 100644 --- a/scripts/dev/ci/docker/Dockerfile.j2 +++ b/scripts/dev/ci/docker/Dockerfile.j2 @@ -38,7 +38,10 @@ RUN pacman -Su --noconfirm \ RUN pacman -U --noconfirm \ https://archive.archlinux.org/packages/q/qt5-webkit/qt5-webkit-5.212.0alpha4-18-x86_64.pkg.tar.zst \ https://archive.archlinux.org/packages/p/python-pyqt5/python-pyqt5-5.15.7-2-x86_64.pkg.tar.zst \ - https://archive.archlinux.org/packages/p/python/python-3.10.10-1-x86_64.pkg.tar.zst + https://archive.archlinux.org/packages/p/python/python-3.10.10-1-x86_64.pkg.tar.zst \ + https://archive.archlinux.org/packages/i/icu/icu-72.1-2-x86_64.pkg.tar.zst \ + https://archive.archlinux.org/packages/l/libxml2/libxml2-2.10.4-4-x86_64.pkg.tar.zst \ + https://archive.archlinux.org/packages/q/qt5-base/qt5-base-5.15.10%2Bkde%2Br129-3-x86_64.pkg.tar.zst RUN python3 -m ensurepip RUN python3 -m pip install tox pyqt5-sip {% endif %} @@ -96,7 +96,9 @@ basepython = {env:PYTHON:python3} deps = -r{toxinidir}/requirements.txt -r{toxinidir}/misc/requirements/requirements-vulture.txt -setenv = PYTHONPATH={toxinidir} +setenv = + {[testenv]setenv} + {[testenv:vulture]setenv} commands = {envpython} scripts/link_pyqt.py --tox {envdir} {[testenv:vulture]commands} @@ -223,6 +225,7 @@ deps = -r{toxinidir}/misc/requirements/requirements-tests.txt -r{toxinidir}/misc/requirements/requirements-mypy.txt pyqt6: -r{toxinidir}/misc/requirements/requirements-pyqt-6.txt +commands_pre = pip install --index-url https://www.riverbankcomputing.com/pypi/simple/ --pre --upgrade PyQt6 commands = {envpython} -m mypy {env:QUTE_CONSTANTS_ARGS} qutebrowser {posargs} |