summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFlorian Bruhin <me@the-compiler.org>2021-08-26 16:44:25 +0200
committerFlorian Bruhin <me@the-compiler.org>2021-08-26 16:44:25 +0200
commitb13f2eb4485b03cf237ab699da88620ba88e7b4c (patch)
tree8a395857a32dcb6781a0c986610da0a889e559d2
parent2d9e9241265c526ebc97613af8a5063160daaee8 (diff)
downloadqutebrowser-b13f2eb4485b03cf237ab699da88620ba88e7b4c.tar.gz
qutebrowser-b13f2eb4485b03cf237ab699da88620ba88e7b4c.zip
Blanket PyQt5 -> PyQt6
-rw-r--r--.pylintrc4
-rw-r--r--README.asciidoc4
-rw-r--r--doc/changelog.asciidoc18
-rw-r--r--doc/contributing.asciidoc2
-rw-r--r--doc/qutebrowser.1.asciidoc2
-rwxr-xr-xmisc/nsis/qutebrowser.nsi2
-rw-r--r--misc/org.qutebrowser.qutebrowser.appdata.xml2
-rw-r--r--misc/org.qutebrowser.qutebrowser.desktop6
-rw-r--r--misc/qutebrowser.spec4
-rw-r--r--misc/requirements/requirements-mypy.txt2
-rw-r--r--misc/requirements/requirements-mypy.txt-raw2
-rw-r--r--misc/requirements/requirements-pyqt-5.12.txt4
-rw-r--r--misc/requirements/requirements-pyqt-5.12.txt-raw4
-rw-r--r--misc/requirements/requirements-pyqt-5.13.txt4
-rw-r--r--misc/requirements/requirements-pyqt-5.13.txt-raw4
-rw-r--r--misc/requirements/requirements-pyqt-5.14.txt4
-rw-r--r--misc/requirements/requirements-pyqt-5.14.txt-raw4
-rw-r--r--misc/requirements/requirements-pyqt-5.15.0.txt4
-rw-r--r--misc/requirements/requirements-pyqt-5.15.0.txt-raw4
-rw-r--r--misc/requirements/requirements-pyqt-5.15.txt6
-rw-r--r--misc/requirements/requirements-pyqt-5.15.txt-raw4
-rw-r--r--misc/requirements/requirements-pyqt-pyinstaller.txt6
-rw-r--r--misc/requirements/requirements-pyqt-pyinstaller.txt-raw2
-rw-r--r--misc/requirements/requirements-pyqt.txt6
-rw-r--r--misc/requirements/requirements-pyqt.txt-raw2
-rw-r--r--misc/requirements/requirements-qutebrowser.txt-raw2
-rwxr-xr-xmisc/userscripts/add-nextcloud-bookmarks2
-rwxr-xr-xmisc/userscripts/add-nextcloud-cookbook2
-rwxr-xr-xmisc/userscripts/qute-keepass6
-rw-r--r--qutebrowser/__init__.py4
-rw-r--r--qutebrowser/api/config.py2
-rw-r--r--qutebrowser/api/downloads.py2
-rw-r--r--qutebrowser/app.py6
-rw-r--r--qutebrowser/browser/browsertab.py16
-rw-r--r--qutebrowser/browser/commands.py4
-rw-r--r--qutebrowser/browser/downloads.py2
-rw-r--r--qutebrowser/browser/downloadview.py4
-rw-r--r--qutebrowser/browser/eventfilter.py2
-rw-r--r--qutebrowser/browser/greasemonkey.py2
-rw-r--r--qutebrowser/browser/hints.py4
-rw-r--r--qutebrowser/browser/history.py4
-rw-r--r--qutebrowser/browser/inspector.py6
-rw-r--r--qutebrowser/browser/navigate.py2
-rw-r--r--qutebrowser/browser/network/pac.py6
-rw-r--r--qutebrowser/browser/network/proxy.py4
-rw-r--r--qutebrowser/browser/pdfjs.py2
-rw-r--r--qutebrowser/browser/qtnetworkdownloads.py6
-rw-r--r--qutebrowser/browser/qutescheme.py2
-rw-r--r--qutebrowser/browser/shared.py2
-rw-r--r--qutebrowser/browser/signalfilter.py2
-rw-r--r--qutebrowser/browser/urlmarks.py2
-rw-r--r--qutebrowser/browser/webelem.py4
-rw-r--r--qutebrowser/browser/webengine/certificateerror.py4
-rw-r--r--qutebrowser/browser/webengine/interceptor.py4
-rw-r--r--qutebrowser/browser/webengine/notification.py14
-rw-r--r--qutebrowser/browser/webengine/tabhistory.py2
-rw-r--r--qutebrowser/browser/webengine/webenginedownloads.py4
-rw-r--r--qutebrowser/browser/webengine/webengineelem.py6
-rw-r--r--qutebrowser/browser/webengine/webengineinspector.py6
-rw-r--r--qutebrowser/browser/webengine/webenginequtescheme.py4
-rw-r--r--qutebrowser/browser/webengine/webenginesettings.py6
-rw-r--r--qutebrowser/browser/webengine/webenginetab.py12
-rw-r--r--qutebrowser/browser/webengine/webview.py6
-rw-r--r--qutebrowser/browser/webkit/cache.py2
-rw-r--r--qutebrowser/browser/webkit/certificateerror.py2
-rw-r--r--qutebrowser/browser/webkit/cookies.py4
-rw-r--r--qutebrowser/browser/webkit/http.py2
-rw-r--r--qutebrowser/browser/webkit/mhtml.py2
-rw-r--r--qutebrowser/browser/webkit/network/networkmanager.py4
-rw-r--r--qutebrowser/browser/webkit/network/networkreply.py4
-rw-r--r--qutebrowser/browser/webkit/network/webkitqutescheme.py4
-rw-r--r--qutebrowser/browser/webkit/tabhistory.py2
-rw-r--r--qutebrowser/browser/webkit/webkitelem.py6
-rw-r--r--qutebrowser/browser/webkit/webkithistory.py2
-rw-r--r--qutebrowser/browser/webkit/webkitinspector.py6
-rw-r--r--qutebrowser/browser/webkit/webkitsettings.py8
-rw-r--r--qutebrowser/browser/webkit/webkittab.py12
-rw-r--r--qutebrowser/browser/webkit/webpage.py12
-rw-r--r--qutebrowser/browser/webkit/webview.py6
-rw-r--r--qutebrowser/commands/argparser.py2
-rw-r--r--qutebrowser/commands/runners.py2
-rw-r--r--qutebrowser/commands/userscripts.py2
-rw-r--r--qutebrowser/completion/completer.py2
-rw-r--r--qutebrowser/completion/completiondelegate.py6
-rw-r--r--qutebrowser/completion/completionwidget.py4
-rw-r--r--qutebrowser/completion/models/completionmodel.py2
-rw-r--r--qutebrowser/completion/models/filepathcategory.py2
-rw-r--r--qutebrowser/completion/models/histcategory.py4
-rw-r--r--qutebrowser/completion/models/listcategory.py6
-rw-r--r--qutebrowser/completion/models/urlmodel.py2
-rw-r--r--qutebrowser/components/braveadblock.py2
-rw-r--r--qutebrowser/components/hostblock.py2
-rw-r--r--qutebrowser/components/misccommands.py4
-rw-r--r--qutebrowser/components/readlinecommands.py2
-rw-r--r--qutebrowser/components/utils/blockutils.py2
-rw-r--r--qutebrowser/config/config.py2
-rw-r--r--qutebrowser/config/configcommands.py2
-rw-r--r--qutebrowser/config/configfiles.py4
-rw-r--r--qutebrowser/config/configinit.py2
-rw-r--r--qutebrowser/config/configtypes.py8
-rw-r--r--qutebrowser/config/configutils.py6
-rw-r--r--qutebrowser/config/qtargs.py2
-rw-r--r--qutebrowser/config/stylesheet.py2
-rw-r--r--qutebrowser/config/websettings.py4
-rw-r--r--qutebrowser/extensions/interceptors.py2
-rw-r--r--qutebrowser/extensions/loader.py2
-rw-r--r--qutebrowser/keyinput/basekeyparser.py4
-rw-r--r--qutebrowser/keyinput/eventfilter.py4
-rw-r--r--qutebrowser/keyinput/keyutils.py4
-rw-r--r--qutebrowser/keyinput/modeman.py4
-rw-r--r--qutebrowser/keyinput/modeparsers.py4
-rw-r--r--qutebrowser/mainwindow/mainwindow.py6
-rw-r--r--qutebrowser/mainwindow/messageview.py4
-rw-r--r--qutebrowser/mainwindow/prompt.py4
-rw-r--r--qutebrowser/mainwindow/statusbar/bar.py4
-rw-r--r--qutebrowser/mainwindow/statusbar/command.py6
-rw-r--r--qutebrowser/mainwindow/statusbar/keystring.py2
-rw-r--r--qutebrowser/mainwindow/statusbar/percentage.py2
-rw-r--r--qutebrowser/mainwindow/statusbar/progress.py4
-rw-r--r--qutebrowser/mainwindow/statusbar/tabindex.py2
-rw-r--r--qutebrowser/mainwindow/statusbar/textbase.py6
-rw-r--r--qutebrowser/mainwindow/statusbar/url.py2
-rw-r--r--qutebrowser/mainwindow/tabbedbrowser.py4
-rw-r--r--qutebrowser/mainwindow/tabwidget.py6
-rw-r--r--qutebrowser/mainwindow/windowundo.py2
-rw-r--r--qutebrowser/misc/autoupdate.py2
-rw-r--r--qutebrowser/misc/backendproblem.py14
-rw-r--r--qutebrowser/misc/cmdhistory.py2
-rw-r--r--qutebrowser/misc/consolewidget.py6
-rw-r--r--qutebrowser/misc/crashdialog.py4
-rw-r--r--qutebrowser/misc/crashsignal.py4
-rw-r--r--qutebrowser/misc/earlyinit.py28
-rw-r--r--qutebrowser/misc/editor.py2
-rw-r--r--qutebrowser/misc/elf.py4
-rw-r--r--qutebrowser/misc/guiprocess.py2
-rw-r--r--qutebrowser/misc/httpclient.py4
-rw-r--r--qutebrowser/misc/ipc.py4
-rw-r--r--qutebrowser/misc/keyhintwidget.py4
-rw-r--r--qutebrowser/misc/lineparser.py2
-rw-r--r--qutebrowser/misc/miscwidgets.py6
-rw-r--r--qutebrowser/misc/msgbox.py4
-rw-r--r--qutebrowser/misc/objects.py2
-rw-r--r--qutebrowser/misc/pastebin.py2
-rw-r--r--qutebrowser/misc/quitter.py2
-rw-r--r--qutebrowser/misc/savemanager.py2
-rw-r--r--qutebrowser/misc/sessions.py2
-rw-r--r--qutebrowser/misc/sql.py4
-rw-r--r--qutebrowser/misc/throttle.py2
-rw-r--r--qutebrowser/misc/utilcmds.py4
-rw-r--r--qutebrowser/qt.py6
-rw-r--r--qutebrowser/resources.py4
-rw-r--r--qutebrowser/utils/debug.py2
-rw-r--r--qutebrowser/utils/error.py2
-rw-r--r--qutebrowser/utils/jinja.py2
-rw-r--r--qutebrowser/utils/log.py2
-rw-r--r--qutebrowser/utils/message.py2
-rw-r--r--qutebrowser/utils/objreg.py6
-rw-r--r--qutebrowser/utils/qtutils.py10
-rw-r--r--qutebrowser/utils/standarddir.py4
-rw-r--r--qutebrowser/utils/urlmatch.py2
-rw-r--r--qutebrowser/utils/urlutils.py4
-rw-r--r--qutebrowser/utils/usertypes.py4
-rw-r--r--qutebrowser/utils/utils.py6
-rw-r--r--qutebrowser/utils/version.py20
-rw-r--r--scripts/dev/build_pyqt_wheel.py4
-rwxr-xr-xscripts/dev/build_release.py2
-rw-r--r--scripts/dev/recompile_requirements.py10
-rw-r--r--scripts/dev/run_pylint_on_tests.py2
-rwxr-xr-xscripts/dev/run_vulture.py12
-rw-r--r--scripts/dev/standardpaths_tester.py2
-rw-r--r--scripts/keytester.py2
-rw-r--r--scripts/link_pyqt.py8
-rwxr-xr-xscripts/mkvenv.py16
-rw-r--r--scripts/opengl_info.py2
-rwxr-xr-xscripts/testbrowser/testbrowser_webengine.py6
-rwxr-xr-xscripts/testbrowser/testbrowser_webkit.py8
-rw-r--r--tests/conftest.py4
-rw-r--r--tests/end2end/conftest.py4
-rw-r--r--tests/end2end/features/downloads.feature2
-rw-r--r--tests/end2end/features/keyinput.feature2
-rw-r--r--tests/end2end/features/misc.feature4
-rw-r--r--tests/end2end/features/test_downloads_bdd.py2
-rw-r--r--tests/end2end/features/test_editor_bdd.py2
-rw-r--r--tests/end2end/fixtures/notificationserver.py6
-rw-r--r--tests/end2end/fixtures/quteprocess.py16
-rw-r--r--tests/end2end/fixtures/test_testprocess.py2
-rw-r--r--tests/end2end/fixtures/testprocess.py4
-rw-r--r--tests/end2end/fixtures/webserver.py2
-rw-r--r--tests/end2end/test_dirbrowser.py2
-rw-r--r--tests/end2end/test_invocations.py6
-rw-r--r--tests/helpers/fixtures.py18
-rw-r--r--tests/helpers/messagemock.py2
-rw-r--r--tests/helpers/stubs.py8
-rw-r--r--tests/helpers/testutils.py6
-rw-r--r--tests/unit/browser/test_caret.py2
-rw-r--r--tests/unit/browser/test_downloadview.py2
-rw-r--r--tests/unit/browser/test_hints.py2
-rw-r--r--tests/unit/browser/test_history.py10
-rw-r--r--tests/unit/browser/test_inspector.py2
-rw-r--r--tests/unit/browser/test_navigate.py2
-rw-r--r--tests/unit/browser/test_pdfjs.py2
-rw-r--r--tests/unit/browser/test_qutescheme.py2
-rw-r--r--tests/unit/browser/test_signalfilter.py2
-rw-r--r--tests/unit/browser/test_urlmarks.py2
-rw-r--r--tests/unit/browser/webengine/test_webengine_cookies.py8
-rw-r--r--tests/unit/browser/webengine/test_webenginedownloads.py4
-rw-r--r--tests/unit/browser/webengine/test_webengineinterceptor.py4
-rw-r--r--tests/unit/browser/webengine/test_webenginesettings.py2
-rw-r--r--tests/unit/browser/webengine/test_webenginetab.py2
-rw-r--r--tests/unit/browser/webkit/http/test_http.py2
-rw-r--r--tests/unit/browser/webkit/network/test_filescheme.py4
-rw-r--r--tests/unit/browser/webkit/network/test_networkreply.py4
-rw-r--r--tests/unit/browser/webkit/network/test_pac.py4
-rw-r--r--tests/unit/browser/webkit/test_cache.py4
-rw-r--r--tests/unit/browser/webkit/test_certificateerror.py2
-rw-r--r--tests/unit/browser/webkit/test_cookies.py4
-rw-r--r--tests/unit/browser/webkit/test_tabhistory.py6
-rw-r--r--tests/unit/browser/webkit/test_webkitelem.py4
-rw-r--r--tests/unit/browser/webkit/test_webkitsettings.py2
-rw-r--r--tests/unit/commands/test_argparser.py2
-rw-r--r--tests/unit/commands/test_userscripts.py2
-rw-r--r--tests/unit/completion/test_completer.py4
-rw-r--r--tests/unit/completion/test_completiondelegate.py6
-rw-r--r--tests/unit/completion/test_completionmodel.py2
-rw-r--r--tests/unit/completion/test_completionwidget.py2
-rw-r--r--tests/unit/completion/test_models.py6
-rw-r--r--tests/unit/components/test_blockutils.py2
-rw-r--r--tests/unit/components/test_braveadblock.py2
-rw-r--r--tests/unit/components/test_hostblock.py2
-rw-r--r--tests/unit/components/test_readlinecommands.py2
-rw-r--r--tests/unit/config/test_config.py4
-rw-r--r--tests/unit/config/test_configcommands.py2
-rw-r--r--tests/unit/config/test_configfiles.py6
-rw-r--r--tests/unit/config/test_configinit.py2
-rw-r--r--tests/unit/config/test_configtypes.py6
-rw-r--r--tests/unit/config/test_configutils.py4
-rw-r--r--tests/unit/config/test_qtargs.py2
-rw-r--r--tests/unit/config/test_qtargs_locale_workaround.py4
-rw-r--r--tests/unit/config/test_stylesheet.py2
-rw-r--r--tests/unit/javascript/conftest.py2
-rw-r--r--tests/unit/javascript/position_caret/test_position_caret.py4
-rw-r--r--tests/unit/javascript/stylesheet/test_stylesheet_js.py2
-rw-r--r--tests/unit/javascript/test_greasemonkey.py2
-rw-r--r--tests/unit/javascript/test_js_execution.py6
-rw-r--r--tests/unit/javascript/test_js_quirks.py2
-rw-r--r--tests/unit/keyinput/key_data.py2
-rw-r--r--tests/unit/keyinput/test_basekeyparser.py2
-rw-r--r--tests/unit/keyinput/test_bindingtrie.py2
-rw-r--r--tests/unit/keyinput/test_keyutils.py6
-rw-r--r--tests/unit/keyinput/test_modeman.py2
-rw-r--r--tests/unit/keyinput/test_modeparsers.py4
-rw-r--r--tests/unit/mainwindow/statusbar/test_textbase.py2
-rw-r--r--tests/unit/mainwindow/statusbar/test_url.py2
-rw-r--r--tests/unit/mainwindow/test_messageview.py2
-rw-r--r--tests/unit/mainwindow/test_prompt.py2
-rw-r--r--tests/unit/mainwindow/test_tabwidget.py2
-rw-r--r--tests/unit/misc/test_autoupdate.py2
-rw-r--r--tests/unit/misc/test_editor.py2
-rw-r--r--tests/unit/misc/test_elf.py2
-rw-r--r--tests/unit/misc/test_guiprocess.py2
-rw-r--r--tests/unit/misc/test_ipc.py6
-rw-r--r--tests/unit/misc/test_miscwidgets.py4
-rw-r--r--tests/unit/misc/test_msgbox.py4
-rw-r--r--tests/unit/misc/test_pastebin.py2
-rw-r--r--tests/unit/misc/test_sessions.py4
-rw-r--r--tests/unit/misc/test_sql.py2
-rw-r--r--tests/unit/misc/test_throttle.py2
-rw-r--r--tests/unit/misc/test_utilcmds.py2
-rw-r--r--tests/unit/test_app.py2
-rw-r--r--tests/unit/utils/test_debug.py10
-rw-r--r--tests/unit/utils/test_error.py4
-rw-r--r--tests/unit/utils/test_jinja.py2
-rw-r--r--tests/unit/utils/test_log.py2
-rw-r--r--tests/unit/utils/test_qtutils.py4
-rw-r--r--tests/unit/utils/test_standarddir.py4
-rw-r--r--tests/unit/utils/test_urlmatch.py2
-rw-r--r--tests/unit/utils/test_urlutils.py4
-rw-r--r--tests/unit/utils/test_utils.py6
-rw-r--r--tests/unit/utils/test_version.py10
-rw-r--r--tests/unit/utils/usertypes/test_timer.py2
-rw-r--r--tox.ini2
281 files changed, 573 insertions, 573 deletions
diff --git a/.pylintrc b/.pylintrc
index b771078f3..3eb9337b1 100644
--- a/.pylintrc
+++ b/.pylintrc
@@ -2,7 +2,7 @@
[MASTER]
ignore=resources.py
-extension-pkg-whitelist=PyQt5,sip
+extension-pkg-whitelist=PyQt6,sip
load-plugins=qute_pylint.config,
qute_pylint.modeline,
qute_pylint.openencoding,
@@ -74,7 +74,7 @@ max-args=10
valid-metaclass-classmethod-first-arg=cls
[TYPECHECK]
-ignored-modules=PyQt5,PyQt5.QtWebKit
+ignored-modules=PyQt6,PyQt6.QtWebKit
ignored-classes=DummyBox,__cause__
[IMPORTS]
diff --git a/README.asciidoc b/README.asciidoc
index 5c87df857..dc245df8b 100644
--- a/README.asciidoc
+++ b/README.asciidoc
@@ -7,7 +7,7 @@ qutebrowser
===========
// QUTE_WEB_HIDE
-image:icons/qutebrowser-64x64.png[qutebrowser logo] *A keyboard-driven, vim-like browser based on PyQt5 and Qt.*
+image:icons/qutebrowser-64x64.png[qutebrowser logo] *A keyboard-driven, vim-like browser based on PyQt6 and Qt.*
image:https://github.com/qutebrowser/qutebrowser/workflows/CI/badge.svg["Build Status", link="https://github.com/qutebrowser/qutebrowser/actions?query=workflow%3ACI"]
image:https://codecov.io/github/qutebrowser/qutebrowser/coverage.svg?branch=master["coverage badge",link="https://codecov.io/github/qutebrowser/qutebrowser?branch=master"]
@@ -16,7 +16,7 @@ link:https://www.qutebrowser.org[website] | link:https://blog.qutebrowser.org[bl
// QUTE_WEB_HIDE_END
qutebrowser is a keyboard-focused browser with a minimal GUI. It's based
-on Python and PyQt5 and free software, licensed under the GPL.
+on Python and PyQt6 and free software, licensed under the GPL.
It was inspired by other browsers/addons like dwb and Vimperator/Pentadactyl.
diff --git a/doc/changelog.asciidoc b/doc/changelog.asciidoc
index 57fc9d4e8..e43a40b04 100644
--- a/doc/changelog.asciidoc
+++ b/doc/changelog.asciidoc
@@ -504,7 +504,7 @@ Fixed
missing changelog file) caused in a crash due to an inconsistent behavior in
those versions of Python. This is now handled properly by qutebrowser.
- In v2.0.0, support for importing the `sip` dependency as `sip` rather than
- `PyQt5.sip` was dropped, since upstream claims it should be used as `PyQt5.sip`
+ `PyQt6.sip` was dropped, since upstream claims it should be used as `PyQt6.sip`
ever since PyQt 5.11. However, some distributions still package sip as a global
`sip` package. Thus, support for a global `sip` package is now reintroduced.
- The changelog for v2.0.0 claimed that `hints.leave_on_load` was set to `true`
@@ -1496,7 +1496,7 @@ Fixed
- When quitting qutebrowser, components are now cleaned up differently. This
should fix certain (rare) segmentation faults and exceptions when quitting,
- especially with the new exit scheme introduced in in PyQt5 5.13.1.
+ especially with the new exit scheme introduced in in PyQt6 5.13.1.
- Added a workaround for per-domain settings (e.g. a JavaScript whitelist) not
being applied in some scenarios with Qt 5.13 and above.
- Added additional site-specific quirk for WhatsApp Web.
@@ -1784,7 +1784,7 @@ Changed
~~~~~~~
- Updated dependencies for Windows/macOS releases:
- - PyQt5 5.12.3 / PyQtWebEngine 5.12.1
+ - PyQt6 5.12.3 / PyQtWebEngine 5.12.1
- Qt 5.12.4, which includes security fixes up to Chromium 74.0.3729.157
- Python 3.7.4
- OpenSSL 1.1.1
@@ -2341,7 +2341,7 @@ Fixed
- Crash in a workaround for a Qt 5.11 bug in rare circumstances.
- Workaround for a Qt bug which preserves searches between page loads.
-- In v1.3.2 a dependency on the `PyQt5.QtQuickWidgets` module was accidentally
+- In v1.3.2 a dependency on the `PyQt6.QtQuickWidgets` module was accidentally
introduced. Since that module isn't packaged everywhere, it's been removed
again.
@@ -2465,7 +2465,7 @@ v1.2.1 (2018-03-14)
Fixed
~~~~~
-- qutebrowser now starts properly when the PyQt5 QOpenGLFunctions package wasn't
+- qutebrowser now starts properly when the PyQt6 QOpenGLFunctions package wasn't
found.
- The keybinding cheatsheet on the quickstart page is now loaded from a local
`qute://` URL again.
@@ -2869,8 +2869,8 @@ Major changes
* New dependency on the https://www.attrs.org/[attrs] project (packaged as
`python-attr` in some distributions).
* The depedency on PyOpenGL (when using QtWebEngine) got removed. Note
- that PyQt5.QtOpenGL is still a dependency.
- * PyQt5.QtOpenGL is now always required, even with QtWebKit.
+ that PyQt6.QtOpenGL is still a dependency.
+ * PyQt6.QtOpenGL is now always required, even with QtWebKit.
- The QtWebEngine backend is now used by default. Note this means that
QtWebEngine now should be a required dependency, and QtWebKit (if new enough)
should be changed to an optional dependency.
@@ -2965,8 +2965,8 @@ v0.11.0 (2017-07-04)
New dependencies
~~~~~~~~~~~~~~~~
-- New dependency on `PyQt5.QtOpenGL` if QtWebEngine is used. QtWebEngine depends
- on QtOpenGL already, but on distributions packaging split PyQt5 wrappers, the
+- New dependency on `PyQt6.QtOpenGL` if QtWebEngine is used. QtWebEngine depends
+ on QtOpenGL already, but on distributions packaging split PyQt6 wrappers, the
wrappers for QtOpenGL are now required.
- New dependency on `PyOpenGL` if QtWebEngine is used.
diff --git a/doc/contributing.asciidoc b/doc/contributing.asciidoc
index 1f87e9163..ac9e448a3 100644
--- a/doc/contributing.asciidoc
+++ b/doc/contributing.asciidoc
@@ -545,7 +545,7 @@ Setting up a Windows Development Environment
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
* Install https://www.python.org/downloads/release/python-362/[Python 3.6].
-* Install PyQt via `pip install PyQt5`.
+* Install PyQt via `pip install PyQt6`.
* Create a file at `C:\Windows\system32\python3.bat` with the following content (adjust the path as necessary):
`@C:\Python36\python %*`.
This will make the Python 3.6 interpreter available as `python3`, which is used by various development scripts.
diff --git a/doc/qutebrowser.1.asciidoc b/doc/qutebrowser.1.asciidoc
index 8db231add..931be929b 100644
--- a/doc/qutebrowser.1.asciidoc
+++ b/doc/qutebrowser.1.asciidoc
@@ -10,7 +10,7 @@
:homepage: https://www.qutebrowser.org/
== NAME
-qutebrowser - a keyboard-driven, vim-like browser based on PyQt5.
+qutebrowser - a keyboard-driven, vim-like browser based on PyQt6.
== SYNOPSIS
*qutebrowser* ['-OPTION' ['...']] [':COMMAND' ['...']] ['URL' ['...']]
diff --git a/misc/nsis/qutebrowser.nsi b/misc/nsis/qutebrowser.nsi
index 51f3b623d..f1e7e7bd9 100755
--- a/misc/nsis/qutebrowser.nsi
+++ b/misc/nsis/qutebrowser.nsi
@@ -57,7 +57,7 @@ ShowUninstDetails hide
!define URL_UPDATE "https://qutebrowser.org/doc/install.html"
!define HELP_LINK "https://qutebrowser.org/doc/help/"
!define CONTACT "mail@qutebrowser.org"
-!define COMMENTS "A keyboard-driven, vim-like browser based on PyQt5."
+!define COMMENTS "A keyboard-driven, vim-like browser based on PyQt6."
!define LANGID "1033" ; U.S. English
!define MIN_WIN_VER "8"
!define SETUP_MUTEX "${PRODUCT_NAME} Setup Mutex" ; do not change this between program versions!
diff --git a/misc/org.qutebrowser.qutebrowser.appdata.xml b/misc/org.qutebrowser.qutebrowser.appdata.xml
index 7c382cbb3..9995599a5 100644
--- a/misc/org.qutebrowser.qutebrowser.appdata.xml
+++ b/misc/org.qutebrowser.qutebrowser.appdata.xml
@@ -10,7 +10,7 @@
<p>
qutebrowser is a keyboard-focused browser with a minimal GUI.
It was inspired by other browsers/addons like dwb and Vimperator/Pentadactyl,
- and is based on Python and PyQt5.
+ and is based on Python and PyQt6.
</p>
</description>
<categories>
diff --git a/misc/org.qutebrowser.qutebrowser.desktop b/misc/org.qutebrowser.qutebrowser.desktop
index 52144b3c5..8d32b3def 100644
--- a/misc/org.qutebrowser.qutebrowser.desktop
+++ b/misc/org.qutebrowser.qutebrowser.desktop
@@ -39,9 +39,9 @@ GenericName[ta]=இணைய உலாவி
GenericName[th]=เว็บเบราว์เซอร์
GenericName[tr]=Web Tarayıcı
GenericName[uk]=Навігатор Тенет瀏覽器
-Comment=A keyboard-driven, vim-like browser based on PyQt5
-Comment[de]=Ein Tastatur-gesteuerter, vim-ähnlicher Browser basierend auf PyQt5
-Comment[it]= Un browser web vim-like utilizzabile da tastiera basato su PyQt5
+Comment=A keyboard-driven, vim-like browser based on PyQt6
+Comment[de]=Ein Tastatur-gesteuerter, vim-ähnlicher Browser basierend auf PyQt6
+Comment[it]= Un browser web vim-like utilizzabile da tastiera basato su PyQt6
Icon=qutebrowser
Type=Application
Categories=Network;WebBrowser;
diff --git a/misc/qutebrowser.spec b/misc/qutebrowser.spec
index ffb17d371..89eed788b 100644
--- a/misc/qutebrowser.spec
+++ b/misc/qutebrowser.spec
@@ -30,7 +30,7 @@ def get_data_files():
def get_hidden_imports():
- imports = ['PyQt5.QtOpenGL', 'PyQt5._QOpenGLFunctions_2_0']
+ imports = ['PyQt6.QtOpenGL', 'PyQt6._QOpenGLFunctions_2_0']
for info in loader.walk_components():
imports.append(info.name)
return imports
@@ -84,5 +84,5 @@ coll = COLLECT(exe,
app = BUNDLE(coll,
name='qutebrowser.app',
icon=icon,
- # https://github.com/pyinstaller/pyinstaller/blob/b78bfe530cdc2904f65ce098bdf2de08c9037abb/PyInstaller/hooks/hook-PyQt5.QtWebEngineWidgets.py#L24
+ # https://github.com/pyinstaller/pyinstaller/blob/b78bfe530cdc2904f65ce098bdf2de08c9037abb/PyInstaller/hooks/hook-PyQt6.QtWebEngineWidgets.py#L24
bundle_identifier='org.qt-project.Qt.QtWebEngineCore')
diff --git a/misc/requirements/requirements-mypy.txt b/misc/requirements/requirements-mypy.txt
index 1ef2a054d..a7e47b6ec 100644
--- a/misc/requirements/requirements-mypy.txt
+++ b/misc/requirements/requirements-mypy.txt
@@ -13,7 +13,7 @@ mypy==0.910
mypy-extensions==0.4.3
pluggy==0.13.1
Pygments==2.10.0
-PyQt5-stubs==5.15.2.0
+PyQt6-stubs==5.15.2.0
toml==0.10.2
types-dataclasses==0.1.7
types-PyYAML==5.4.6
diff --git a/misc/requirements/requirements-mypy.txt-raw b/misc/requirements/requirements-mypy.txt-raw
index 4baeec11f..0a70ce7df 100644
--- a/misc/requirements/requirements-mypy.txt-raw
+++ b/misc/requirements/requirements-mypy.txt-raw
@@ -2,7 +2,7 @@ mypy
lxml # For HTML reports
diff-cover
-PyQt5-stubs
+PyQt6-stubs
types-dataclasses
types-PyYAML
diff --git a/misc/requirements/requirements-pyqt-5.12.txt b/misc/requirements/requirements-pyqt-5.12.txt
index 890306127..638f2aae5 100644
--- a/misc/requirements/requirements-pyqt-5.12.txt
+++ b/misc/requirements/requirements-pyqt-5.12.txt
@@ -1,5 +1,5 @@
# This file is automatically generated by scripts/dev/recompile_requirements.py
-PyQt5==5.12.3 # rq.filter: < 5.13
-PyQt5-sip==12.9.0
+PyQt6==5.12.3 # rq.filter: < 5.13
+PyQt6-sip==12.9.0
PyQtWebEngine==5.12.1 # rq.filter: < 5.13
diff --git a/misc/requirements/requirements-pyqt-5.12.txt-raw b/misc/requirements/requirements-pyqt-5.12.txt-raw
index f127ba42f..39d400c4c 100644
--- a/misc/requirements/requirements-pyqt-5.12.txt-raw
+++ b/misc/requirements/requirements-pyqt-5.12.txt-raw
@@ -1,4 +1,4 @@
-#@ filter: PyQt5 < 5.13
+#@ filter: PyQt6 < 5.13
#@ filter: PyQtWebEngine < 5.13
-PyQt5 >= 5.12, < 5.13
+PyQt6 >= 5.12, < 5.13
PyQtWebEngine >= 5.12, < 5.13
diff --git a/misc/requirements/requirements-pyqt-5.13.txt b/misc/requirements/requirements-pyqt-5.13.txt
index 5f4da4758..f60eb9d48 100644
--- a/misc/requirements/requirements-pyqt-5.13.txt
+++ b/misc/requirements/requirements-pyqt-5.13.txt
@@ -1,5 +1,5 @@
# This file is automatically generated by scripts/dev/recompile_requirements.py
-PyQt5==5.13.2 # rq.filter: < 5.14
-PyQt5-sip==12.9.0
+PyQt6==5.13.2 # rq.filter: < 5.14
+PyQt6-sip==12.9.0
PyQtWebEngine==5.13.2 # rq.filter: < 5.14
diff --git a/misc/requirements/requirements-pyqt-5.13.txt-raw b/misc/requirements/requirements-pyqt-5.13.txt-raw
index e60db7edb..350f2a332 100644
--- a/misc/requirements/requirements-pyqt-5.13.txt-raw
+++ b/misc/requirements/requirements-pyqt-5.13.txt-raw
@@ -1,4 +1,4 @@
-#@ filter: PyQt5 < 5.14
+#@ filter: PyQt6 < 5.14
#@ filter: PyQtWebEngine < 5.14
-PyQt5 >= 5.13, < 5.14
+PyQt6 >= 5.13, < 5.14
PyQtWebEngine >= 5.13, < 5.14
diff --git a/misc/requirements/requirements-pyqt-5.14.txt b/misc/requirements/requirements-pyqt-5.14.txt
index 9ce643666..b963c8e76 100644
--- a/misc/requirements/requirements-pyqt-5.14.txt
+++ b/misc/requirements/requirements-pyqt-5.14.txt
@@ -1,5 +1,5 @@
# This file is automatically generated by scripts/dev/recompile_requirements.py
-PyQt5==5.14.2 # rq.filter: < 5.15
-PyQt5-sip==12.9.0
+PyQt6==5.14.2 # rq.filter: < 5.15
+PyQt6-sip==12.9.0
PyQtWebEngine==5.14.0 # rq.filter: < 5.15
diff --git a/misc/requirements/requirements-pyqt-5.14.txt-raw b/misc/requirements/requirements-pyqt-5.14.txt-raw
index 9dadfc846..79a389f01 100644
--- a/misc/requirements/requirements-pyqt-5.14.txt-raw
+++ b/misc/requirements/requirements-pyqt-5.14.txt-raw
@@ -1,4 +1,4 @@
-#@ filter: PyQt5 < 5.15
+#@ filter: PyQt6 < 5.15
#@ filter: PyQtWebEngine < 5.15
-PyQt5 >= 5.14, < 5.15
+PyQt6 >= 5.14, < 5.15
PyQtWebEngine >= 5.14, < 5.15
diff --git a/misc/requirements/requirements-pyqt-5.15.0.txt b/misc/requirements/requirements-pyqt-5.15.0.txt
index b111a93f3..9f9e3953f 100644
--- a/misc/requirements/requirements-pyqt-5.15.0.txt
+++ b/misc/requirements/requirements-pyqt-5.15.0.txt
@@ -1,5 +1,5 @@
# This file is automatically generated by scripts/dev/recompile_requirements.py
-PyQt5==5.15.0 # rq.filter: == 5.15.0
-PyQt5-sip==12.9.0
+PyQt6==5.15.0 # rq.filter: == 5.15.0
+PyQt6-sip==12.9.0
PyQtWebEngine==5.15.0 # rq.filter: == 5.15.0
diff --git a/misc/requirements/requirements-pyqt-5.15.0.txt-raw b/misc/requirements/requirements-pyqt-5.15.0.txt-raw
index 12d6adb7d..e498f5462 100644
--- a/misc/requirements/requirements-pyqt-5.15.0.txt-raw
+++ b/misc/requirements/requirements-pyqt-5.15.0.txt-raw
@@ -1,4 +1,4 @@
-#@ filter: PyQt5 == 5.15.0
+#@ filter: PyQt6 == 5.15.0
#@ filter: PyQtWebEngine == 5.15.0
-PyQt5 == 5.15.0
+PyQt6 == 5.15.0
PyQtWebEngine == 5.15.0
diff --git a/misc/requirements/requirements-pyqt-5.15.txt b/misc/requirements/requirements-pyqt-5.15.txt
index 8b7a53c44..6f05d2d0e 100644
--- a/misc/requirements/requirements-pyqt-5.15.txt
+++ b/misc/requirements/requirements-pyqt-5.15.txt
@@ -1,7 +1,7 @@
# This file is automatically generated by scripts/dev/recompile_requirements.py
-PyQt5==5.15.4 # rq.filter: < 5.16
-PyQt5-Qt5==5.15.2
-PyQt5-sip==12.9.0
+PyQt6==5.15.4 # rq.filter: < 5.16
+PyQt6-Qt5==5.15.2
+PyQt6-sip==12.9.0
PyQtWebEngine==5.15.4 # rq.filter: < 5.16
PyQtWebEngine-Qt5==5.15.2
diff --git a/misc/requirements/requirements-pyqt-5.15.txt-raw b/misc/requirements/requirements-pyqt-5.15.txt-raw
index be3a85350..a727dcc8a 100644
--- a/misc/requirements/requirements-pyqt-5.15.txt-raw
+++ b/misc/requirements/requirements-pyqt-5.15.txt-raw
@@ -1,4 +1,4 @@
-#@ filter: PyQt5 < 5.16
+#@ filter: PyQt6 < 5.16
#@ filter: PyQtWebEngine < 5.16
-PyQt5 >= 5.15, < 5.16
+PyQt6 >= 5.15, < 5.16
PyQtWebEngine >= 5.15, < 5.16
diff --git a/misc/requirements/requirements-pyqt-pyinstaller.txt b/misc/requirements/requirements-pyqt-pyinstaller.txt
index 678a1d7ea..fae0aa33a 100644
--- a/misc/requirements/requirements-pyqt-pyinstaller.txt
+++ b/misc/requirements/requirements-pyqt-pyinstaller.txt
@@ -1,7 +1,7 @@
# This file is automatically generated by scripts/dev/recompile_requirements.py
-PyQt5==5.15.3
-PyQt5-Qt==5.15.2
-PyQt5-sip==12.9.0
+PyQt6==5.15.3
+PyQt6-Qt==5.15.2
+PyQt6-sip==12.9.0
PyQtWebEngine==5.15.3
PyQtWebEngine-Qt==5.15.2
diff --git a/misc/requirements/requirements-pyqt-pyinstaller.txt-raw b/misc/requirements/requirements-pyqt-pyinstaller.txt-raw
index 89b5644da..700d33553 100644
--- a/misc/requirements/requirements-pyqt-pyinstaller.txt-raw
+++ b/misc/requirements/requirements-pyqt-pyinstaller.txt-raw
@@ -1,2 +1,2 @@
-PyQt5==5.15.3
+PyQt6==5.15.3
PyQtWebEngine==5.15.3
diff --git a/misc/requirements/requirements-pyqt.txt b/misc/requirements/requirements-pyqt.txt
index 75ef27bf4..18bd23f11 100644
--- a/misc/requirements/requirements-pyqt.txt
+++ b/misc/requirements/requirements-pyqt.txt
@@ -1,7 +1,7 @@
# This file is automatically generated by scripts/dev/recompile_requirements.py
-PyQt5==5.15.4
-PyQt5-Qt5==5.15.2
-PyQt5-sip==12.9.0
+PyQt6==5.15.4
+PyQt6-Qt5==5.15.2
+PyQt6-sip==12.9.0
PyQtWebEngine==5.15.4
PyQtWebEngine-Qt5==5.15.2
diff --git a/misc/requirements/requirements-pyqt.txt-raw b/misc/requirements/requirements-pyqt.txt-raw
index 9c6afbf16..67aa103ad 100644
--- a/misc/requirements/requirements-pyqt.txt-raw
+++ b/misc/requirements/requirements-pyqt.txt-raw
@@ -1,2 +1,2 @@
-PyQt5
+PyQt6
PyQtWebEngine
diff --git a/misc/requirements/requirements-qutebrowser.txt-raw b/misc/requirements/requirements-qutebrowser.txt-raw
index e07ea992a..4957ec6e1 100644
--- a/misc/requirements/requirements-qutebrowser.txt-raw
+++ b/misc/requirements/requirements-qutebrowser.txt-raw
@@ -10,7 +10,7 @@ Pygments # For :view-source --pygments or on QtWebKit
colorama # Colored log output on Windows
adblock # Improved adblocking
-# Optional, only relevant when installing PyQt5/PyQtWebEngine via pip.
+# Optional, only relevant when installing PyQt6/PyQtWebEngine via pip.
importlib-metadata # Determining PyQt version
typing_extensions # from importlib-metadata
diff --git a/misc/userscripts/add-nextcloud-bookmarks b/misc/userscripts/add-nextcloud-bookmarks
index 86f4f5bc7..08113bd59 100755
--- a/misc/userscripts/add-nextcloud-bookmarks
+++ b/misc/userscripts/add-nextcloud-bookmarks
@@ -41,7 +41,7 @@ from json import dumps
from os import environ, path
from sys import argv, exit
-from PyQt5.QtWidgets import QApplication, QInputDialog, QLineEdit
+from PyQt6.QtWidgets import QApplication, QInputDialog, QLineEdit
from requests import get, post
from requests.auth import HTTPBasicAuth
diff --git a/misc/userscripts/add-nextcloud-cookbook b/misc/userscripts/add-nextcloud-cookbook
index 3952bb16f..5226c02c5 100755
--- a/misc/userscripts/add-nextcloud-cookbook
+++ b/misc/userscripts/add-nextcloud-cookbook
@@ -37,7 +37,7 @@ import configparser
from os import environ, path
from sys import argv, exit
-from PyQt5.QtWidgets import QApplication, QInputDialog, QLineEdit
+from PyQt6.QtWidgets import QApplication, QInputDialog, QLineEdit
from requests import post
from requests.auth import HTTPBasicAuth
diff --git a/misc/userscripts/qute-keepass b/misc/userscripts/qute-keepass
index 285377ffc..7c5eb5bbd 100755
--- a/misc/userscripts/qute-keepass
+++ b/misc/userscripts/qute-keepass
@@ -42,7 +42,7 @@ you do not do this, you will get 'element not editable' errors.
If keepass takes a while to open the DB, you might want to consider reducing
the number of transform rounds in your database settings.
-Dependencies: pykeepass (in python3), PyQt5. Without pykeepass, you will get an
+Dependencies: pykeepass (in python3), PyQt6. Without pykeepass, you will get an
exit code of 100.
********************!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!******************
@@ -64,8 +64,8 @@ import shlex
import subprocess
import sys
-from PyQt5.QtCore import QUrl
-from PyQt5.QtWidgets import QApplication, QInputDialog, QLineEdit
+from PyQt6.QtCore import QUrl
+from PyQt6.QtWidgets import QApplication, QInputDialog, QLineEdit
try:
import pykeepass
diff --git a/qutebrowser/__init__.py b/qutebrowser/__init__.py
index 29a8e4836..73ab78c58 100644
--- a/qutebrowser/__init__.py
+++ b/qutebrowser/__init__.py
@@ -17,7 +17,7 @@
# You should have received a copy of the GNU General Public License
# along with qutebrowser. If not, see <https://www.gnu.org/licenses/>.
-"""A keyboard-driven, vim-like browser based on PyQt5."""
+"""A keyboard-driven, vim-like browser based on PyQt6."""
import os.path
@@ -28,6 +28,6 @@ __maintainer__ = __author__
__email__ = "mail@qutebrowser.org"
__version__ = "2.3.1"
__version_info__ = tuple(int(part) for part in __version__.split('.'))
-__description__ = "A keyboard-driven, vim-like browser based on PyQt5."
+__description__ = "A keyboard-driven, vim-like browser based on PyQt6."
basedir = os.path.dirname(os.path.realpath(__file__))
diff --git a/qutebrowser/api/config.py b/qutebrowser/api/config.py
index 19e2b3c3e..3e4cd7e59 100644
--- a/qutebrowser/api/config.py
+++ b/qutebrowser/api/config.py
@@ -21,7 +21,7 @@
from typing import cast, Any
-from PyQt5.QtCore import QUrl
+from PyQt6.QtCore import QUrl
from qutebrowser.config import config
diff --git a/qutebrowser/api/downloads.py b/qutebrowser/api/downloads.py
index cd33f5709..4e2511c54 100644
--- a/qutebrowser/api/downloads.py
+++ b/qutebrowser/api/downloads.py
@@ -23,7 +23,7 @@
import io
-from PyQt5.QtCore import QObject, pyqtSignal, pyqtSlot, QUrl
+from PyQt6.QtCore import QObject, pyqtSignal, pyqtSlot, QUrl
from qutebrowser.browser import downloads, qtnetworkdownloads
from qutebrowser.utils import objreg
diff --git a/qutebrowser/app.py b/qutebrowser/app.py
index 1ab28e8d0..b37db9164 100644
--- a/qutebrowser/app.py
+++ b/qutebrowser/app.py
@@ -46,9 +46,9 @@ import datetime
import argparse
from typing import Iterable, Optional
-from PyQt5.QtWidgets import QApplication, QWidget
-from PyQt5.QtGui import QDesktopServices, QPixmap, QIcon
-from PyQt5.QtCore import pyqtSlot, QUrl, QObject, QEvent, pyqtSignal, Qt
+from PyQt6.QtWidgets import QApplication, QWidget
+from PyQt6.QtGui import QDesktopServices, QPixmap, QIcon
+from PyQt6.QtCore import pyqtSlot, QUrl, QObject, QEvent, pyqtSignal, Qt
import qutebrowser
import qutebrowser.resources
diff --git a/qutebrowser/browser/browsertab.py b/qutebrowser/browser/browsertab.py
index b1827dbf4..04ebf321f 100644
--- a/qutebrowser/browser/browsertab.py
+++ b/qutebrowser/browser/browsertab.py
@@ -26,17 +26,17 @@ import dataclasses
from typing import (cast, TYPE_CHECKING, Any, Callable, Iterable, List, Optional,
Sequence, Set, Type, Union)
-from PyQt5.QtCore import (pyqtSignal, pyqtSlot, QUrl, QObject, QSizeF, Qt,
+from PyQt6.QtCore import (pyqtSignal, pyqtSlot, QUrl, QObject, QSizeF, Qt,
QEvent, QPoint, QRect)
-from PyQt5.QtGui import QKeyEvent, QIcon, QPixmap
-from PyQt5.QtWidgets import QWidget, QApplication, QDialog
-from PyQt5.QtPrintSupport import QPrintDialog, QPrinter
-from PyQt5.QtNetwork import QNetworkAccessManager
+from PyQt6.QtGui import QKeyEvent, QIcon, QPixmap
+from PyQt6.QtWidgets import QWidget, QApplication, QDialog
+from PyQt6.QtPrintSupport import QPrintDialog, QPrinter
+from PyQt6.QtNetwork import QNetworkAccessManager
if TYPE_CHECKING:
- from PyQt5.QtWebKit import QWebHistory, QWebHistoryItem
- from PyQt5.QtWebKitWidgets import QWebPage
- from PyQt5.QtWebEngineWidgets import (
+ from PyQt6.QtWebKit import QWebHistory, QWebHistoryItem
+ from PyQt6.QtWebKitWidgets import QWebPage
+ from PyQt6.QtWebEngineWidgets import (
QWebEngineHistory, QWebEngineHistoryItem, QWebEnginePage)
from qutebrowser.keyinput import modeman
diff --git a/qutebrowser/browser/commands.py b/qutebrowser/browser/commands.py
index 8cd73ae4f..291e51822 100644
--- a/qutebrowser/browser/commands.py
+++ b/qutebrowser/browser/commands.py
@@ -24,8 +24,8 @@ import shlex
import functools
from typing import cast, Callable, Dict, Union
-from PyQt5.QtWidgets import QApplication, QTabBar
-from PyQt5.QtCore import Qt, QUrl, QEvent, QUrlQuery
+from PyQt6.QtWidgets import QApplication, QTabBar
+from PyQt6.QtCore import Qt, QUrl, QEvent, QUrlQuery
from qutebrowser.commands import userscripts, runners
from qutebrowser.api import cmdutils
diff --git a/qutebrowser/browser/downloads.py b/qutebrowser/browser/downloads.py
index 4f7897c9d..ff12a7b53 100644
--- a/qutebrowser/browser/downloads.py
+++ b/qutebrowser/browser/downloads.py
@@ -30,7 +30,7 @@ import tempfile
import enum
from typing import Any, Dict, IO, List, MutableSequence, Optional, Union
-from PyQt5.QtCore import (pyqtSlot, pyqtSignal, Qt, QObject, QModelIndex,
+from PyQt6.QtCore import (pyqtSlot, pyqtSignal, Qt, QObject, QModelIndex,
QTimer, QAbstractListModel, QUrl)
from qutebrowser.browser import pdfjs
diff --git a/qutebrowser/browser/downloadview.py b/qutebrowser/browser/downloadview.py
index 69c58741a..0c76161f7 100644
--- a/qutebrowser/browser/downloadview.py
+++ b/qutebrowser/browser/downloadview.py
@@ -22,8 +22,8 @@
import functools
from typing import Callable, MutableSequence, Tuple, Union
-from PyQt5.QtCore import pyqtSlot, QSize, Qt
-from PyQt5.QtWidgets import QListView, QSizePolicy, QMenu, QStyleFactory
+from PyQt6.QtCore import pyqtSlot, QSize, Qt
+from PyQt6.QtWidgets import QListView, QSizePolicy, QMenu, QStyleFactory
from qutebrowser.browser import downloads
from qutebrowser.config import stylesheet
diff --git a/qutebrowser/browser/eventfilter.py b/qutebrowser/browser/eventfilter.py
index 0b5fab096..860287dbc 100644
--- a/qutebrowser/browser/eventfilter.py
+++ b/qutebrowser/browser/eventfilter.py
@@ -19,7 +19,7 @@
"""Event handling for a browser tab."""
-from PyQt5.QtCore import QObject, QEvent, Qt, QTimer
+from PyQt6.QtCore import QObject, QEvent, Qt, QTimer
from qutebrowser.config import config
from qutebrowser.utils import message, log, usertypes, qtutils
diff --git a/qutebrowser/browser/greasemonkey.py b/qutebrowser/browser/greasemonkey.py
index d0245937f..7f5763812 100644
--- a/qutebrowser/browser/greasemonkey.py
+++ b/qutebrowser/browser/greasemonkey.py
@@ -29,7 +29,7 @@ import textwrap
import dataclasses
from typing import cast, List, Sequence
-from PyQt5.QtCore import pyqtSignal, QObject, QUrl
+from PyQt6.QtCore import pyqtSignal, QObject, QUrl
from qutebrowser.utils import (log, standarddir, jinja, objreg, utils,
javascript, urlmatch, version, usertypes, message)
diff --git a/qutebrowser/browser/hints.py b/qutebrowser/browser/hints.py
index 6ac44adbc..33aa95eb5 100644
--- a/qutebrowser/browser/hints.py
+++ b/qutebrowser/browser/hints.py
@@ -30,8 +30,8 @@ from string import ascii_lowercase
from typing import (TYPE_CHECKING, Callable, Dict, Iterable, Iterator, List, Mapping,
MutableSequence, Optional, Sequence, Set)
-from PyQt5.QtCore import pyqtSignal, pyqtSlot, QObject, Qt, QUrl
-from PyQt5.QtWidgets import QLabel
+from PyQt6.QtCore import pyqtSignal, pyqtSlot, QObject, Qt, QUrl
+from PyQt6.QtWidgets import QLabel
from qutebrowser.config import config, configexc
from qutebrowser.keyinput import modeman, modeparsers, basekeyparser
diff --git a/qutebrowser/browser/history.py b/qutebrowser/browser/history.py
index 559992327..64ac896b7 100644
--- a/qutebrowser/browser/history.py
+++ b/qutebrowser/browser/history.py
@@ -25,8 +25,8 @@ import contextlib
import pathlib
from typing import cast, Mapping, MutableSequence, Optional
-from PyQt5.QtCore import pyqtSlot, QUrl, QObject, pyqtSignal
-from PyQt5.QtWidgets import QProgressDialog, QApplication
+from PyQt6.QtCore import pyqtSlot, QUrl, QObject, pyqtSignal
+from PyQt6.QtWidgets import QProgressDialog, QApplication
from qutebrowser.config import config
from qutebrowser.api import cmdutils
diff --git a/qutebrowser/browser/inspector.py b/qutebrowser/browser/inspector.py
index 2b40e97e4..33a30d2ac 100644
--- a/qutebrowser/browser/inspector.py
+++ b/qutebrowser/browser/inspector.py
@@ -24,9 +24,9 @@ import binascii
import enum
from typing import cast, Optional
-from PyQt5.QtWidgets import QWidget
-from PyQt5.QtCore import pyqtSignal, pyqtSlot, QObject, QEvent
-from PyQt5.QtGui import QCloseEvent
+from PyQt6.QtWidgets import QWidget
+from PyQt6.QtCore import pyqtSignal, pyqtSlot, QObject, QEvent
+from PyQt6.QtGui import QCloseEvent
from qutebrowser.browser import eventfilter
from qutebrowser.config import configfiles
diff --git a/qutebrowser/browser/navigate.py b/qutebrowser/browser/navigate.py
index 82bf57136..8368a7782 100644
--- a/qutebrowser/browser/navigate.py
+++ b/qutebrowser/browser/navigate.py
@@ -23,7 +23,7 @@ import re
import posixpath
from typing import Optional, Set
-from PyQt5.QtCore import QUrl
+from PyQt6.QtCore import QUrl
from qutebrowser.browser import webelem
from qutebrowser.config import config
diff --git a/qutebrowser/browser/network/pac.py b/qutebrowser/browser/network/pac.py
index 3a544c78f..7973cff2d 100644
--- a/qutebrowser/browser/network/pac.py
+++ b/qutebrowser/browser/network/pac.py
@@ -23,11 +23,11 @@ import sys
import functools
from typing import Optional
-from PyQt5.QtCore import QObject, pyqtSignal, pyqtSlot, QUrl
-from PyQt5.QtNetwork import (QNetworkProxy, QNetworkRequest, QHostInfo,
+from PyQt6.QtCore import QObject, pyqtSignal, pyqtSlot, QUrl
+from PyQt6.QtNetwork import (QNetworkProxy, QNetworkRequest, QHostInfo,
QNetworkReply, QNetworkAccessManager,
QHostAddress)
-from PyQt5.QtQml import QJSEngine, QJSValue
+from PyQt6.QtQml import QJSEngine, QJSValue
from qutebrowser.utils import log, utils, qtutils, resources
diff --git a/qutebrowser/browser/network/proxy.py b/qutebrowser/browser/network/proxy.py
index 2c0187837..9f938a35e 100644
--- a/qutebrowser/browser/network/proxy.py
+++ b/qutebrowser/browser/network/proxy.py
@@ -19,8 +19,8 @@
"""Handling of proxies."""
-from PyQt5.QtCore import QUrl, pyqtSlot
-from PyQt5.QtNetwork import QNetworkProxy, QNetworkProxyFactory
+from PyQt6.QtCore import QUrl, pyqtSlot
+from PyQt6.QtNetwork import QNetworkProxy, QNetworkProxyFactory
from qutebrowser.config import config, configtypes
from qutebrowser.utils import message, usertypes, urlutils, utils
diff --git a/qutebrowser/browser/pdfjs.py b/qutebrowser/browser/pdfjs.py
index c180c55f8..d531f71d2 100644
--- a/qutebrowser/browser/pdfjs.py
+++ b/qutebrowser/browser/pdfjs.py
@@ -22,7 +22,7 @@
import os
-from PyQt5.QtCore import QUrl, QUrlQuery
+from PyQt6.QtCore import QUrl, QUrlQuery
from qutebrowser.utils import resources, javascript, jinja, standarddir, log
from qutebrowser.config import config
diff --git a/qutebrowser/browser/qtnetworkdownloads.py b/qutebrowser/browser/qtnetworkdownloads.py
index f048d293d..2a2a67a69 100644
--- a/qutebrowser/browser/qtnetworkdownloads.py
+++ b/qutebrowser/browser/qtnetworkdownloads.py
@@ -26,9 +26,9 @@ import functools
import dataclasses
from typing import Dict, IO, Optional
-from PyQt5.QtCore import pyqtSlot, pyqtSignal, QTimer, QUrl
-from PyQt5.QtWidgets import QApplication
-from PyQt5.QtNetwork import QNetworkRequest, QNetworkReply, QNetworkAccessManager
+from PyQt6.QtCore import pyqtSlot, pyqtSignal, QTimer, QUrl
+from PyQt6.QtWidgets import QApplication
+from PyQt6.QtNetwork import QNetworkRequest, QNetworkReply, QNetworkAccessManager
from qutebrowser.config import config, websettings
from qutebrowser.utils import message, usertypes, log, urlutils, utils, debug, objreg
diff --git a/qutebrowser/browser/qutescheme.py b/qutebrowser/browser/qutescheme.py
index 68e36d249..fdcd6cf39 100644
--- a/qutebrowser/browser/qutescheme.py
+++ b/qutebrowser/browser/qutescheme.py
@@ -34,7 +34,7 @@ import collections
import secrets
from typing import TypeVar, Callable, Dict, List, Optional, Union, Sequence, Tuple
-from PyQt5.QtCore import QUrlQuery, QUrl
+from PyQt6.QtCore import QUrlQuery, QUrl
import qutebrowser
from qutebrowser.browser import pdfjs, downloads, history
diff --git a/qutebrowser/browser/shared.py b/qutebrowser/browser/shared.py
index 8d3ebe730..b5e0c90cb 100644
--- a/qutebrowser/browser/shared.py
+++ b/qutebrowser/browser/shared.py
@@ -27,7 +27,7 @@ import netrc
import tempfile
from typing import Callable, Mapping, List, Optional, Iterable, Iterator
-from PyQt5.QtCore import QUrl, pyqtBoundSignal
+from PyQt6.QtCore import QUrl, pyqtBoundSignal
from qutebrowser.config import config
from qutebrowser.utils import (usertypes, message, log, objreg, jinja, utils,
diff --git a/qutebrowser/browser/signalfilter.py b/qutebrowser/browser/signalfilter.py
index 0b002e345..030185652 100644
--- a/qutebrowser/browser/signalfilter.py
+++ b/qutebrowser/browser/signalfilter.py
@@ -21,7 +21,7 @@
import functools
-from PyQt5.QtCore import QObject
+from PyQt6.QtCore import QObject
from qutebrowser.utils import debug, log, objreg
diff --git a/qutebrowser/browser/urlmarks.py b/qutebrowser/browser/urlmarks.py
index 944ec23d4..dc0d37284 100644
--- a/qutebrowser/browser/urlmarks.py
+++ b/qutebrowser/browser/urlmarks.py
@@ -32,7 +32,7 @@ import functools
import collections
from typing import MutableMapping
-from PyQt5.QtCore import pyqtSignal, QUrl, QObject
+from PyQt6.QtCore import pyqtSignal, QUrl, QObject
from qutebrowser.utils import (message, usertypes, qtutils, urlutils,
standarddir, objreg, log)
diff --git a/qutebrowser/browser/webelem.py b/qutebrowser/browser/webelem.py
index 9ec29ce07..df534f99c 100644
--- a/qutebrowser/browser/webelem.py
+++ b/qutebrowser/browser/webelem.py
@@ -22,8 +22,8 @@
from typing import cast, TYPE_CHECKING, Iterator, Optional, Set, Union
import collections.abc
-from PyQt5.QtCore import QUrl, Qt, QEvent, QTimer, QRect, QPoint
-from PyQt5.QtGui import QMouseEvent
+from PyQt6.QtCore import QUrl, Qt, QEvent, QTimer, QRect, QPoint
+from PyQt6.QtGui import QMouseEvent
from qutebrowser.config import config
from qutebrowser.keyinput import modeman
diff --git a/qutebrowser/browser/webengine/certificateerror.py b/qutebrowser/browser/webengine/certificateerror.py
index 4df7ce8ab..e0d54f6e9 100644
--- a/qutebrowser/browser/webengine/certificateerror.py
+++ b/qutebrowser/browser/webengine/certificateerror.py
@@ -19,8 +19,8 @@
"""Wrapper over a QWebEngineCertificateError."""
-from PyQt5.QtCore import QUrl
-from PyQt5.QtWebEngineWidgets import QWebEngineCertificateError
+from PyQt6.QtCore import QUrl
+from PyQt6.QtWebEngineWidgets import QWebEngineCertificateError
from qutebrowser.utils import usertypes, utils, debug
diff --git a/qutebrowser/browser/webengine/interceptor.py b/qutebrowser/browser/webengine/interceptor.py
index 0b1040c4d..de7e1ae1f 100644
--- a/qutebrowser/browser/webengine/interceptor.py
+++ b/qutebrowser/browser/webengine/interceptor.py
@@ -19,8 +19,8 @@
"""A request interceptor taking care of adblocking and custom headers."""
-from PyQt5.QtCore import QUrl, QByteArray
-from PyQt5.QtWebEngineCore import (QWebEngineUrlRequestInterceptor,
+from PyQt6.QtCore import QUrl, QByteArray
+from PyQt6.QtWebEngineCore import (QWebEngineUrlRequestInterceptor,
QWebEngineUrlRequestInfo)
from qutebrowser.config import websettings, config
diff --git a/qutebrowser/browser/webengine/notification.py b/qutebrowser/browser/webengine/notification.py
index e40b3e736..f7264ecd6 100644
--- a/qutebrowser/browser/webengine/notification.py
+++ b/qutebrowser/browser/webengine/notification.py
@@ -50,18 +50,18 @@ import functools
import subprocess
from typing import Any, List, Dict, Optional, Iterator, TYPE_CHECKING
-from PyQt5.QtCore import (Qt, QObject, QVariant, QMetaType, QByteArray, pyqtSlot,
+from PyQt6.QtCore import (Qt, QObject, QVariant, QMetaType, QByteArray, pyqtSlot,
pyqtSignal, QTimer, QProcess, QUrl)
-from PyQt5.QtGui import QImage, QIcon, QPixmap
-from PyQt5.QtDBus import (QDBusConnection, QDBusInterface, QDBus, QDBusServiceWatcher,
+from PyQt6.QtGui import QImage, QIcon, QPixmap
+from PyQt6.QtDBus import (QDBusConnection, QDBusInterface, QDBus, QDBusServiceWatcher,
QDBusArgument, QDBusMessage, QDBusError)
-from PyQt5.QtWidgets import QSystemTrayIcon
+from PyQt6.QtWidgets import QSystemTrayIcon
if TYPE_CHECKING:
# putting these behind TYPE_CHECKING also means this module is importable
# on installs that don't have these
- from PyQt5.QtWebEngineCore import QWebEngineNotification
- from PyQt5.QtWebEngineWidgets import QWebEngineProfile
+ from PyQt6.QtWebEngineCore import QWebEngineNotification
+ from PyQt6.QtWebEngineWidgets import QWebEngineProfile
from qutebrowser.config import config
from qutebrowser.misc import objects
@@ -238,7 +238,7 @@ class NotificationBridgePresenter(QObject):
# Fixed in PyQtWebEngine 5.15.0
# PYQT_WEBENGINE_VERSION was added with PyQtWebEngine 5.13, but if we're here,
# we already did a version check above.
- from PyQt5.QtWebEngine import PYQT_WEBENGINE_VERSION
+ from PyQt6.QtWebEngine import PYQT_WEBENGINE_VERSION
if PYQT_WEBENGINE_VERSION < 0x050F00:
# PyQtWebEngine unrefs the callback after it's called, for some
# reason. So we call setNotificationPresenter again to *increase*
diff --git a/qutebrowser/browser/webengine/tabhistory.py b/qutebrowser/browser/webengine/tabhistory.py
index ab4b05fe9..db166647f 100644
--- a/qutebrowser/browser/webengine/tabhistory.py
+++ b/qutebrowser/browser/webengine/tabhistory.py
@@ -19,7 +19,7 @@
"""QWebHistory serializer for QtWebEngine."""
-from PyQt5.QtCore import QByteArray, QDataStream, QIODevice, QUrl
+from PyQt6.QtCore import QByteArray, QDataStream, QIODevice, QUrl
from qutebrowser.utils import qtutils
diff --git a/qutebrowser/browser/webengine/webenginedownloads.py b/qutebrowser/browser/webengine/webenginedownloads.py
index a6a2a1b93..85d7a4ce5 100644
--- a/qutebrowser/browser/webengine/webenginedownloads.py
+++ b/qutebrowser/browser/webengine/webenginedownloads.py
@@ -23,8 +23,8 @@ import re
import os.path
import functools
-from PyQt5.QtCore import pyqtSlot, Qt, QUrl, QObject
-from PyQt5.QtWebEngineWidgets import QWebEngineDownloadItem
+from PyQt6.QtCore import pyqtSlot, Qt, QUrl, QObject
+from PyQt6.QtWebEngineWidgets import QWebEngineDownloadItem
from qutebrowser.browser import downloads, pdfjs
from qutebrowser.utils import (debug, usertypes, message, log, objreg, urlutils,
diff --git a/qutebrowser/browser/webengine/webengineelem.py b/qutebrowser/browser/webengine/webengineelem.py
index 5d4c6ad9a..a992d9d99 100644
--- a/qutebrowser/browser/webengine/webengineelem.py
+++ b/qutebrowser/browser/webengine/webengineelem.py
@@ -22,9 +22,9 @@
from typing import (
TYPE_CHECKING, Any, Callable, Dict, Iterator, Optional, Set, Tuple, Union)
-from PyQt5.QtCore import QRect, QEventLoop
-from PyQt5.QtWidgets import QApplication
-from PyQt5.QtWebEngineWidgets import QWebEngineSettings
+from PyQt6.QtCore import QRect, QEventLoop
+from PyQt6.QtWidgets import QApplication
+from PyQt6.QtWebEngineWidgets import QWebEngineSettings
from qutebrowser.utils import log, javascript, urlutils, usertypes, utils
from qutebrowser.browser import webelem
diff --git a/qutebrowser/browser/webengine/webengineinspector.py b/qutebrowser/browser/webengine/webengineinspector.py
index ae31c0bee..7d6a5308c 100644
--- a/qutebrowser/browser/webengine/webengineinspector.py
+++ b/qutebrowser/browser/webengine/webengineinspector.py
@@ -21,9 +21,9 @@
import pathlib
-from PyQt5.QtCore import QLibraryInfo
-from PyQt5.QtWebEngineWidgets import QWebEngineView, QWebEnginePage
-from PyQt5.QtWidgets import QWidget
+from PyQt6.QtCore import QLibraryInfo
+from PyQt6.QtWebEngineWidgets import QWebEngineView, QWebEnginePage
+from PyQt6.QtWidgets import QWidget
from qutebrowser.browser import inspector
from qutebrowser.browser.webengine import webenginesettings
diff --git a/qutebrowser/browser/webengine/webenginequtescheme.py b/qutebrowser/browser/webengine/webenginequtescheme.py
index 64361f7c4..100817977 100644
--- a/qutebrowser/browser/webengine/webenginequtescheme.py
+++ b/qutebrowser/browser/webengine/webenginequtescheme.py
@@ -19,8 +19,8 @@
"""QtWebEngine specific qute://* handlers and glue code."""
-from PyQt5.QtCore import QBuffer, QIODevice, QUrl
-from PyQt5.QtWebEngineCore import (QWebEngineUrlSchemeHandler,
+from PyQt6.QtCore import QBuffer, QIODevice, QUrl
+from PyQt6.QtWebEngineCore import (QWebEngineUrlSchemeHandler,
QWebEngineUrlRequestJob,
QWebEngineUrlScheme)
diff --git a/qutebrowser/browser/webengine/webenginesettings.py b/qutebrowser/browser/webengine/webenginesettings.py
index 5430cec77..0d0c3b502 100644
--- a/qutebrowser/browser/webengine/webenginesettings.py
+++ b/qutebrowser/browser/webengine/webenginesettings.py
@@ -28,9 +28,9 @@ import os
import operator
from typing import cast, Any, List, Optional, Tuple, Union, TYPE_CHECKING
-from PyQt5.QtGui import QFont
-from PyQt5.QtWidgets import QApplication
-from PyQt5.QtWebEngineWidgets import QWebEngineSettings, QWebEngineProfile
+from PyQt6.QtGui import QFont
+from PyQt6.QtWidgets import QApplication
+from PyQt6.QtWebEngineWidgets import QWebEngineSettings, QWebEngineProfile
from qutebrowser.browser import history
from qutebrowser.browser.webengine import (spell, webenginequtescheme, cookies,
diff --git a/qutebrowser/browser/webengine/webenginetab.py b/qutebrowser/browser/webengine/webenginetab.py
index ace23d14a..6cad141f5 100644
--- a/qutebrowser/browser/webengine/webenginetab.py
+++ b/qutebrowser/browser/webengine/webenginetab.py
@@ -26,10 +26,10 @@ import re
import html as html_utils
from typing import cast, Union, Optional
-from PyQt5.QtCore import pyqtSignal, pyqtSlot, Qt, QPoint, QPointF, QUrl, QObject
-from PyQt5.QtNetwork import QAuthenticator
-from PyQt5.QtWidgets import QWidget
-from PyQt5.QtWebEngineWidgets import QWebEnginePage, QWebEngineScript, QWebEngineHistory
+from PyQt6.QtCore import pyqtSignal, pyqtSlot, Qt, QPoint, QPointF, QUrl, QObject
+from PyQt6.QtNetwork import QAuthenticator
+from PyQt6.QtWidgets import QWidget
+from PyQt6.QtWebEngineWidgets import QWebEnginePage, QWebEngineScript, QWebEngineHistory
from qutebrowser.config import config
from qutebrowser.browser import browsertab, eventfilter, shared, webelem, greasemonkey
@@ -125,7 +125,7 @@ class _WebEngineSearchWrapHandler:
try:
# pylint: disable=unused-import
- from PyQt5.QtWebEngineCore import QWebEngineFindTextResult
+ from PyQt6.QtWebEngineCore import QWebEngineFindTextResult
except ImportError:
# WORKAROUND for some odd PyQt/packaging bug where the
# findTextResult signal is available, but QWebEngineFindTextResult
@@ -1671,7 +1671,7 @@ class WebEngineTab(browsertab.AbstractTab):
try:
# pylint: disable=unused-import
- from PyQt5.QtWebEngineWidgets import (
+ from PyQt6.QtWebEngineWidgets import (
QWebEngineClientCertificateSelection)
except ImportError:
pass
diff --git a/qutebrowser/browser/webengine/webview.py b/qutebrowser/browser/webengine/webview.py
index 76ce1a42e..6ca96716b 100644
--- a/qutebrowser/browser/webengine/webview.py
+++ b/qutebrowser/browser/webengine/webview.py
@@ -21,9 +21,9 @@
from typing import List, Iterable
-from PyQt5.QtCore import pyqtSignal, QUrl
-from PyQt5.QtGui import QPalette
-from PyQt5.QtWebEngineWidgets import QWebEngineView, QWebEnginePage
+from PyQt6.QtCore import pyqtSignal, QUrl
+from PyQt6.QtGui import QPalette
+from PyQt6.QtWebEngineWidgets import QWebEngineView, QWebEnginePage
from qutebrowser.browser import shared
from qutebrowser.browser.webengine import webenginesettings, certificateerror
diff --git a/qutebrowser/browser/webkit/cache.py b/qutebrowser/browser/webkit/cache.py
index 8494a8477..bad38e2e0 100644
--- a/qutebrowser/browser/webkit/cache.py
+++ b/qutebrowser/browser/webkit/cache.py
@@ -22,7 +22,7 @@
from typing import cast
import os.path
-from PyQt5.QtNetwork import QNetworkDiskCache
+from PyQt6.QtNetwork import QNetworkDiskCache
from qutebrowser.config import config
from qutebrowser.utils import utils, standarddir
diff --git a/qutebrowser/browser/webkit/certificateerror.py b/qutebrowser/browser/webkit/certificateerror.py
index 09237dae9..5abd56d18 100644
--- a/qutebrowser/browser/webkit/certificateerror.py
+++ b/qutebrowser/browser/webkit/certificateerror.py
@@ -21,7 +21,7 @@
from typing import Sequence
-from PyQt5.QtNetwork import QSslError
+from PyQt6.QtNetwork import QSslError
from qutebrowser.utils import usertypes, utils, debug, jinja
diff --git a/qutebrowser/browser/webkit/cookies.py b/qutebrowser/browser/webkit/cookies.py
index 055ef64d8..496f8240f 100644
--- a/qutebrowser/browser/webkit/cookies.py
+++ b/qutebrowser/browser/webkit/cookies.py
@@ -21,8 +21,8 @@
from typing import Sequence
-from PyQt5.QtNetwork import QNetworkCookie, QNetworkCookieJar
-from PyQt5.QtCore import pyqtSignal, QDateTime
+from PyQt6.QtNetwork import QNetworkCookie, QNetworkCookieJar
+from PyQt6.QtCore import pyqtSignal, QDateTime
from qutebrowser.config import config
from qutebrowser.utils import utils, standarddir, objreg, log
diff --git a/qutebrowser/browser/webkit/http.py b/qutebrowser/browser/webkit/http.py
index eacb95679..6a6165767 100644
--- a/qutebrowser/browser/webkit/http.py
+++ b/qutebrowser/browser/webkit/http.py
@@ -25,7 +25,7 @@ import dataclasses
import os.path
from typing import Type
-from PyQt5.QtNetwork import QNetworkRequest
+from PyQt6.QtNetwork import QNetworkRequest
from qutebrowser.utils import log, utils
diff --git a/qutebrowser/browser/webkit/mhtml.py b/qutebrowser/browser/webkit/mhtml.py
index d9f2d484e..551aaf168 100644
--- a/qutebrowser/browser/webkit/mhtml.py
+++ b/qutebrowser/browser/webkit/mhtml.py
@@ -36,7 +36,7 @@ import quopri
import dataclasses
from typing import MutableMapping, Set, Tuple, Callable
-from PyQt5.QtCore import QUrl
+from PyQt6.QtCore import QUrl
from qutebrowser.browser import downloads
from qutebrowser.browser.webkit import webkitelem
diff --git a/qutebrowser/browser/webkit/network/networkmanager.py b/qutebrowser/browser/webkit/network/networkmanager.py
index c97c91d66..cf18822c8 100644
--- a/qutebrowser/browser/webkit/network/networkmanager.py
+++ b/qutebrowser/browser/webkit/network/networkmanager.py
@@ -24,8 +24,8 @@ import html
import dataclasses
from typing import TYPE_CHECKING, Dict, MutableMapping, Optional, Set
-from PyQt5.QtCore import pyqtSlot, pyqtSignal, QUrl, QByteArray
-from PyQt5.QtNetwork import (QNetworkAccessManager, QNetworkReply, QSslSocket,
+from PyQt6.QtCore import pyqtSlot, pyqtSignal, QUrl, QByteArray
+from PyQt6.QtNetwork import (QNetworkAccessManager, QNetworkReply, QSslSocket,
QNetworkProxy)
from qutebrowser.config import config
diff --git a/qutebrowser/browser/webkit/network/networkreply.py b/qutebrowser/browser/webkit/network/networkreply.py
index c1ead3209..5f762d806 100644
--- a/qutebrowser/browser/webkit/network/networkreply.py
+++ b/qutebrowser/browser/webkit/network/networkreply.py
@@ -26,8 +26,8 @@
"""Special network replies.."""
-from PyQt5.QtNetwork import QNetworkReply, QNetworkRequest
-from PyQt5.QtCore import pyqtSlot, QIODevice, QByteArray, QTimer
+from PyQt6.QtNetwork import QNetworkReply, QNetworkRequest
+from PyQt6.QtCore import pyqtSlot, QIODevice, QByteArray, QTimer
class FixedDataNetworkReply(QNetworkReply):
diff --git a/qutebrowser/browser/webkit/network/webkitqutescheme.py b/qutebrowser/browser/webkit/network/webkitqutescheme.py
index bccdd1acd..2e6462425 100644
--- a/qutebrowser/browser/webkit/network/webkitqutescheme.py
+++ b/qutebrowser/browser/webkit/network/webkitqutescheme.py
@@ -19,8 +19,8 @@
"""QtWebKit specific qute://* handlers and glue code."""
-from PyQt5.QtCore import QUrl
-from PyQt5.QtNetwork import QNetworkReply, QNetworkAccessManager
+from PyQt6.QtCore import QUrl
+from PyQt6.QtNetwork import QNetworkReply, QNetworkAccessManager
from qutebrowser.browser import qutescheme
from qutebrowser.browser.webkit.network import networkreply
diff --git a/qutebrowser/browser/webkit/tabhistory.py b/qutebrowser/browser/webkit/tabhistory.py
index a707030d1..186ad8a7f 100644
--- a/qutebrowser/browser/webkit/tabhistory.py
+++ b/qutebrowser/browser/webkit/tabhistory.py
@@ -21,7 +21,7 @@
from typing import Any, List, Mapping
-from PyQt5.QtCore import QByteArray, QDataStream, QIODevice, QUrl
+from PyQt6.QtCore import QByteArray, QDataStream, QIODevice, QUrl
from qutebrowser.utils import qtutils
diff --git a/qutebrowser/browser/webkit/webkitelem.py b/qutebrowser/browser/webkit/webkitelem.py
index 5bf96a610..f70ce0559 100644
--- a/qutebrowser/browser/webkit/webkitelem.py
+++ b/qutebrowser/browser/webkit/webkitelem.py
@@ -21,9 +21,9 @@
from typing import cast, TYPE_CHECKING, Iterator, List, Optional, Set
-from PyQt5.QtCore import QRect, Qt
-from PyQt5.QtWebKit import QWebElement, QWebSettings
-from PyQt5.QtWebKitWidgets import QWebFrame
+from PyQt6.QtCore import QRect, Qt
+from PyQt6.QtWebKit import QWebElement, QWebSettings
+from PyQt6.QtWebKitWidgets import QWebFrame
from qutebrowser.config import config
from qutebrowser.utils import log, utils, javascript, usertypes
diff --git a/qutebrowser/browser/webkit/webkithistory.py b/qutebrowser/browser/webkit/webkithistory.py
index 4149bda88..7e6073eaf 100644
--- a/qutebrowser/browser/webkit/webkithistory.py
+++ b/qutebrowser/browser/webkit/webkithistory.py
@@ -21,7 +21,7 @@
import functools
-from PyQt5.QtWebKit import QWebHistoryInterface
+from PyQt6.QtWebKit import QWebHistoryInterface
from qutebrowser.utils import debug
from qutebrowser.misc import debugcachestats
diff --git a/qutebrowser/browser/webkit/webkitinspector.py b/qutebrowser/browser/webkit/webkitinspector.py
index 57bcd40ea..be26860cc 100644
--- a/qutebrowser/browser/webkit/webkitinspector.py
+++ b/qutebrowser/browser/webkit/webkitinspector.py
@@ -19,9 +19,9 @@
"""Customized QWebInspector for QtWebKit."""
-from PyQt5.QtWebKit import QWebSettings
-from PyQt5.QtWebKitWidgets import QWebInspector, QWebPage
-from PyQt5.QtWidgets import QWidget
+from PyQt6.QtWebKit import QWebSettings
+from PyQt6.QtWebKitWidgets import QWebInspector, QWebPage
+from PyQt6.QtWidgets import QWidget
from qutebrowser.browser import inspector
from qutebrowser.misc import miscwidgets
diff --git a/qutebrowser/browser/webkit/webkitsettings.py b/qutebrowser/browser/webkit/webkitsettings.py
index cac6236ce..cc67c8494 100644
--- a/qutebrowser/browser/webkit/webkitsettings.py
+++ b/qutebrowser/browser/webkit/webkitsettings.py
@@ -27,10 +27,10 @@ Module attributes:
from typing import cast
import os.path
-from PyQt5.QtCore import QUrl
-from PyQt5.QtGui import QFont
-from PyQt5.QtWebKit import QWebSettings
-from PyQt5.QtWebKitWidgets import QWebPage
+from PyQt6.QtCore import QUrl
+from PyQt6.QtGui import QFont
+from PyQt6.QtWebKit import QWebSettings
+from PyQt6.QtWebKitWidgets import QWebPage
from qutebrowser.config import config, websettings
from qutebrowser.config.websettings import AttributeInfo as Attr
diff --git a/qutebrowser/browser/webkit/webkittab.py b/qutebrowser/browser/webkit/webkittab.py
index df3491ec2..6c2710fb4 100644
--- a/qutebrowser/browser/webkit/webkittab.py
+++ b/qutebrowser/browser/webkit/webkittab.py
@@ -24,12 +24,12 @@ import functools
import xml.etree.ElementTree
from typing import cast, Iterable, Optional
-from PyQt5.QtCore import pyqtSlot, Qt, QUrl, QPoint, QTimer, QSizeF, QSize
-from PyQt5.QtGui import QIcon
-from PyQt5.QtWidgets import QWidget
-from PyQt5.QtWebKitWidgets import QWebPage, QWebFrame
-from PyQt5.QtWebKit import QWebSettings, QWebHistory, QWebElement
-from PyQt5.QtPrintSupport import QPrinter
+from PyQt6.QtCore import pyqtSlot, Qt, QUrl, QPoint, QTimer, QSizeF, QSize
+from PyQt6.QtGui import QIcon
+from PyQt6.QtWidgets import QWidget
+from PyQt6.QtWebKitWidgets import QWebPage, QWebFrame
+from PyQt6.QtWebKit import QWebSettings, QWebHistory, QWebElement
+from PyQt6.QtPrintSupport import QPrinter
from qutebrowser.browser import browsertab, shared
from qutebrowser.browser.webkit import (webview, tabhistory, webkitelem,
diff --git a/qutebrowser/browser/webkit/webpage.py b/qutebrowser/browser/webkit/webpage.py
index ddbd78de2..747b2d382 100644
--- a/qutebrowser/browser/webkit/webpage.py
+++ b/qutebrowser/browser/webkit/webpage.py
@@ -23,12 +23,12 @@ import html
import functools
from typing import cast
-from PyQt5.QtCore import pyqtSlot, pyqtSignal, Qt, QUrl, QPoint
-from PyQt5.QtGui import QDesktopServices
-from PyQt5.QtNetwork import QNetworkReply, QNetworkRequest
-from PyQt5.QtWidgets import QFileDialog
-from PyQt5.QtPrintSupport import QPrintDialog
-from PyQt5.QtWebKitWidgets import QWebPage, QWebFrame
+from PyQt6.QtCore import pyqtSlot, pyqtSignal, Qt, QUrl, QPoint
+from PyQt6.QtGui import QDesktopServices
+from PyQt6.QtNetwork import QNetworkReply, QNetworkRequest
+from PyQt6.QtWidgets import QFileDialog
+from PyQt6.QtPrintSupport import QPrintDialog
+from PyQt6.QtWebKitWidgets import QWebPage, QWebFrame
from qutebrowser.config import websettings, config
from qutebrowser.browser import pdfjs, shared, downloads, greasemonkey
diff --git a/qutebrowser/browser/webkit/webview.py b/qutebrowser/browser/webkit/webview.py
index 0242bed0c..2fbbafe0a 100644
--- a/qutebrowser/browser/webkit/webview.py
+++ b/qutebrowser/browser/webkit/webview.py
@@ -19,9 +19,9 @@
"""The main browser widgets."""
-from PyQt5.QtCore import pyqtSignal, Qt, QUrl
-from PyQt5.QtWebKit import QWebSettings
-from PyQt5.QtWebKitWidgets import QWebView, QWebPage
+from PyQt6.QtCore import pyqtSignal, Qt, QUrl
+from PyQt6.QtWebKit import QWebSettings
+from PyQt6.QtWebKitWidgets import QWebView, QWebPage
from qutebrowser.config import config, stylesheet
from qutebrowser.keyinput import modeman
diff --git a/qutebrowser/commands/argparser.py b/qutebrowser/commands/argparser.py
index f8f083b72..1d57a7031 100644
--- a/qutebrowser/commands/argparser.py
+++ b/qutebrowser/commands/argparser.py
@@ -21,7 +21,7 @@
import argparse
-from PyQt5.QtCore import QUrl
+from PyQt6.QtCore import QUrl
from qutebrowser.commands import cmdexc
from qutebrowser.utils import utils, objreg, log
diff --git a/qutebrowser/commands/runners.py b/qutebrowser/commands/runners.py
index 5fb054455..b6b0ddd33 100644
--- a/qutebrowser/commands/runners.py
+++ b/qutebrowser/commands/runners.py
@@ -24,7 +24,7 @@ import re
import contextlib
from typing import TYPE_CHECKING, Callable, Dict, Iterator, Mapping, MutableMapping
-from PyQt5.QtCore import pyqtSlot, QUrl, QObject
+from PyQt6.QtCore import pyqtSlot, QUrl, QObject
from qutebrowser.api import cmdutils
from qutebrowser.commands import cmdexc, parser
diff --git a/qutebrowser/commands/userscripts.py b/qutebrowser/commands/userscripts.py
index 70c639207..c7ed7e419 100644
--- a/qutebrowser/commands/userscripts.py
+++ b/qutebrowser/commands/userscripts.py
@@ -24,7 +24,7 @@ import os.path
import tempfile
from typing import cast, Any, MutableMapping, Tuple
-from PyQt5.QtCore import pyqtSignal, pyqtSlot, QObject, QSocketNotifier
+from PyQt6.QtCore import pyqtSignal, pyqtSlot, QObject, QSocketNotifier
import qutebrowser
from qutebrowser.utils import message, log, objreg, standarddir, utils
diff --git a/qutebrowser/completion/completer.py b/qutebrowser/completion/completer.py
index 778333854..9d23f3a90 100644
--- a/qutebrowser/completion/completer.py
+++ b/qutebrowser/completion/completer.py
@@ -22,7 +22,7 @@
import dataclasses
from typing import TYPE_CHECKING
-from PyQt5.QtCore import pyqtSlot, QObject, QTimer
+from PyQt6.QtCore import pyqtSlot, QObject, QTimer
from qutebrowser.config import config
from qutebrowser.commands import parser, cmdexc
diff --git a/qutebrowser/completion/completiondelegate.py b/qutebrowser/completion/completiondelegate.py
index 9ea82e876..1ab389e0d 100644
--- a/qutebrowser/completion/completiondelegate.py
+++ b/qutebrowser/completion/completiondelegate.py
@@ -25,9 +25,9 @@ We use this to be able to highlight parts of the text.
import re
import html
-from PyQt5.QtWidgets import QStyle, QStyleOptionViewItem, QStyledItemDelegate
-from PyQt5.QtCore import QRectF, QRegularExpression, QSize, Qt
-from PyQt5.QtGui import (QIcon, QPalette, QTextDocument, QTextOption,
+from PyQt6.QtWidgets import QStyle, QStyleOptionViewItem, QStyledItemDelegate
+from PyQt6.QtCore import QRectF, QRegularExpression, QSize, Qt
+from PyQt6.QtGui import (QIcon, QPalette, QTextDocument, QTextOption,
QAbstractTextDocumentLayout, QSyntaxHighlighter,
QTextCharFormat)
diff --git a/qutebrowser/completion/completionwidget.py b/qutebrowser/completion/completionwidget.py
index dd8e267fe..a559531ec 100644
--- a/qutebrowser/completion/completionwidget.py
+++ b/qutebrowser/completion/completionwidget.py
@@ -25,8 +25,8 @@ subclasses to provide completions.
from typing import TYPE_CHECKING, Optional
-from PyQt5.QtWidgets import QTreeView, QSizePolicy, QStyleFactory, QWidget
-from PyQt5.QtCore import pyqtSlot, pyqtSignal, Qt, QItemSelectionModel, QSize
+from PyQt6.QtWidgets import QTreeView, QSizePolicy, QStyleFactory, QWidget
+from PyQt6.QtCore import pyqtSlot, pyqtSignal, Qt, QItemSelectionModel, QSize
from qutebrowser.config import config, stylesheet
from qutebrowser.completion import completiondelegate
diff --git a/qutebrowser/completion/models/completionmodel.py b/qutebrowser/completion/models/completionmodel.py
index 81f4bba8e..1499cd352 100644
--- a/qutebrowser/completion/models/completionmodel.py
+++ b/qutebrowser/completion/models/completionmodel.py
@@ -21,7 +21,7 @@
from typing import MutableSequence
-from PyQt5.QtCore import Qt, QModelIndex, QAbstractItemModel
+from PyQt6.QtCore import Qt, QModelIndex, QAbstractItemModel
from qutebrowser.utils import log, qtutils, utils
from qutebrowser.api import cmdutils
diff --git a/qutebrowser/completion/models/filepathcategory.py b/qutebrowser/completion/models/filepathcategory.py
index b7d74f57a..bcbf881d7 100644
--- a/qutebrowser/completion/models/filepathcategory.py
+++ b/qutebrowser/completion/models/filepathcategory.py
@@ -31,7 +31,7 @@ import os
import os.path
from typing import List, Optional, Iterable
-from PyQt5.QtCore import QAbstractListModel, QModelIndex, QObject, Qt, QUrl
+from PyQt6.QtCore import QAbstractListModel, QModelIndex, QObject, Qt, QUrl
from qutebrowser.config import config
from qutebrowser.utils import log
diff --git a/qutebrowser/completion/models/histcategory.py b/qutebrowser/completion/models/histcategory.py
index 8dd1be838..1e5d4e05d 100644
--- a/qutebrowser/completion/models/histcategory.py
+++ b/qutebrowser/completion/models/histcategory.py
@@ -21,8 +21,8 @@
from typing import Optional
-from PyQt5.QtSql import QSqlQueryModel
-from PyQt5.QtWidgets import QWidget
+from PyQt6.QtSql import QSqlQueryModel
+from PyQt6.QtWidgets import QWidget
from qutebrowser.misc import sql
from qutebrowser.utils import debug, message, log
diff --git a/qutebrowser/completion/models/listcategory.py b/qutebrowser/completion/models/listcategory.py
index 352151ebb..1098928eb 100644
--- a/qutebrowser/completion/models/listcategory.py
+++ b/qutebrowser/completion/models/listcategory.py
@@ -22,9 +22,9 @@
import re
from typing import Iterable, Tuple
-from PyQt5.QtCore import QSortFilterProxyModel, QRegularExpression
-from PyQt5.QtGui import QStandardItem, QStandardItemModel
-from PyQt5.QtWidgets import QWidget
+from PyQt6.QtCore import QSortFilterProxyModel, QRegularExpression
+from PyQt6.QtGui import QStandardItem, QStandardItemModel
+from PyQt6.QtWidgets import QWidget
from qutebrowser.completion.models import util
from qutebrowser.utils import qtutils, log
diff --git a/qutebrowser/completion/models/urlmodel.py b/qutebrowser/completion/models/urlmodel.py
index 56af1f7c7..35cac9542 100644
--- a/qutebrowser/completion/models/urlmodel.py
+++ b/qutebrowser/completion/models/urlmodel.py
@@ -21,7 +21,7 @@
from typing import Dict, Sequence
-from PyQt5.QtCore import QAbstractItemModel
+from PyQt6.QtCore import QAbstractItemModel
from qutebrowser.completion.models import (completionmodel, filepathcategory,
listcategory, histcategory)
diff --git a/qutebrowser/components/braveadblock.py b/qutebrowser/components/braveadblock.py
index 21319cb1b..ecd64e7ec 100644
--- a/qutebrowser/components/braveadblock.py
+++ b/qutebrowser/components/braveadblock.py
@@ -27,7 +27,7 @@ import contextlib
import subprocess
from typing import Optional, IO, Iterator
-from PyQt5.QtCore import QUrl
+from PyQt6.QtCore import QUrl
from qutebrowser.api import (
hook,
diff --git a/qutebrowser/components/hostblock.py b/qutebrowser/components/hostblock.py
index 1860b734c..10781bcc6 100644
--- a/qutebrowser/components/hostblock.py
+++ b/qutebrowser/components/hostblock.py
@@ -26,7 +26,7 @@ import logging
import pathlib
from typing import cast, IO, Set
-from PyQt5.QtCore import QUrl
+from PyQt6.QtCore import QUrl
from qutebrowser.api import (
hook,
diff --git a/qutebrowser/components/misccommands.py b/qutebrowser/components/misccommands.py
index 120806bfe..1df8f258e 100644
--- a/qutebrowser/components/misccommands.py
+++ b/qutebrowser/components/misccommands.py
@@ -31,8 +31,8 @@ try:
except ImportError:
hunter = None
-from PyQt5.QtCore import Qt
-from PyQt5.QtPrintSupport import QPrintPreviewDialog
+from PyQt6.QtCore import Qt
+from PyQt6.QtPrintSupport import QPrintPreviewDialog
from qutebrowser.api import cmdutils, apitypes, message, config
diff --git a/qutebrowser/components/readlinecommands.py b/qutebrowser/components/readlinecommands.py
index da9c515dd..41e6f4d29 100644
--- a/qutebrowser/components/readlinecommands.py
+++ b/qutebrowser/components/readlinecommands.py
@@ -21,7 +21,7 @@
from typing import Iterable, Optional, MutableMapping
-from PyQt5.QtWidgets import QApplication, QLineEdit
+from PyQt6.QtWidgets import QApplication, QLineEdit
from qutebrowser.api import cmdutils
diff --git a/qutebrowser/components/utils/blockutils.py b/qutebrowser/components/utils/blockutils.py
index bd27baece..d177e6634 100644
--- a/qutebrowser/components/utils/blockutils.py
+++ b/qutebrowser/components/utils/blockutils.py
@@ -24,7 +24,7 @@ import os
import functools
from typing import IO, List, Optional
-from PyQt5.QtCore import QUrl, QObject, pyqtSignal
+from PyQt6.QtCore import QUrl, QObject, pyqtSignal
from qutebrowser.api import downloads, message, config
diff --git a/qutebrowser/config/config.py b/qutebrowser/config/config.py
index 437a54a33..efdb17ff6 100644
--- a/qutebrowser/config/config.py
+++ b/qutebrowser/config/config.py
@@ -25,7 +25,7 @@ import functools
from typing import (TYPE_CHECKING, Any, Callable, Dict, Iterator, List, Mapping,
MutableMapping, MutableSequence, Optional, Tuple, cast)
-from PyQt5.QtCore import pyqtSignal, QObject, QUrl
+from PyQt6.QtCore import pyqtSignal, QObject, QUrl
from qutebrowser.commands import cmdexc, parser
from qutebrowser.config import configdata, configexc, configutils
diff --git a/qutebrowser/config/configcommands.py b/qutebrowser/config/configcommands.py
index 143b02fca..42abdcb1a 100644
--- a/qutebrowser/config/configcommands.py
+++ b/qutebrowser/config/configcommands.py
@@ -23,7 +23,7 @@ import os.path
import contextlib
from typing import TYPE_CHECKING, Iterator, List, Optional, Any, Tuple
-from PyQt5.QtCore import QUrl
+from PyQt6.QtCore import QUrl
from qutebrowser.api import cmdutils
from qutebrowser.completion.models import configmodel
diff --git a/qutebrowser/config/configfiles.py b/qutebrowser/config/configfiles.py
index 6f0d0b13c..bfbd05da9 100644
--- a/qutebrowser/config/configfiles.py
+++ b/qutebrowser/config/configfiles.py
@@ -33,7 +33,7 @@ from typing import (TYPE_CHECKING, Any, Dict, Iterable, Iterator, List, Mapping,
MutableMapping, Optional, Tuple, cast)
import yaml
-from PyQt5.QtCore import pyqtSignal, pyqtSlot, QObject, QSettings, qVersion
+from PyQt6.QtCore import pyqtSignal, pyqtSlot, QObject, QSettings, qVersion
import qutebrowser
from qutebrowser.config import (configexc, config, configdata, configutils,
@@ -118,7 +118,7 @@ class StateConfig(configparser.ConfigParser):
Note that it's too early to use objects.backend here...
"""
try:
- import PyQt5.QtWebEngineWidgets # pylint: disable=unused-import
+ import PyQt6.QtWebEngineWidgets # pylint: disable=unused-import
except ImportError:
return 'no'
return str(version.qtwebengine_versions(avoid_init=True).webengine)
diff --git a/qutebrowser/config/configinit.py b/qutebrowser/config/configinit.py
index 15e587ea2..54f4ee21b 100644
--- a/qutebrowser/config/configinit.py
+++ b/qutebrowser/config/configinit.py
@@ -23,7 +23,7 @@ import argparse
import os.path
import sys
-from PyQt5.QtWidgets import QMessageBox
+from PyQt6.QtWidgets import QMessageBox
from qutebrowser.api import config as configapi
from qutebrowser.config import (config, configdata, configfiles, configtypes,
diff --git a/qutebrowser/config/configtypes.py b/qutebrowser/config/configtypes.py
index d3d5e3fb8..1af4a71d8 100644
--- a/qutebrowser/config/configtypes.py
+++ b/qutebrowser/config/configtypes.py
@@ -55,10 +55,10 @@ from typing import (Any, Callable, Dict as DictType, Iterable, Iterator,
List as ListType, Optional, Pattern, Sequence, Tuple, Union)
import yaml
-from PyQt5.QtCore import QUrl, Qt
-from PyQt5.QtGui import QColor
-from PyQt5.QtWidgets import QTabWidget, QTabBar
-from PyQt5.QtNetwork import QNetworkProxy
+from PyQt6.QtCore import QUrl, Qt
+from PyQt6.QtGui import QColor
+from PyQt6.QtWidgets import QTabWidget, QTabBar
+from PyQt6.QtNetwork import QNetworkProxy
from qutebrowser.misc import objects, debugcachestats
from qutebrowser.config import configexc, configutils
diff --git a/qutebrowser/config/configutils.py b/qutebrowser/config/configutils.py
index 480bbd85f..73a1e87e5 100644
--- a/qutebrowser/config/configutils.py
+++ b/qutebrowser/config/configutils.py
@@ -28,9 +28,9 @@ from typing import (
TYPE_CHECKING, Any, Dict, Iterator, List, Optional, Sequence, Set, Union,
MutableMapping)
-from PyQt5.QtCore import QUrl
-from PyQt5.QtGui import QFontDatabase
-from PyQt5.QtWidgets import QApplication
+from PyQt6.QtCore import QUrl
+from PyQt6.QtGui import QFontDatabase
+from PyQt6.QtWidgets import QApplication
from qutebrowser.utils import utils, urlmatch, urlutils, usertypes, qtutils
from qutebrowser.config import configexc
diff --git a/qutebrowser/config/qtargs.py b/qutebrowser/config/qtargs.py
index c38ef5b01..d39c2f7ed 100644
--- a/qutebrowser/config/qtargs.py
+++ b/qutebrowser/config/qtargs.py
@@ -25,7 +25,7 @@ import argparse
import pathlib
from typing import Any, Dict, Iterator, List, Optional, Sequence, Tuple
-from PyQt5.QtCore import QLibraryInfo, QLocale
+from PyQt6.QtCore import QLibraryInfo, QLocale
from qutebrowser.config import config
from qutebrowser.misc import objects
diff --git a/qutebrowser/config/stylesheet.py b/qutebrowser/config/stylesheet.py
index 2927aec08..42fb39c15 100644
--- a/qutebrowser/config/stylesheet.py
+++ b/qutebrowser/config/stylesheet.py
@@ -22,7 +22,7 @@
import functools
from typing import Optional, FrozenSet
-from PyQt5.QtCore import pyqtSlot, QObject
+from PyQt6.QtCore import pyqtSlot, QObject
from qutebrowser.config import config
from qutebrowser.misc import debugcachestats
diff --git a/qutebrowser/config/websettings.py b/qutebrowser/config/websettings.py
index 7556d2b6d..b879d290e 100644
--- a/qutebrowser/config/websettings.py
+++ b/qutebrowser/config/websettings.py
@@ -25,8 +25,8 @@ import functools
import dataclasses
from typing import Any, Callable, Dict, Optional, Union
-from PyQt5.QtCore import QUrl, pyqtSlot, qVersion
-from PyQt5.QtGui import QFont
+from PyQt6.QtCore import QUrl, pyqtSlot, qVersion
+from PyQt6.QtGui import QFont
import qutebrowser
from qutebrowser.config import config
diff --git a/qutebrowser/extensions/interceptors.py b/qutebrowser/extensions/interceptors.py
index dfafeb7e3..155b5f4bc 100644
--- a/qutebrowser/extensions/interceptors.py
+++ b/qutebrowser/extensions/interceptors.py
@@ -23,7 +23,7 @@ import enum
import dataclasses
from typing import Callable, List, Optional
-from PyQt5.QtCore import QUrl
+from PyQt6.QtCore import QUrl
class ResourceType(enum.Enum):
diff --git a/qutebrowser/extensions/loader.py b/qutebrowser/extensions/loader.py
index 7ae45023b..878dc1fb5 100644
--- a/qutebrowser/extensions/loader.py
+++ b/qutebrowser/extensions/loader.py
@@ -28,7 +28,7 @@ import argparse
import dataclasses
from typing import Callable, Iterator, List, Optional, Set, Tuple
-from PyQt5.QtCore import pyqtSlot
+from PyQt6.QtCore import pyqtSlot
from qutebrowser import components
from qutebrowser.config import config
diff --git a/qutebrowser/keyinput/basekeyparser.py b/qutebrowser/keyinput/basekeyparser.py
index 7e688dab1..ade336249 100644
--- a/qutebrowser/keyinput/basekeyparser.py
+++ b/qutebrowser/keyinput/basekeyparser.py
@@ -24,8 +24,8 @@ import types
import dataclasses
from typing import Mapping, MutableMapping, Optional, Sequence
-from PyQt5.QtCore import pyqtSignal, QObject, Qt
-from PyQt5.QtGui import QKeySequence, QKeyEvent
+from PyQt6.QtCore import pyqtSignal, QObject, Qt
+from PyQt6.QtGui import QKeySequence, QKeyEvent
from qutebrowser.config import config
from qutebrowser.utils import usertypes, log, utils
diff --git a/qutebrowser/keyinput/eventfilter.py b/qutebrowser/keyinput/eventfilter.py
index 4d016bea6..df4ea5847 100644
--- a/qutebrowser/keyinput/eventfilter.py
+++ b/qutebrowser/keyinput/eventfilter.py
@@ -21,8 +21,8 @@
from typing import cast
-from PyQt5.QtCore import pyqtSlot, QObject, QEvent
-from PyQt5.QtGui import QKeyEvent, QWindow
+from PyQt6.QtCore import pyqtSlot, QObject, QEvent
+from PyQt6.QtGui import QKeyEvent, QWindow
from qutebrowser.keyinput import modeman
from qutebrowser.misc import quitter, objects
diff --git a/qutebrowser/keyinput/keyutils.py b/qutebrowser/keyinput/keyutils.py
index 6bd8c99b8..f70a9c36c 100644
--- a/qutebrowser/keyinput/keyutils.py
+++ b/qutebrowser/keyinput/keyutils.py
@@ -35,8 +35,8 @@ import itertools
import dataclasses
from typing import cast, overload, Iterable, Iterator, List, Mapping, Optional, Union
-from PyQt5.QtCore import Qt, QEvent
-from PyQt5.QtGui import QKeySequence, QKeyEvent
+from PyQt6.QtCore import Qt, QEvent
+from PyQt6.QtGui import QKeySequence, QKeyEvent
from qutebrowser.utils import utils
diff --git a/qutebrowser/keyinput/modeman.py b/qutebrowser/keyinput/modeman.py
index 3c47fafe3..e80a33ec3 100644
--- a/qutebrowser/keyinput/modeman.py
+++ b/qutebrowser/keyinput/modeman.py
@@ -23,8 +23,8 @@ import functools
import dataclasses
from typing import Mapping, Callable, MutableMapping, Union, Set, cast
-from PyQt5.QtCore import pyqtSlot, pyqtSignal, Qt, QObject, QEvent
-from PyQt5.QtGui import QKeyEvent
+from PyQt6.QtCore import pyqtSlot, pyqtSignal, Qt, QObject, QEvent
+from PyQt6.QtGui import QKeyEvent
from qutebrowser.commands import runners
from qutebrowser.keyinput import modeparsers, basekeyparser
diff --git a/qutebrowser/keyinput/modeparsers.py b/qutebrowser/keyinput/modeparsers.py
index bd5d4e801..65f0f54bf 100644
--- a/qutebrowser/keyinput/modeparsers.py
+++ b/qutebrowser/keyinput/modeparsers.py
@@ -27,8 +27,8 @@ import traceback
import enum
from typing import TYPE_CHECKING, Sequence
-from PyQt5.QtCore import pyqtSlot, Qt, QObject
-from PyQt5.QtGui import QKeySequence, QKeyEvent
+from PyQt6.QtCore import pyqtSlot, Qt, QObject
+from PyQt6.QtGui import QKeySequence, QKeyEvent
from qutebrowser.browser import hints
from qutebrowser.commands import cmdexc
diff --git a/qutebrowser/mainwindow/mainwindow.py b/qutebrowser/mainwindow/mainwindow.py
index d0723742a..067c5b8c0 100644
--- a/qutebrowser/mainwindow/mainwindow.py
+++ b/qutebrowser/mainwindow/mainwindow.py
@@ -25,10 +25,10 @@ import itertools
import functools
from typing import List, MutableSequence, Optional, Tuple, cast
-from PyQt5.QtCore import (pyqtBoundSignal, pyqtSlot, QRect, QPoint, QTimer, Qt,
+from PyQt6.QtCore import (pyqtBoundSignal, pyqtSlot, QRect, QPoint, QTimer, Qt,
QCoreApplication, QEventLoop, QByteArray)
-from PyQt5.QtWidgets import QWidget, QVBoxLayout, QSizePolicy
-from PyQt5.QtGui import QPalette
+from PyQt6.QtWidgets import QWidget, QVBoxLayout, QSizePolicy
+from PyQt6.QtGui import QPalette
from qutebrowser.commands import runners
from qutebrowser.api import cmdutils
diff --git a/qutebrowser/mainwindow/messageview.py b/qutebrowser/mainwindow/messageview.py
index 58fcb3683..e4906badd 100644
--- a/qutebrowser/mainwindow/messageview.py
+++ b/qutebrowser/mainwindow/messageview.py
@@ -21,8 +21,8 @@
from typing import MutableSequence, Optional
-from PyQt5.QtCore import pyqtSlot, pyqtSignal, QTimer, Qt
-from PyQt5.QtWidgets import QWidget, QVBoxLayout, QLabel, QSizePolicy
+from PyQt6.QtCore import pyqtSlot, pyqtSignal, QTimer, Qt
+from PyQt6.QtWidgets import QWidget, QVBoxLayout, QLabel, QSizePolicy
from qutebrowser.config import config, stylesheet
from qutebrowser.utils import usertypes
diff --git a/qutebrowser/mainwindow/prompt.py b/qutebrowser/mainwindow/prompt.py
index c8cbe572b..9ba02b93e 100644
--- a/qutebrowser/mainwindow/prompt.py
+++ b/qutebrowser/mainwindow/prompt.py
@@ -26,9 +26,9 @@ import functools
import dataclasses
from typing import Deque, MutableSequence, Optional, cast
-from PyQt5.QtCore import (pyqtSlot, pyqtSignal, Qt, QTimer, QDir, QModelIndex,
+from PyQt6.QtCore import (pyqtSlot, pyqtSignal, Qt, QTimer, QDir, QModelIndex,
QItemSelectionModel, QObject, QEventLoop)
-from PyQt5.QtWidgets import (QWidget, QGridLayout, QVBoxLayout, QLineEdit,
+from PyQt6.QtWidgets import (QWidget, QGridLayout, QVBoxLayout, QLineEdit,
QLabel, QFileSystemModel, QTreeView, QSizePolicy,
QSpacerItem)
diff --git a/qutebrowser/mainwindow/statusbar/bar.py b/qutebrowser/mainwindow/statusbar/bar.py
index 8bad290be..3f881a3d2 100644
--- a/qutebrowser/mainwindow/statusbar/bar.py
+++ b/qutebrowser/mainwindow/statusbar/bar.py
@@ -22,9 +22,9 @@
import enum
import dataclasses
-from PyQt5.QtCore import (pyqtSignal, pyqtSlot, # type: ignore[attr-defined]
+from PyQt6.QtCore import (pyqtSignal, pyqtSlot, # type: ignore[attr-defined]
pyqtProperty, Qt, QSize, QTimer)
-from PyQt5.QtWidgets import QWidget, QHBoxLayout, QStackedLayout, QSizePolicy
+from PyQt6.QtWidgets import QWidget, QHBoxLayout, QStackedLayout, QSizePolicy
from qutebrowser.browser import browsertab
from qutebrowser.config import config, stylesheet
diff --git a/qutebrowser/mainwindow/statusbar/command.py b/qutebrowser/mainwindow/statusbar/command.py
index 92408d34f..fe90c216d 100644
--- a/qutebrowser/mainwindow/statusbar/command.py
+++ b/qutebrowser/mainwindow/statusbar/command.py
@@ -20,9 +20,9 @@
"""The commandline in the statusbar."""
-from PyQt5.QtCore import pyqtSignal, pyqtSlot, Qt, QSize
-from PyQt5.QtGui import QKeyEvent
-from PyQt5.QtWidgets import QSizePolicy, QWidget
+from PyQt6.QtCore import pyqtSignal, pyqtSlot, Qt, QSize
+from PyQt6.QtGui import QKeyEvent
+from PyQt6.QtWidgets import QSizePolicy, QWidget
from qutebrowser.keyinput import modeman, modeparsers
from qutebrowser.api import cmdutils
diff --git a/qutebrowser/mainwindow/statusbar/keystring.py b/qutebrowser/mainwindow/statusbar/keystring.py
index 590dbda93..70bc2f1a9 100644
--- a/qutebrowser/mainwindow/statusbar/keystring.py
+++ b/qutebrowser/mainwindow/statusbar/keystring.py
@@ -19,7 +19,7 @@
"""Keychain string displayed in the statusbar."""
-from PyQt5.QtCore import pyqtSlot
+from PyQt6.QtCore import pyqtSlot
from qutebrowser.mainwindow.statusbar import textbase
from qutebrowser.utils import usertypes
diff --git a/qutebrowser/mainwindow/statusbar/percentage.py b/qutebrowser/mainwindow/statusbar/percentage.py
index 122a4d4b4..b16112e7e 100644
--- a/qutebrowser/mainwindow/statusbar/percentage.py
+++ b/qutebrowser/mainwindow/statusbar/percentage.py
@@ -19,7 +19,7 @@
"""Scroll percentage displayed in the statusbar."""
-from PyQt5.QtCore import pyqtSlot, Qt
+from PyQt6.QtCore import pyqtSlot, Qt
from qutebrowser.mainwindow.statusbar import textbase
from qutebrowser.misc import throttle
diff --git a/qutebrowser/mainwindow/statusbar/progress.py b/qutebrowser/mainwindow/statusbar/progress.py
index 9d56cd03f..0fad084a0 100644
--- a/qutebrowser/mainwindow/statusbar/progress.py
+++ b/qutebrowser/mainwindow/statusbar/progress.py
@@ -19,8 +19,8 @@
"""The progress bar in the statusbar."""
-from PyQt5.QtCore import pyqtSlot, QSize
-from PyQt5.QtWidgets import QProgressBar, QSizePolicy
+from PyQt6.QtCore import pyqtSlot, QSize
+from PyQt6.QtWidgets import QProgressBar, QSizePolicy
from qutebrowser.config import stylesheet
from qutebrowser.utils import utils, usertypes
diff --git a/qutebrowser/mainwindow/statusbar/tabindex.py b/qutebrowser/mainwindow/statusbar/tabindex.py
index 635d3817b..ee1b3e6cd 100644
--- a/qutebrowser/mainwindow/statusbar/tabindex.py
+++ b/qutebrowser/mainwindow/statusbar/tabindex.py
@@ -19,7 +19,7 @@
"""TabIndex displayed in the statusbar."""
-from PyQt5.QtCore import pyqtSlot
+from PyQt6.QtCore import pyqtSlot
from qutebrowser.mainwindow.statusbar import textbase
diff --git a/qutebrowser/mainwindow/statusbar/textbase.py b/qutebrowser/mainwindow/statusbar/textbase.py
index cb454b902..3bce38782 100644
--- a/qutebrowser/mainwindow/statusbar/textbase.py
+++ b/qutebrowser/mainwindow/statusbar/textbase.py
@@ -19,9 +19,9 @@
"""Base text widgets for statusbar."""
-from PyQt5.QtCore import Qt
-from PyQt5.QtWidgets import QLabel, QSizePolicy
-from PyQt5.QtGui import QPainter
+from PyQt6.QtCore import Qt
+from PyQt6.QtWidgets import QLabel, QSizePolicy
+from PyQt6.QtGui import QPainter
from qutebrowser.utils import qtutils, utils
diff --git a/qutebrowser/mainwindow/statusbar/url.py b/qutebrowser/mainwindow/statusbar/url.py
index 99818e284..f05e45d09 100644
--- a/qutebrowser/mainwindow/statusbar/url.py
+++ b/qutebrowser/mainwindow/statusbar/url.py
@@ -21,7 +21,7 @@
import enum
-from PyQt5.QtCore import (pyqtSlot, pyqtProperty, # type: ignore[attr-defined]
+from PyQt6.QtCore import (pyqtSlot, pyqtProperty, # type: ignore[attr-defined]
QUrl)
from qutebrowser.mainwindow.statusbar import textbase
diff --git a/qutebrowser/mainwindow/tabbedbrowser.py b/qutebrowser/mainwindow/tabbedbrowser.py
index e081284ee..c9017f548 100644
--- a/qutebrowser/mainwindow/tabbedbrowser.py
+++ b/qutebrowser/mainwindow/tabbedbrowser.py
@@ -27,8 +27,8 @@ import dataclasses
from typing import (
Any, Deque, List, Mapping, MutableMapping, MutableSequence, Optional, Tuple)
-from PyQt5.QtWidgets import QSizePolicy, QWidget, QApplication
-from PyQt5.QtCore import pyqtSignal, pyqtSlot, QTimer, QUrl
+from PyQt6.QtWidgets import QSizePolicy, QWidget, QApplication
+from PyQt6.QtCore import pyqtSignal, pyqtSlot, QTimer, QUrl
from qutebrowser.config import config
from qutebrowser.keyinput import modeman
diff --git a/qutebrowser/mainwindow/tabwidget.py b/qutebrowser/mainwindow/tabwidget.py
index 7983127d5..30cd39570 100644
--- a/qutebrowser/mainwindow/tabwidget.py
+++ b/qutebrowser/mainwindow/tabwidget.py
@@ -24,12 +24,12 @@ import contextlib
import dataclasses
from typing import Optional, cast
-from PyQt5.QtCore import (pyqtSignal, pyqtSlot, Qt, QSize, QRect, QPoint,
+from PyQt6.QtCore import (pyqtSignal, pyqtSlot, Qt, QSize, QRect, QPoint,
QTimer, QUrl)
-from PyQt5.QtWidgets import (QTabWidget, QTabBar, QSizePolicy, QCommonStyle,
+from PyQt6.QtWidgets import (QTabWidget, QTabBar, QSizePolicy, QCommonStyle,
QStyle, QStylePainter, QStyleOptionTab,
QStyleFactory, QWidget)
-from PyQt5.QtGui import QIcon, QPalette, QColor
+from PyQt6.QtGui import QIcon, QPalette, QColor
from qutebrowser.utils import qtutils, objreg, utils, usertypes, log
from qutebrowser.config import config, stylesheet
diff --git a/qutebrowser/mainwindow/windowundo.py b/qutebrowser/mainwindow/windowundo.py
index ea7e1a987..ba960ac65 100644
--- a/qutebrowser/mainwindow/windowundo.py
+++ b/qutebrowser/mainwindow/windowundo.py
@@ -23,7 +23,7 @@ import collections
import dataclasses
from typing import MutableSequence, cast, TYPE_CHECKING
-from PyQt5.QtCore import QObject, QByteArray
+from PyQt6.QtCore import QObject, QByteArray
from qutebrowser.config import config
from qutebrowser.mainwindow import mainwindow
diff --git a/qutebrowser/misc/autoupdate.py b/qutebrowser/misc/autoupdate.py
index 73afdde54..68a1c6956 100644
--- a/qutebrowser/misc/autoupdate.py
+++ b/qutebrowser/misc/autoupdate.py
@@ -21,7 +21,7 @@
import json
-from PyQt5.QtCore import pyqtSignal, pyqtSlot, QObject, QUrl
+from PyQt6.QtCore import pyqtSignal, pyqtSlot, QObject, QUrl
from qutebrowser.misc import httpclient
diff --git a/qutebrowser/misc/backendproblem.py b/qutebrowser/misc/backendproblem.py
index 3e14719e0..9a490aac9 100644
--- a/qutebrowser/misc/backendproblem.py
+++ b/qutebrowser/misc/backendproblem.py
@@ -29,10 +29,10 @@ import argparse
import dataclasses
from typing import Any, List, Sequence, Tuple, Optional
-from PyQt5.QtCore import Qt
-from PyQt5.QtWidgets import (QDialog, QPushButton, QHBoxLayout, QVBoxLayout, QLabel,
+from PyQt6.QtCore import Qt
+from PyQt6.QtWidgets import (QDialog, QPushButton, QHBoxLayout, QVBoxLayout, QLabel,
QMessageBox, QWidget)
-from PyQt5.QtNetwork import QSslSocket
+from PyQt6.QtNetwork import QSslSocket
from qutebrowser.config import config, configfiles
from qutebrowser.utils import (usertypes, version, qtutils, log, utils,
@@ -270,9 +270,9 @@ class _BackendProblemChecker:
results = _BackendImports()
try:
- from PyQt5 import QtWebKit
- from PyQt5.QtWebKit import qWebKitVersion
- from PyQt5 import QtWebKitWidgets
+ from PyQt6 import QtWebKit
+ from PyQt6.QtWebKit import qWebKitVersion
+ from PyQt6 import QtWebKitWidgets
except (ImportError, ValueError) as e:
results.webkit_error = str(e)
else:
@@ -280,7 +280,7 @@ class _BackendProblemChecker:
results.webkit_error = "Unsupported legacy QtWebKit found"
try:
- from PyQt5 import QtWebEngineWidgets
+ from PyQt6 import QtWebEngineWidgets
except (ImportError, ValueError) as e:
results.webengine_error = str(e)
diff --git a/qutebrowser/misc/cmdhistory.py b/qutebrowser/misc/cmdhistory.py
index e4218832c..0ba328317 100644
--- a/qutebrowser/misc/cmdhistory.py
+++ b/qutebrowser/misc/cmdhistory.py
@@ -21,7 +21,7 @@
from typing import MutableSequence
-from PyQt5.QtCore import pyqtSlot, pyqtSignal, QObject
+from PyQt6.QtCore import pyqtSlot, pyqtSignal, QObject
from qutebrowser.utils import usertypes, log, standarddir, objreg
from qutebrowser.misc import lineparser
diff --git a/qutebrowser/misc/consolewidget.py b/qutebrowser/misc/consolewidget.py
index a826a4ed8..ad78037b1 100644
--- a/qutebrowser/misc/consolewidget.py
+++ b/qutebrowser/misc/consolewidget.py
@@ -23,9 +23,9 @@ import sys
import code
from typing import MutableSequence
-from PyQt5.QtCore import pyqtSignal, pyqtSlot, Qt
-from PyQt5.QtWidgets import QTextEdit, QWidget, QVBoxLayout, QApplication
-from PyQt5.QtGui import QTextCursor
+from PyQt6.QtCore import pyqtSignal, pyqtSlot, Qt
+from PyQt6.QtWidgets import QTextEdit, QWidget, QVBoxLayout, QApplication
+from PyQt6.QtGui import QTextCursor
from qutebrowser.config import stylesheet
from qutebrowser.misc import cmdhistory, miscwidgets
diff --git a/qutebrowser/misc/crashdialog.py b/qutebrowser/misc/crashdialog.py
index 430553433..c04220747 100644
--- a/qutebrowser/misc/crashdialog.py
+++ b/qutebrowser/misc/crashdialog.py
@@ -30,8 +30,8 @@ import datetime
import enum
from typing import List, Tuple
-from PyQt5.QtCore import pyqtSlot, Qt, QSize
-from PyQt5.QtWidgets import (QDialog, QLabel, QTextEdit, QPushButton,
+from PyQt6.QtCore import pyqtSlot, Qt, QSize
+from PyQt6.QtWidgets import (QDialog, QLabel, QTextEdit, QPushButton,
QVBoxLayout, QHBoxLayout, QCheckBox,
QDialogButtonBox, QMessageBox)
diff --git a/qutebrowser/misc/crashsignal.py b/qutebrowser/misc/crashsignal.py
index 45c52f54c..6b7cdf984 100644
--- a/qutebrowser/misc/crashsignal.py
+++ b/qutebrowser/misc/crashsignal.py
@@ -32,9 +32,9 @@ import faulthandler
import dataclasses
from typing import TYPE_CHECKING, Optional, MutableMapping, cast, List
-from PyQt5.QtCore import (pyqtSlot, qInstallMessageHandler, QObject,
+from PyQt6.QtCore import (pyqtSlot, qInstallMessageHandler, QObject,
QSocketNotifier, QTimer, QUrl)
-from PyQt5.QtWidgets import QApplication
+from PyQt6.QtWidgets import QApplication
from qutebrowser.api import cmdutils
from qutebrowser.misc import earlyinit, crashdialog, ipc, objects
diff --git a/qutebrowser/misc/earlyinit.py b/qutebrowser/misc/earlyinit.py
index c4ff0bb85..357f8fd3e 100644
--- a/qutebrowser/misc/earlyinit.py
+++ b/qutebrowser/misc/earlyinit.py
@@ -78,8 +78,8 @@ def _die(message, exception=None):
message: The message to display.
exception: The exception object if we're handling an exception.
"""
- from PyQt5.QtWidgets import QApplication, QMessageBox
- from PyQt5.QtCore import Qt
+ from PyQt6.QtWidgets import QApplication, QMessageBox
+ from PyQt6.QtCore import Qt
if (('--debug' in sys.argv or '--no-err-windows' in sys.argv) and
exception is not None):
print(file=sys.stderr)
@@ -132,7 +132,7 @@ def init_faulthandler(fileobj=sys.__stderr__):
def check_pyqt():
"""Check if PyQt core modules (QtCore/QtWidgets) are installed."""
- for name in ['PyQt5.QtCore', 'PyQt5.QtWidgets']:
+ for name in ['PyQt6.QtCore', 'PyQt6.QtWidgets']:
try:
importlib.import_module(name)
except ImportError as e:
@@ -156,10 +156,10 @@ def check_pyqt():
def qt_version(qversion=None, qt_version_str=None):
"""Get a Qt version string based on the runtime/compiled versions."""
if qversion is None:
- from PyQt5.QtCore import qVersion
+ from PyQt6.QtCore import qVersion
qversion = qVersion()
if qt_version_str is None:
- from PyQt5.QtCore import QT_VERSION_STR
+ from PyQt6.QtCore import QT_VERSION_STR
qt_version_str = QT_VERSION_STR
if qversion != qt_version_str:
@@ -170,9 +170,9 @@ def qt_version(qversion=None, qt_version_str=None):
def check_qt_version():
"""Check if the Qt version is recent enough."""
- from PyQt5.QtCore import QT_VERSION, PYQT_VERSION, PYQT_VERSION_STR
+ from PyQt6.QtCore import QT_VERSION, PYQT_VERSION, PYQT_VERSION_STR
try:
- from PyQt5.QtCore import QVersionNumber, QLibraryInfo
+ from PyQt6.QtCore import QVersionNumber, QLibraryInfo
qt_ver = QLibraryInfo.version().normalized()
recent_qt_runtime = qt_ver >= QVersionNumber(5, 12) # type: ignore[operator]
except (ImportError, AttributeError):
@@ -194,7 +194,7 @@ def check_qt_version():
def check_ssl_support():
"""Check if SSL support is available."""
try:
- from PyQt5.QtNetwork import QSslSocket # pylint: disable=unused-import
+ from PyQt6.QtNetwork import QSslSocket # pylint: disable=unused-import
except ImportError:
_die("Fatal error: Your Qt is built without SSL support.")
@@ -232,10 +232,10 @@ def check_libraries():
'jinja2': _missing_str("jinja2"),
'yaml': _missing_str("PyYAML"),
'dataclasses': _missing_str("dataclasses"),
- 'PyQt5.QtQml': _missing_str("PyQt5.QtQml"),
- 'PyQt5.QtSql': _missing_str("PyQt5.QtSql"),
- 'PyQt5.QtOpenGL': _missing_str("PyQt5.QtOpenGL"),
- 'PyQt5.QtDBus': _missing_str("PyQt5.QtDBus"),
+ 'PyQt6.QtQml': _missing_str("PyQt6.QtQml"),
+ 'PyQt6.QtSql': _missing_str("PyQt6.QtSql"),
+ 'PyQt6.QtOpenGL': _missing_str("PyQt6.QtOpenGL"),
+ 'PyQt6.QtDBus': _missing_str("PyQt6.QtDBus"),
}
if sys.version_info < (3, 9):
# Backport required
@@ -249,7 +249,7 @@ def configure_pyqt():
Doing this means we can't use the interactive shell anymore (which we don't
anyways), but we can use pdb instead.
"""
- from PyQt5 import QtCore
+ from PyQt6 import QtCore
QtCore.pyqtRemoveInputHook()
try:
QtCore.pyqt5_enable_new_onexit_scheme(True) # type: ignore[attr-defined]
@@ -290,7 +290,7 @@ def webengine_early_import():
error messages in backendproblem.py are accurate.
"""
try:
- from PyQt5 import QtWebEngineWidgets # pylint: disable=unused-import
+ from PyQt6 import QtWebEngineWidgets # pylint: disable=unused-import
except ImportError:
pass
diff --git a/qutebrowser/misc/editor.py b/qutebrowser/misc/editor.py
index d561a7b96..5d61afd57 100644
--- a/qutebrowser/misc/editor.py
+++ b/qutebrowser/misc/editor.py
@@ -22,7 +22,7 @@
import os
import tempfile
-from PyQt5.QtCore import (pyqtSignal, pyqtSlot, QObject, QProcess,
+from PyQt6.QtCore import (pyqtSignal, pyqtSlot, QObject, QProcess,
QFileSystemWatcher)
from qutebrowser.config import config
diff --git a/qutebrowser/misc/elf.py b/qutebrowser/misc/elf.py
index bf824880a..ddda87972 100644
--- a/qutebrowser/misc/elf.py
+++ b/qutebrowser/misc/elf.py
@@ -32,7 +32,7 @@ to the QtWebEngine version (as that can be older/newer). Since there will be a
QtWebEngine 5.15.3 release, but not Qt itself (due to LTS licensing restrictions), this
isn't a reliable source of information.
-b) Look at the PyQtWebEngine version (PyQt5.QtWebEngine.PYQT_WEBENGINE_VERSION_STR).
+b) Look at the PyQtWebEngine version (PyQt6.QtWebEngine.PYQT_WEBENGINE_VERSION_STR).
This is a good first guess (especially for our Windows/macOS releases), but still isn't
certain. Linux distributions often push a newer QtWebEngine before the corresponding
PyQtWebEngine release, and some (*cough* Gentoo *cough*) even publish QtWebEngine
@@ -67,7 +67,7 @@ import mmap
import pathlib
from typing import Any, IO, ClassVar, Dict, Optional, Tuple, cast
-from PyQt5.QtCore import QLibraryInfo
+from PyQt6.QtCore import QLibraryInfo
from qutebrowser.utils import log, version
diff --git a/qutebrowser/misc/guiprocess.py b/qutebrowser/misc/guiprocess.py
index e5ccd1b8b..640d7f1e6 100644
--- a/qutebrowser/misc/guiprocess.py
+++ b/qutebrowser/misc/guiprocess.py
@@ -24,7 +24,7 @@ import locale
import shlex
from typing import Mapping, Sequence, Dict, Optional
-from PyQt5.QtCore import (pyqtSlot, pyqtSignal, QObject, QProcess,
+from PyQt6.QtCore import (pyqtSlot, pyqtSignal, QObject, QProcess,
QProcessEnvironment, QByteArray, QUrl, Qt)
from qutebrowser.utils import message, log, utils, usertypes
diff --git a/qutebrowser/misc/httpclient.py b/qutebrowser/misc/httpclient.py
index d4a8e7673..4cd825814 100644
--- a/qutebrowser/misc/httpclient.py
+++ b/qutebrowser/misc/httpclient.py
@@ -23,8 +23,8 @@ import functools
import urllib.parse
from typing import MutableMapping
-from PyQt5.QtCore import pyqtSignal, QObject, QTimer
-from PyQt5.QtNetwork import (QNetworkAccessManager, QNetworkRequest,
+from PyQt6.QtCore import pyqtSignal, QObject, QTimer
+from PyQt6.QtNetwork import (QNetworkAccessManager, QNetworkRequest,
QNetworkReply)
from qutebrowser.utils import log
diff --git a/qutebrowser/misc/ipc.py b/qutebrowser/misc/ipc.py
index 77b9e8f6c..06daf2d7f 100644
--- a/qutebrowser/misc/ipc.py
+++ b/qutebrowser/misc/ipc.py
@@ -26,8 +26,8 @@ import getpass
import binascii
import hashlib
-from PyQt5.QtCore import pyqtSignal, pyqtSlot, QObject, Qt
-from PyQt5.QtNetwork import QLocalSocket, QLocalServer, QAbstractSocket
+from PyQt6.QtCore import pyqtSignal, pyqtSlot, QObject, Qt
+from PyQt6.QtNetwork import QLocalSocket, QLocalServer, QAbstractSocket
import qutebrowser
from qutebrowser.utils import log, usertypes, error, standarddir, utils
diff --git a/qutebrowser/misc/keyhintwidget.py b/qutebrowser/misc/keyhintwidget.py
index 4fcef72e4..392b03ae4 100644
--- a/qutebrowser/misc/keyhintwidget.py
+++ b/qutebrowser/misc/keyhintwidget.py
@@ -28,8 +28,8 @@ import html
import fnmatch
import re
-from PyQt5.QtWidgets import QLabel, QSizePolicy
-from PyQt5.QtCore import pyqtSlot, pyqtSignal, Qt
+from PyQt6.QtWidgets import QLabel, QSizePolicy
+from PyQt6.QtCore import pyqtSlot, pyqtSignal, Qt
from qutebrowser.config import config, stylesheet
from qutebrowser.utils import utils, usertypes
diff --git a/qutebrowser/misc/lineparser.py b/qutebrowser/misc/lineparser.py
index 9d35692e9..a0ed70608 100644
--- a/qutebrowser/misc/lineparser.py
+++ b/qutebrowser/misc/lineparser.py
@@ -24,7 +24,7 @@ import os.path
import contextlib
from typing import Sequence
-from PyQt5.QtCore import pyqtSlot, pyqtSignal, QObject
+from PyQt6.QtCore import pyqtSlot, pyqtSignal, QObject
from qutebrowser.utils import log, utils, qtutils
from qutebrowser.config import config
diff --git a/qutebrowser/misc/miscwidgets.py b/qutebrowser/misc/miscwidgets.py
index b89288fc7..1dfbdff6a 100644
--- a/qutebrowser/misc/miscwidgets.py
+++ b/qutebrowser/misc/miscwidgets.py
@@ -21,11 +21,11 @@
from typing import Optional
-from PyQt5.QtCore import pyqtSlot, pyqtSignal, Qt, QSize, QTimer
-from PyQt5.QtWidgets import (QLineEdit, QWidget, QHBoxLayout, QLabel,
+from PyQt6.QtCore import pyqtSlot, pyqtSignal, Qt, QSize, QTimer
+from PyQt6.QtWidgets import (QLineEdit, QWidget, QHBoxLayout, QLabel,
QStyleOption, QStyle, QLayout, QApplication,
QSplitter)
-from PyQt5.QtGui import QValidator, QPainter, QResizeEvent
+from PyQt6.QtGui import QValidator, QPainter, QResizeEvent
from qutebrowser.config import config, configfiles
from qutebrowser.utils import utils, log, usertypes
diff --git a/qutebrowser/misc/msgbox.py b/qutebrowser/misc/msgbox.py
index 9d5fbf601..e75f0af87 100644
--- a/qutebrowser/misc/msgbox.py
+++ b/qutebrowser/misc/msgbox.py
@@ -19,8 +19,8 @@
"""Convenience functions to show message boxes."""
-from PyQt5.QtCore import Qt
-from PyQt5.QtWidgets import QMessageBox
+from PyQt6.QtCore import Qt
+from PyQt6.QtWidgets import QMessageBox
from qutebrowser.misc import objects
from qutebrowser.utils import log
diff --git a/qutebrowser/misc/objects.py b/qutebrowser/misc/objects.py
index 00a1ef35d..28e4d7b4f 100644
--- a/qutebrowser/misc/objects.py
+++ b/qutebrowser/misc/objects.py
@@ -26,7 +26,7 @@ import argparse
from typing import TYPE_CHECKING, Any, Dict, Set, Union, cast
if TYPE_CHECKING:
- from PyQt5.QtWidgets import QApplication
+ from PyQt6.QtWidgets import QApplication
from qutebrowser.utils import usertypes
from qutebrowser.commands import command
diff --git a/qutebrowser/misc/pastebin.py b/qutebrowser/misc/pastebin.py
index a4e0a196f..8f58906a8 100644
--- a/qutebrowser/misc/pastebin.py
+++ b/qutebrowser/misc/pastebin.py
@@ -21,7 +21,7 @@
import urllib.parse
-from PyQt5.QtCore import pyqtSignal, pyqtSlot, QObject, QUrl
+from PyQt6.QtCore import pyqtSignal, pyqtSlot, QObject, QUrl
class PastebinClient(QObject):
diff --git a/qutebrowser/misc/quitter.py b/qutebrowser/misc/quitter.py
index a51891685..f8e20934f 100644
--- a/qutebrowser/misc/quitter.py
+++ b/qutebrowser/misc/quitter.py
@@ -31,7 +31,7 @@ import functools
import subprocess
from typing import Iterable, Mapping, MutableSequence, Sequence, cast
-from PyQt5.QtCore import QObject, pyqtSignal, QTimer
+from PyQt6.QtCore import QObject, pyqtSignal, QTimer
try:
import hunter
except ImportError:
diff --git a/qutebrowser/misc/savemanager.py b/qutebrowser/misc/savemanager.py
index ee22ba14d..f2eb8307f 100644
--- a/qutebrowser/misc/savemanager.py
+++ b/qutebrowser/misc/savemanager.py
@@ -23,7 +23,7 @@ import os.path
import collections
from typing import MutableMapping
-from PyQt5.QtCore import pyqtSlot, QObject, QTimer
+from PyQt6.QtCore import pyqtSlot, QObject, QTimer
from qutebrowser.config import config
from qutebrowser.api import cmdutils
diff --git a/qutebrowser/misc/sessions.py b/qutebrowser/misc/sessions.py
index 11af329e0..d791cc1a0 100644
--- a/qutebrowser/misc/sessions.py
+++ b/qutebrowser/misc/sessions.py
@@ -27,7 +27,7 @@ import shutil
import pathlib
from typing import Any, Iterable, MutableMapping, MutableSequence, Optional, Union, cast
-from PyQt5.QtCore import Qt, QUrl, QObject, QPoint, QTimer, QDateTime
+from PyQt6.QtCore import Qt, QUrl, QObject, QPoint, QTimer, QDateTime
import yaml
from qutebrowser.utils import (standarddir, objreg, qtutils, log, message,
diff --git a/qutebrowser/misc/sql.py b/qutebrowser/misc/sql.py
index 814eb2bb0..8d732774e 100644
--- a/qutebrowser/misc/sql.py
+++ b/qutebrowser/misc/sql.py
@@ -25,8 +25,8 @@ import dataclasses
import types
from typing import Any, Dict, Iterator, List, Mapping, MutableSequence, Optional, Type
-from PyQt5.QtCore import QObject, pyqtSignal
-from PyQt5.QtSql import QSqlDatabase, QSqlError, QSqlQuery
+from PyQt6.QtCore import QObject, pyqtSignal
+from PyQt6.QtSql import QSqlDatabase, QSqlError, QSqlQuery
from qutebrowser.qt import sip
from qutebrowser.utils import debug, log
diff --git a/qutebrowser/misc/throttle.py b/qutebrowser/misc/throttle.py
index ac565b68d..fe5b5eda2 100644
--- a/qutebrowser/misc/throttle.py
+++ b/qutebrowser/misc/throttle.py
@@ -23,7 +23,7 @@ import dataclasses
import time
from typing import Any, Callable, Mapping, Optional, Sequence
-from PyQt5.QtCore import QObject
+from PyQt6.QtCore import QObject
from qutebrowser.utils import usertypes
diff --git a/qutebrowser/misc/utilcmds.py b/qutebrowser/misc/utilcmds.py
index 7ba45bdc3..55db4d0ed 100644
--- a/qutebrowser/misc/utilcmds.py
+++ b/qutebrowser/misc/utilcmds.py
@@ -26,8 +26,8 @@ import os
import traceback
from typing import Optional
-from PyQt5.QtCore import QUrl
-from PyQt5.QtWidgets import QApplication
+from PyQt6.QtCore import QUrl
+from PyQt6.QtWidgets import QApplication
from qutebrowser.browser import qutescheme
from qutebrowser.utils import log, objreg, usertypes, message, debug, utils
diff --git a/qutebrowser/qt.py b/qutebrowser/qt.py
index 5e0f80538..8d9262d58 100644
--- a/qutebrowser/qt.py
+++ b/qutebrowser/qt.py
@@ -21,9 +21,9 @@
# pylint: disable=unused-import
-# 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".
+# 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".
try:
- from PyQt5 import sip
+ from PyQt6 import sip
except ImportError:
import sip # type: ignore[import, no-redef]
diff --git a/qutebrowser/resources.py b/qutebrowser/resources.py
index ebe256809..ab170aa9a 100644
--- a/qutebrowser/resources.py
+++ b/qutebrowser/resources.py
@@ -2,11 +2,11 @@
# Resource object code
#
-# Created by: The Resource Compiler for PyQt5 (Qt v5.6.0)
+# Created by: The Resource Compiler for PyQt6 (Qt v5.6.0)
#
# WARNING! All changes made in this file will be lost!
-from PyQt5 import QtCore
+from PyQt6 import QtCore
qt_resource_data = b"\
\x00\x00\x22\xfe\
diff --git a/qutebrowser/utils/debug.py b/qutebrowser/utils/debug.py
index 7d069909a..220618f53 100644
--- a/qutebrowser/utils/debug.py
+++ b/qutebrowser/utils/debug.py
@@ -28,7 +28,7 @@ import types
from typing import (
Any, Callable, List, Mapping, MutableSequence, Optional, Sequence, Type, Union)
-from PyQt5.QtCore import Qt, QEvent, QMetaMethod, QObject, pyqtBoundSignal
+from PyQt6.QtCore import Qt, QEvent, QMetaMethod, QObject, pyqtBoundSignal
from qutebrowser.utils import log, utils, qtutils, objreg
from qutebrowser.misc import objects
diff --git a/qutebrowser/utils/error.py b/qutebrowser/utils/error.py
index a5889f977..1ead83788 100644
--- a/qutebrowser/utils/error.py
+++ b/qutebrowser/utils/error.py
@@ -19,7 +19,7 @@
"""Tools related to error printing/displaying."""
-from PyQt5.QtWidgets import QMessageBox
+from PyQt6.QtWidgets import QMessageBox
from qutebrowser.utils import log, utils
diff --git a/qutebrowser/utils/jinja.py b/qutebrowser/utils/jinja.py
index a44a0235e..ab4876934 100644
--- a/qutebrowser/utils/jinja.py
+++ b/qutebrowser/utils/jinja.py
@@ -29,7 +29,7 @@ from typing import Any, Callable, FrozenSet, Iterator, List, Set, Tuple
import jinja2
import jinja2.nodes
-from PyQt5.QtCore import QUrl
+from PyQt6.QtCore import QUrl
from qutebrowser.utils import utils, urlutils, log, qtutils, resources
from qutebrowser.misc import debugcachestats
diff --git a/qutebrowser/utils/log.py b/qutebrowser/utils/log.py
index 9cd07e2e3..07fb9e108 100644
--- a/qutebrowser/utils/log.py
+++ b/qutebrowser/utils/log.py
@@ -35,7 +35,7 @@ import argparse
from typing import (TYPE_CHECKING, Any, Iterator, Mapping, MutableSequence,
Optional, Set, Tuple, Union)
-from PyQt5 import QtCore
+from PyQt6 import QtCore
# Optional imports
try:
import colorama
diff --git a/qutebrowser/utils/message.py b/qutebrowser/utils/message.py
index 50a438637..406c77f02 100644
--- a/qutebrowser/utils/message.py
+++ b/qutebrowser/utils/message.py
@@ -25,7 +25,7 @@
import traceback
from typing import Any, Callable, Iterable, List, Tuple, Union, Optional
-from PyQt5.QtCore import pyqtSignal, pyqtBoundSignal, QObject
+from PyQt6.QtCore import pyqtSignal, pyqtBoundSignal, QObject
from qutebrowser.utils import usertypes, log
diff --git a/qutebrowser/utils/objreg.py b/qutebrowser/utils/objreg.py
index 0819a5d0a..e46d936b5 100644
--- a/qutebrowser/utils/objreg.py
+++ b/qutebrowser/utils/objreg.py
@@ -25,9 +25,9 @@ import functools
from typing import (TYPE_CHECKING, Any, Callable, MutableMapping, MutableSequence,
Optional, Sequence, Union)
-from PyQt5.QtCore import QObject, QTimer
-from PyQt5.QtWidgets import QApplication
-from PyQt5.QtWidgets import QWidget
+from PyQt6.QtCore import QObject, QTimer
+from PyQt6.QtWidgets import QApplication
+from PyQt6.QtWidgets import QWidget
from qutebrowser.utils import log, usertypes, utils
if TYPE_CHECKING:
diff --git a/qutebrowser/utils/qtutils.py b/qutebrowser/utils/qtutils.py
index ff8983c50..0a46c87f5 100644
--- a/qutebrowser/utils/qtutils.py
+++ b/qutebrowser/utils/qtutils.py
@@ -34,17 +34,17 @@ import contextlib
from typing import (Any, AnyStr, TYPE_CHECKING, BinaryIO, IO, Iterator,
Optional, Union, Tuple, cast)
-from PyQt5.QtCore import (qVersion, QEventLoop, QDataStream, QByteArray,
+from PyQt6.QtCore import (qVersion, QEventLoop, QDataStream, QByteArray,
QIODevice, QFileDevice, QSaveFile, QT_VERSION_STR,
PYQT_VERSION_STR, QObject, QUrl)
-from PyQt5.QtGui import QColor
+from PyQt6.QtGui import QColor
try:
- from PyQt5.QtWebKit import qWebKitVersion
+ from PyQt6.QtWebKit import qWebKitVersion
except ImportError: # pragma: no cover
qWebKitVersion = None # type: ignore[assignment] # noqa: N816
if TYPE_CHECKING:
- from PyQt5.QtWebKit import QWebHistory
- from PyQt5.QtWebEngineWidgets import QWebEngineHistory
+ from PyQt6.QtWebKit import QWebHistory
+ from PyQt6.QtWebEngineWidgets import QWebEngineHistory
from qutebrowser.misc import objects
from qutebrowser.utils import usertypes, utils
diff --git a/qutebrowser/utils/standarddir.py b/qutebrowser/utils/standarddir.py
index f1bd01a5f..ccb61436f 100644
--- a/qutebrowser/utils/standarddir.py
+++ b/qutebrowser/utils/standarddir.py
@@ -27,8 +27,8 @@ import enum
import argparse
from typing import Iterator, Optional
-from PyQt5.QtCore import QStandardPaths
-from PyQt5.QtWidgets import QApplication
+from PyQt6.QtCore import QStandardPaths
+from PyQt6.QtWidgets import QApplication
from qutebrowser.utils import log, debug, utils, version
diff --git a/qutebrowser/utils/urlmatch.py b/qutebrowser/utils/urlmatch.py
index f14c2083d..7212e3c05 100644
--- a/qutebrowser/utils/urlmatch.py
+++ b/qutebrowser/utils/urlmatch.py
@@ -34,7 +34,7 @@ import fnmatch
import urllib.parse
from typing import Any, Optional, Tuple
-from PyQt5.QtCore import QUrl
+from PyQt6.QtCore import QUrl
from qutebrowser.utils import utils, qtutils
diff --git a/qutebrowser/utils/urlutils.py b/qutebrowser/utils/urlutils.py
index 002f10411..5f7afdc0e 100644
--- a/qutebrowser/utils/urlutils.py
+++ b/qutebrowser/utils/urlutils.py
@@ -28,8 +28,8 @@ import urllib.parse
import mimetypes
from typing import Optional, Tuple, Union, Iterable
-from PyQt5.QtCore import QUrl
-from PyQt5.QtNetwork import QHostInfo, QHostAddress, QNetworkProxy
+from PyQt6.QtCore import QUrl
+from PyQt6.QtNetwork import QHostInfo, QHostAddress, QNetworkProxy
from qutebrowser.api import cmdutils
from qutebrowser.config import config
diff --git a/qutebrowser/utils/usertypes.py b/qutebrowser/utils/usertypes.py
index ee0f899cc..69be8f574 100644
--- a/qutebrowser/utils/usertypes.py
+++ b/qutebrowser/utils/usertypes.py
@@ -25,8 +25,8 @@ import enum
import dataclasses
from typing import Optional, Sequence, TypeVar, Union
-from PyQt5.QtCore import pyqtSignal, pyqtSlot, QObject, QTimer
-from PyQt5.QtCore import QUrl
+from PyQt6.QtCore import pyqtSignal, pyqtSlot, QObject, QTimer
+from PyQt6.QtCore import QUrl
from qutebrowser.utils import log, qtutils, utils
diff --git a/qutebrowser/utils/utils.py b/qutebrowser/utils/utils.py
index a56769255..360a4d128 100644
--- a/qutebrowser/utils/utils.py
+++ b/qutebrowser/utils/utils.py
@@ -44,9 +44,9 @@ except ImportError: # pragma: no cover
"""Empty stub at runtime."""
-from PyQt5.QtCore import QUrl, QVersionNumber, QRect
-from PyQt5.QtGui import QClipboard, QDesktopServices
-from PyQt5.QtWidgets import QApplication
+from PyQt6.QtCore import QUrl, QVersionNumber, QRect
+from PyQt6.QtGui import QClipboard, QDesktopServices
+from PyQt6.QtWidgets import QApplication
import yaml
try:
diff --git a/qutebrowser/utils/version.py b/qutebrowser/utils/version.py
index 8cd244fca..488ddfa54 100644
--- a/qutebrowser/utils/version.py
+++ b/qutebrowser/utils/version.py
@@ -38,18 +38,18 @@ from typing import (Mapping, Optional, Sequence, Tuple, ClassVar, Dict, cast,
TYPE_CHECKING)
-from PyQt5.QtCore import PYQT_VERSION_STR, QLibraryInfo, qVersion
-from PyQt5.QtNetwork import QSslSocket
-from PyQt5.QtGui import (QOpenGLContext, QOpenGLVersionProfile,
+from PyQt6.QtCore import PYQT_VERSION_STR, QLibraryInfo, qVersion
+from PyQt6.QtNetwork import QSslSocket
+from PyQt6.QtGui import (QOpenGLContext, QOpenGLVersionProfile,
QOffscreenSurface)
-from PyQt5.QtWidgets import QApplication
+from PyQt6.QtWidgets import QApplication
try:
- from PyQt5.QtWebKit import qWebKitVersion
+ from PyQt6.QtWebKit import qWebKitVersion
except ImportError: # pragma: no cover
qWebKitVersion = None # type: ignore[assignment] # noqa: N816
try:
- from PyQt5.QtWebEngine import PYQT_WEBENGINE_VERSION_STR
+ from PyQt6.QtWebEngine import PYQT_WEBENGINE_VERSION_STR
except ImportError: # pragma: no cover
# Added in PyQt 5.13
PYQT_WEBENGINE_VERSION_STR = None # type: ignore[assignment]
@@ -404,9 +404,9 @@ MODULE_INFO: Mapping[str, ModuleInfo] = collections.OrderedDict([
('pygments', ['__version__']),
('yaml', ['__version__']),
('adblock', ['__version__'], "0.3.2"),
- ('PyQt5.QtWebEngineWidgets', []),
- ('PyQt5.QtWebEngine', ['PYQT_WEBENGINE_VERSION_STR']),
- ('PyQt5.QtWebKitWidgets', []),
+ ('PyQt6.QtWebEngineWidgets', []),
+ ('PyQt6.QtWebEngine', ['PYQT_WEBENGINE_VERSION_STR']),
+ ('PyQt6.QtWebKitWidgets', []),
]
])
@@ -699,7 +699,7 @@ class WebEngineVersions:
# be using QtWebEngine 5.15.3 (87-based). For now, we play it safe, and only
# do this kind of "downgrade" when we know we're using PyInstaller.
frozen = hasattr(sys, 'frozen')
- log.misc.debug(f"PyQt5 >= 5.15.3, frozen {frozen}")
+ log.misc.debug(f"PyQt6 >= 5.15.3, frozen {frozen}")
if frozen:
parsed = utils.VersionNumber(5, 15, 2)
diff --git a/scripts/dev/build_pyqt_wheel.py b/scripts/dev/build_pyqt_wheel.py
index b63331341..36fc9cbe4 100644
--- a/scripts/dev/build_pyqt_wheel.py
+++ b/scripts/dev/build_pyqt_wheel.py
@@ -78,8 +78,8 @@ def main():
utils.print_title("Downloading wheels")
subprocess.run([sys.executable, '-m', 'pip', 'download',
- '--no-deps', '--only-binary', 'PyQt5,PyQtWebEngine',
- 'PyQt5', 'PyQtWebEngine'], check=True)
+ '--no-deps', '--only-binary', 'PyQt6,PyQtWebEngine',
+ 'PyQt6', 'PyQtWebEngine'], check=True)
utils.print_title("Patching wheels")
input_files = wheels_dir.glob('*.whl')
diff --git a/scripts/dev/build_release.py b/scripts/dev/build_release.py
index a1c6646eb..b849bc666 100755
--- a/scripts/dev/build_release.py
+++ b/scripts/dev/build_release.py
@@ -226,7 +226,7 @@ def patch_mac_app():
plistlib.dump(plist_data, f)
# Replace some duplicate files by symlinks
- framework_path = os.path.join(app_path, 'Contents', 'MacOS', 'PyQt5',
+ framework_path = os.path.join(app_path, 'Contents', 'MacOS', 'PyQt6',
'Qt', 'lib', 'QtWebEngineCore.framework')
core_lib = os.path.join(framework_path, 'Versions', '5', 'QtWebEngineCore')
diff --git a/scripts/dev/recompile_requirements.py b/scripts/dev/recompile_requirements.py
index d8ed9974b..133735644 100644
--- a/scripts/dev/recompile_requirements.py
+++ b/scripts/dev/recompile_requirements.py
@@ -138,15 +138,15 @@ CHANGELOG_URLS = {
'cryptography': 'https://cryptography.io/en/latest/changelog.html',
'toml': 'https://github.com/uiri/toml/releases',
'tomli': 'https://github.com/hukkin/tomli/blob/master/CHANGELOG.md',
- 'PyQt5': 'https://www.riverbankcomputing.com/news',
- 'PyQt5-Qt': 'https://www.riverbankcomputing.com/news',
- 'PyQt5-Qt5': 'https://www.riverbankcomputing.com/news',
+ 'PyQt6': 'https://www.riverbankcomputing.com/news',
+ 'PyQt6-Qt': 'https://www.riverbankcomputing.com/news',
+ 'PyQt6-Qt5': 'https://www.riverbankcomputing.com/news',
'PyQtWebEngine': 'https://www.riverbankcomputing.com/news',
'PyQtWebEngine-Qt': 'https://www.riverbankcomputing.com/news',
'PyQtWebEngine-Qt5': 'https://www.riverbankcomputing.com/news',
'PyQt-builder': 'https://www.riverbankcomputing.com/news',
- 'PyQt5-sip': 'https://www.riverbankcomputing.com/news',
- 'PyQt5-stubs': 'https://github.com/stlehmann/PyQt5-stubs/blob/master/CHANGELOG.md',
+ 'PyQt6-sip': 'https://www.riverbankcomputing.com/news',
+ 'PyQt6-stubs': 'https://github.com/stlehmann/PyQt6-stubs/blob/master/CHANGELOG.md',
'sip': 'https://www.riverbankcomputing.com/news',
'Pygments': 'https://pygments.org/docs/changelog/',
'vulture': 'https://github.com/jendrikseipp/vulture/blob/master/CHANGELOG.md',
diff --git a/scripts/dev/run_pylint_on_tests.py b/scripts/dev/run_pylint_on_tests.py
index d0385bd17..657f6ca33 100644
--- a/scripts/dev/run_pylint_on_tests.py
+++ b/scripts/dev/run_pylint_on_tests.py
@@ -70,7 +70,7 @@ def main():
args = [
'--disable={}'.format(','.join(disabled)),
- '--ignored-modules=helpers,pytest,PyQt5',
+ '--ignored-modules=helpers,pytest,PyQt6',
r'--ignore-long-lines=(<?https?://|^# Copyright 201\d)|^ *def [a-z]',
r'--method-rgx=[a-z_][A-Za-z0-9_]{1,100}$',
] + sys.argv[2:] + files
diff --git a/scripts/dev/run_vulture.py b/scripts/dev/run_vulture.py
index 1f0018488..519b431b0 100755
--- a/scripts/dev/run_vulture.py
+++ b/scripts/dev/run_vulture.py
@@ -64,11 +64,11 @@ def whitelist_generator(): # noqa: C901
yield 'qutebrowser.misc.guiprocess.GUIProcess.stderr'
# Qt attributes
- yield 'PyQt5.QtWebKit.QWebPage.ErrorPageExtensionReturn().baseUrl'
- yield 'PyQt5.QtWebKit.QWebPage.ErrorPageExtensionReturn().content'
- yield 'PyQt5.QtWebKit.QWebPage.ErrorPageExtensionReturn().encoding'
- yield 'PyQt5.QtWebKit.QWebPage.ErrorPageExtensionReturn().fileNames'
- yield 'PyQt5.QtWidgets.QStyleOptionViewItem.backgroundColor'
+ yield 'PyQt6.QtWebKit.QWebPage.ErrorPageExtensionReturn().baseUrl'
+ yield 'PyQt6.QtWebKit.QWebPage.ErrorPageExtensionReturn().content'
+ yield 'PyQt6.QtWebKit.QWebPage.ErrorPageExtensionReturn().encoding'
+ yield 'PyQt6.QtWebKit.QWebPage.ErrorPageExtensionReturn().fileNames'
+ yield 'PyQt6.QtWidgets.QStyleOptionViewItem.backgroundColor'
## qute://... handlers
for name in qutescheme._HANDLERS: # pylint: disable=protected-access
@@ -86,7 +86,7 @@ def whitelist_generator(): # noqa: C901
yield 'propagate' # logging.getLogger('...).propagate = False
# vulture doesn't notice the hasattr() and thus thinks netrc_used is unused
# in NetworkManager.on_authentication_required
- yield 'PyQt5.QtNetwork.QNetworkReply.netrc_used'
+ yield 'PyQt6.QtNetwork.QNetworkReply.netrc_used'
yield 'qutebrowser.browser.downloads.last_used_directory'
yield 'PaintContext.clip' # from completiondelegate.py
yield 'logging.LogRecord.log_color' # from logging.py
diff --git a/scripts/dev/standardpaths_tester.py b/scripts/dev/standardpaths_tester.py
index 03de7f887..4ec2e1560 100644
--- a/scripts/dev/standardpaths_tester.py
+++ b/scripts/dev/standardpaths_tester.py
@@ -23,7 +23,7 @@
import os
import sys
-from PyQt5.QtCore import (QT_VERSION_STR, PYQT_VERSION_STR, qVersion,
+from PyQt6.QtCore import (QT_VERSION_STR, PYQT_VERSION_STR, qVersion,
QStandardPaths, QCoreApplication)
diff --git a/scripts/keytester.py b/scripts/keytester.py
index bc9a22263..b1e1713ac 100644
--- a/scripts/keytester.py
+++ b/scripts/keytester.py
@@ -23,7 +23,7 @@
Use python3 -m scripts.keytester to launch it.
"""
-from PyQt5.QtWidgets import QApplication
+from PyQt6.QtWidgets import QApplication
from qutebrowser.misc import miscwidgets
diff --git a/scripts/link_pyqt.py b/scripts/link_pyqt.py
index 158cc145d..e2cbddd74 100644
--- a/scripts/link_pyqt.py
+++ b/scripts/link_pyqt.py
@@ -134,16 +134,16 @@ def link_pyqt(executable, venv_path):
venv_path: The path to the virtualenv site-packages.
"""
try:
- get_lib_path(executable, 'PyQt5.sip')
+ get_lib_path(executable, 'PyQt6.sip')
except Error:
- # There is no PyQt5.sip, so we need to copy the toplevel sip.
+ # There is no PyQt6.sip, so we need to copy the toplevel sip.
sip_file = get_lib_path(executable, 'sip')
else:
- # There is a PyQt5.sip, it'll get copied with the PyQt5 dir.
+ # There is a PyQt6.sip, it'll get copied with the PyQt6 dir.
sip_file = None
sipconfig_file = get_lib_path(executable, 'sipconfig', required=False)
- pyqt_dir = os.path.dirname(get_lib_path(executable, 'PyQt5.QtCore'))
+ pyqt_dir = os.path.dirname(get_lib_path(executable, 'PyQt6.QtCore'))
for path in [sip_file, sipconfig_file, pyqt_dir]:
if path is None:
diff --git a/scripts/mkvenv.py b/scripts/mkvenv.py
index 7f6920bb8..e4e7b1cef 100755
--- a/scripts/mkvenv.py
+++ b/scripts/mkvenv.py
@@ -232,25 +232,25 @@ def install_pyqt_binary(venv_dir: pathlib.Path, version: str) -> None:
'darwin': {'x86_64'},
}
if sys.platform not in supported_archs:
- utils.print_error(f"{sys.platform} is not a supported platform by PyQt5 binary "
+ utils.print_error(f"{sys.platform} is not a supported platform by PyQt6 binary "
"packages, this will most likely fail.")
elif platform.machine() not in supported_archs[sys.platform]:
utils.print_error(
- f"{platform.machine()} is not a supported architecture for PyQt5 binaries "
+ f"{platform.machine()} is not a supported architecture for PyQt6 binaries "
f"on {sys.platform}, this will most likely fail.")
elif sys.platform == 'linux' and platform.libc_ver()[0] != 'glibc':
- utils.print_error("Non-glibc Linux is not a supported platform for PyQt5 "
+ utils.print_error("Non-glibc Linux is not a supported platform for PyQt6 "
"binaries, this will most likely fail.")
pip_install(venv_dir, '-r', pyqt_requirements_file(version),
- '--only-binary', 'PyQt5,PyQtWebEngine')
+ '--only-binary', 'PyQt6,PyQtWebEngine')
def install_pyqt_source(venv_dir: pathlib.Path, version: str) -> None:
"""Install PyQt from the source tarball."""
utils.print_title("Installing PyQt from sources")
pip_install(venv_dir, '-r', pyqt_requirements_file(version),
- '--verbose', '--no-binary', 'PyQt5,PyQtWebEngine')
+ '--verbose', '--no-binary', 'PyQt6,PyQtWebEngine')
def install_pyqt_link(venv_dir: pathlib.Path) -> None:
@@ -317,7 +317,7 @@ def apply_xcb_util_workaround(
libxcb_util_path = pathlib.Path(libxcb_util_libs[0])
code = [
- 'from PyQt5.QtCore import QLibraryInfo',
+ 'from PyQt6.QtCore import QLibraryInfo',
'print(QLibraryInfo.location(QLibraryInfo.LibrariesPath))',
]
proc = run_venv(venv_dir, 'python', '-c', '; '.join(code), capture_output=True)
@@ -371,8 +371,8 @@ def run_qt_smoke_test(venv_dir: pathlib.Path) -> None:
utils.print_title("Running Qt smoke test")
code = [
'import sys',
- 'from PyQt5.QtWidgets import QApplication',
- 'from PyQt5.QtCore import qVersion, QT_VERSION_STR, PYQT_VERSION_STR',
+ 'from PyQt6.QtWidgets import QApplication',
+ 'from PyQt6.QtCore import qVersion, QT_VERSION_STR, PYQT_VERSION_STR',
'print(f"Python: {sys.version}")',
'print(f"qVersion: {qVersion()}")',
'print(f"QT_VERSION_STR: {QT_VERSION_STR}")',
diff --git a/scripts/opengl_info.py b/scripts/opengl_info.py
index 1bfdf22aa..bfd57ef8d 100644
--- a/scripts/opengl_info.py
+++ b/scripts/opengl_info.py
@@ -20,7 +20,7 @@
"""Show information about the OpenGL setup."""
-from PyQt5.QtGui import (QOpenGLContext, QOpenGLVersionProfile,
+from PyQt6.QtGui import (QOpenGLContext, QOpenGLVersionProfile,
QOffscreenSurface, QGuiApplication)
app = QGuiApplication([])
diff --git a/scripts/testbrowser/testbrowser_webengine.py b/scripts/testbrowser/testbrowser_webengine.py
index 73fa6828e..16c9739cb 100755
--- a/scripts/testbrowser/testbrowser_webengine.py
+++ b/scripts/testbrowser/testbrowser_webengine.py
@@ -23,9 +23,9 @@
import sys
import argparse
-from PyQt5.QtCore import QUrl
-from PyQt5.QtWidgets import QApplication
-from PyQt5.QtWebEngineWidgets import QWebEngineView
+from PyQt6.QtCore import QUrl
+from PyQt6.QtWidgets import QApplication
+from PyQt6.QtWebEngineWidgets import QWebEngineView
def parse_args():
diff --git a/scripts/testbrowser/testbrowser_webkit.py b/scripts/testbrowser/testbrowser_webkit.py
index 40938d06b..c148c76f1 100755
--- a/scripts/testbrowser/testbrowser_webkit.py
+++ b/scripts/testbrowser/testbrowser_webkit.py
@@ -23,10 +23,10 @@
import sys
import argparse
-from PyQt5.QtCore import QUrl
-from PyQt5.QtWidgets import QApplication
-from PyQt5.QtWebKit import QWebSettings
-from PyQt5.QtWebKitWidgets import QWebView
+from PyQt6.QtCore import QUrl
+from PyQt6.QtWidgets import QApplication
+from PyQt6.QtWebKit import QWebSettings
+from PyQt6.QtWebKitWidgets import QWebView
def parse_args():
diff --git a/tests/conftest.py b/tests/conftest.py
index 40631af34..cb0b112f6 100644
--- a/tests/conftest.py
+++ b/tests/conftest.py
@@ -28,7 +28,7 @@ import warnings
import pytest
import hypothesis
-from PyQt5.QtCore import PYQT_VERSION
+from PyQt6.QtCore import PYQT_VERSION
pytest.register_assert_rewrite('helpers')
@@ -224,7 +224,7 @@ def pytest_configure(config):
config.webengine = webengine_arg or webengine_env == 'true'
# Fail early if QtWebEngine is not available
if config.webengine:
- import PyQt5.QtWebEngineWidgets
+ import PyQt6.QtWebEngineWidgets
earlyinit.configure_pyqt()
diff --git a/tests/end2end/conftest.py b/tests/end2end/conftest.py
index a4a089cea..8f7fc155b 100644
--- a/tests/end2end/conftest.py
+++ b/tests/end2end/conftest.py
@@ -30,7 +30,7 @@ import pstats
import operator
import pytest
-from PyQt5.QtCore import PYQT_VERSION, QCoreApplication
+from PyQt6.QtCore import PYQT_VERSION, QCoreApplication
pytest.register_assert_rewrite('end2end.fixtures')
@@ -117,7 +117,7 @@ def _get_version_tag(tag):
)
elif package == 'pyqtwebengine':
try:
- from PyQt5.QtWebEngine import PYQT_WEBENGINE_VERSION
+ from PyQt6.QtWebEngine import PYQT_WEBENGINE_VERSION
except ImportError:
running_version = PYQT_VERSION
else:
diff --git a/tests/end2end/features/downloads.feature b/tests/end2end/features/downloads.feature
index dfdb24704..79ff94860 100644
--- a/tests/end2end/features/downloads.feature
+++ b/tests/end2end/features/downloads.feature
@@ -338,7 +338,7 @@ Feature: Downloading things from a website.
Scenario: Cancelling an MHTML download (issue 1535)
When I open data/downloads/issue1535.html
And I run :download --mhtml
- And I wait for "fetch: PyQt5.QtCore.QUrl('http://localhost:*/drip?numbytes=128&duration=2') -> drip" in the log
+ And I wait for "fetch: PyQt6.QtCore.QUrl('http://localhost:*/drip?numbytes=128&duration=2') -> drip" in the log
And I run :download-cancel
Then no crash should happen
diff --git a/tests/end2end/features/keyinput.feature b/tests/end2end/features/keyinput.feature
index 556914e4d..3a62d0ff9 100644
--- a/tests/end2end/features/keyinput.feature
+++ b/tests/end2end/features/keyinput.feature
@@ -42,7 +42,7 @@ Feature: Keyboard input
Scenario: :fake-key sending key to the website with other window focused
When I open data/keyinput/log.html
And I run :devtools
- And I wait for "Focus object changed: <PyQt5.QtWebKitWidgets.QWebView object at *>" in the log
+ And I wait for "Focus object changed: <PyQt6.QtWebKitWidgets.QWebView object at *>" in the log
And I run :fake-key x
And I run :devtools
And I wait for "Focus object changed: <qutebrowser.browser.webkit.webview.WebView *>" in the log
diff --git a/tests/end2end/features/misc.feature b/tests/end2end/features/misc.feature
index e6a02e038..7b3ac82a5 100644
--- a/tests/end2end/features/misc.feature
+++ b/tests/end2end/features/misc.feature
@@ -174,7 +174,7 @@ Feature: Various utility commands.
@no_xvfb @posix @qtwebengine_skip
Scenario: Inspector smoke test
When I run :devtools
- And I wait for "Focus object changed: <PyQt5.QtWebKitWidgets.QWebView object at *>" in the log
+ And I wait for "Focus object changed: <PyQt6.QtWebKitWidgets.QWebView object at *>" in the log
And I run :devtools
And I wait for "Focus object changed: *" in the log
Then no crash should happen
@@ -183,7 +183,7 @@ Feature: Various utility commands.
@no_xvfb @posix @qtwebengine_skip
Scenario: Inspector smoke test 2
When I run :devtools
- And I wait for "Focus object changed: <PyQt5.QtWebKitWidgets.QWebView object at *>" in the log
+ And I wait for "Focus object changed: <PyQt6.QtWebKitWidgets.QWebView object at *>" in the log
And I run :devtools
And I wait for "Focus object changed: *" in the log
Then no crash should happen
diff --git a/tests/end2end/features/test_downloads_bdd.py b/tests/end2end/features/test_downloads_bdd.py
index 804ed40fe..fb8f623bf 100644
--- a/tests/end2end/features/test_downloads_bdd.py
+++ b/tests/end2end/features/test_downloads_bdd.py
@@ -23,7 +23,7 @@ import shlex
import pytest
import pytest_bdd as bdd
-from PyQt5.QtNetwork import QSslSocket
+from PyQt6.QtNetwork import QSslSocket
bdd.scenarios('downloads.feature')
diff --git a/tests/end2end/features/test_editor_bdd.py b/tests/end2end/features/test_editor_bdd.py
index 40f77a0f7..d9cd7e670 100644
--- a/tests/end2end/features/test_editor_bdd.py
+++ b/tests/end2end/features/test_editor_bdd.py
@@ -26,7 +26,7 @@ import time
import pytest
import pytest_bdd as bdd
-from PyQt5.QtCore import pyqtSignal, pyqtSlot, QObject, QFileSystemWatcher
+from PyQt6.QtCore import pyqtSignal, pyqtSlot, QObject, QFileSystemWatcher
bdd.scenarios('editor.feature')
from qutebrowser.utils import utils
diff --git a/tests/end2end/fixtures/notificationserver.py b/tests/end2end/fixtures/notificationserver.py
index b643e848b..abadde794 100644
--- a/tests/end2end/fixtures/notificationserver.py
+++ b/tests/end2end/fixtures/notificationserver.py
@@ -21,9 +21,9 @@ import dataclasses
import itertools
from typing import Dict, List
-from PyQt5.QtCore import QObject, QByteArray, QUrl, pyqtSlot
-from PyQt5.QtGui import QImage
-from PyQt5.QtDBus import QDBusConnection, QDBusArgument, QDBusMessage
+from PyQt6.QtCore import QObject, QByteArray, QUrl, pyqtSlot
+from PyQt6.QtGui import QImage
+from PyQt6.QtDBus import QDBusConnection, QDBusArgument, QDBusMessage
import pytest
from qutebrowser.browser.webengine import notification
diff --git a/tests/end2end/fixtures/quteprocess.py b/tests/end2end/fixtures/quteprocess.py
index 3cbea01ad..1552f51b4 100644
--- a/tests/end2end/fixtures/quteprocess.py
+++ b/tests/end2end/fixtures/quteprocess.py
@@ -33,8 +33,8 @@ import json
import yaml
import pytest
-from PyQt5.QtCore import pyqtSignal, QUrl, QPoint
-from PyQt5.QtGui import QImage, QColor
+from PyQt6.QtCore import pyqtSignal, QUrl, QPoint
+from PyQt6.QtGui import QImage, QColor
from qutebrowser.misc import ipc
from qutebrowser.utils import log, utils, javascript
@@ -107,10 +107,10 @@ def is_ignored_lowlevel_message(message):
# DevTools listening on ws://127.0.0.1:37945/devtools/browser/...
'DevTools listening on *',
# /home/travis/build/qutebrowser/qutebrowser/.tox/py36-pyqt511-cov/lib/
- # python3.6/site-packages/PyQt5/Qt/libexec/QtWebEngineProcess:
+ # python3.6/site-packages/PyQt6/Qt/libexec/QtWebEngineProcess:
# /lib/x86_64-linux-gnu/libdbus-1.so.3: no version information
# available (required by /home/travis/build/qutebrowser/qutebrowser/
- # .tox/py36-pyqt511-cov/lib/python3.6/site-packages/PyQt5/Qt/libexec/
+ # .tox/py36-pyqt511-cov/lib/python3.6/site-packages/PyQt6/Qt/libexec/
# ../lib/libQt5WebEngineCore.so.5)
'*/QtWebEngineProcess: /lib/x86_64-linux-gnu/libdbus-1.so.3: no '
'version information available (required by '
@@ -601,11 +601,11 @@ class QuteProc(testprocess.Process):
raise ValueError("Either both x/y or neither must be given!")
if x is None and y is None:
- point = 'PyQt5.QtCore.QPoint(*, *)' # not counting 0/0 here
+ point = 'PyQt6.QtCore.QPoint(*, *)' # not counting 0/0 here
elif x == '0' and y == '0':
- point = 'PyQt5.QtCore.QPoint()'
+ point = 'PyQt6.QtCore.QPoint()'
else:
- point = 'PyQt5.QtCore.QPoint({}, {})'.format(x, y)
+ point = 'PyQt6.QtCore.QPoint({}, {})'.format(x, y)
self.wait_for(category='webview',
message='Scroll position changed to ' + point)
@@ -859,7 +859,7 @@ class QuteProc(testprocess.Process):
pattern = re.compile(
r"(load status for <qutebrowser\.browser\..* "
r"tab_id=\d+ url='{url}/?'>: LoadStatus\.{load_status}|fetch: "
- r"PyQt5\.QtCore\.QUrl\('{url}'\) -> .*)".format(
+ r"PyQt6\.QtCore\.QUrl\('{url}'\) -> .*)".format(
load_status=re.escape(load_status), url=re.escape(url)))
try:
diff --git a/tests/end2end/fixtures/test_testprocess.py b/tests/end2end/fixtures/test_testprocess.py
index aa6f19c67..0cf5e6041 100644
--- a/tests/end2end/fixtures/test_testprocess.py
+++ b/tests/end2end/fixtures/test_testprocess.py
@@ -25,7 +25,7 @@ import contextlib
import datetime
import pytest
-from PyQt5.QtCore import QProcess
+from PyQt6.QtCore import QProcess
from end2end.fixtures import testprocess
diff --git a/tests/end2end/fixtures/testprocess.py b/tests/end2end/fixtures/testprocess.py
index 96e700390..c74a1a2b8 100644
--- a/tests/end2end/fixtures/testprocess.py
+++ b/tests/end2end/fixtures/testprocess.py
@@ -26,9 +26,9 @@ import dataclasses
import pytest
import pytestqt.wait_signal
-from PyQt5.QtCore import (pyqtSlot, pyqtSignal, QProcess, QObject,
+from PyQt6.QtCore import (pyqtSlot, pyqtSignal, QProcess, QObject,
QElapsedTimer, QProcessEnvironment)
-from PyQt5.QtTest import QSignalSpy
+from PyQt6.QtTest import QSignalSpy
from helpers import testutils
diff --git a/tests/end2end/fixtures/webserver.py b/tests/end2end/fixtures/webserver.py
index 0fc32cd88..d9fd48990 100644
--- a/tests/end2end/fixtures/webserver.py
+++ b/tests/end2end/fixtures/webserver.py
@@ -28,7 +28,7 @@ import dataclasses
from http import HTTPStatus
import pytest
-from PyQt5.QtCore import pyqtSignal, QUrl
+from PyQt6.QtCore import pyqtSignal, QUrl
from end2end.fixtures import testprocess
diff --git a/tests/end2end/test_dirbrowser.py b/tests/end2end/test_dirbrowser.py
index c2aa19233..08eee7bc7 100644
--- a/tests/end2end/test_dirbrowser.py
+++ b/tests/end2end/test_dirbrowser.py
@@ -27,7 +27,7 @@ from typing import List
import pytest
import bs4
-from PyQt5.QtCore import QUrl
+from PyQt6.QtCore import QUrl
from qutebrowser.utils import urlutils
from helpers import testutils
diff --git a/tests/end2end/test_invocations.py b/tests/end2end/test_invocations.py
index b860feed0..3b8b2f1c8 100644
--- a/tests/end2end/test_invocations.py
+++ b/tests/end2end/test_invocations.py
@@ -29,7 +29,7 @@ import json
import platform
import pytest
-from PyQt5.QtCore import QProcess, QPoint
+from PyQt6.QtCore import QProcess, QPoint
from helpers import testutils
from qutebrowser.utils import qtutils, utils
@@ -786,8 +786,8 @@ def test_unavailable_backend(request, quteproc_new):
that the chosen backend is actually available - i.e., that the error message is
properly printed, rather than an unhandled exception.
"""
- qtwe_module = "PyQt5.QtWebEngineWidgets"
- qtwk_module = "PyQt5.QtWebKitWidgets"
+ qtwe_module = "PyQt6.QtWebEngineWidgets"
+ qtwk_module = "PyQt6.QtWebKitWidgets"
# Note we want to try the *opposite* backend here.
if request.config.webengine:
pytest.importorskip(qtwe_module)
diff --git a/tests/helpers/fixtures.py b/tests/helpers/fixtures.py
index cd3778b8a..82159233c 100644
--- a/tests/helpers/fixtures.py
+++ b/tests/helpers/fixtures.py
@@ -37,9 +37,9 @@ import dataclasses
import pytest
import py.path # pylint: disable=no-name-in-module
-from PyQt5.QtCore import QSize, Qt
-from PyQt5.QtWidgets import QWidget, QHBoxLayout, QVBoxLayout
-from PyQt5.QtNetwork import QNetworkCookieJar
+from PyQt6.QtCore import QSize, Qt
+from PyQt6.QtWidgets import QWidget, QHBoxLayout, QVBoxLayout
+from PyQt6.QtNetwork import QNetworkCookieJar
import helpers.stubs as stubsmod
import qutebrowser
@@ -177,7 +177,7 @@ def testdata_scheme(qapp):
try:
global _qute_scheme_handler
from qutebrowser.browser.webengine import webenginequtescheme
- from PyQt5.QtWebEngineWidgets import QWebEngineProfile
+ from PyQt6.QtWebEngineWidgets import QWebEngineProfile
webenginequtescheme.init()
_qute_scheme_handler = webenginequtescheme.QuteSchemeHandler(
parent=qapp)
@@ -432,7 +432,7 @@ def unicode_encode_err():
@pytest.fixture(scope='session')
def qnam(qapp):
"""Session-wide QNetworkAccessManager."""
- from PyQt5.QtNetwork import QNetworkAccessManager
+ from PyQt6.QtNetwork import QNetworkAccessManager
nam = QNetworkAccessManager()
nam.setNetworkAccessible(QNetworkAccessManager.NotAccessible)
return nam
@@ -441,7 +441,7 @@ def qnam(qapp):
@pytest.fixture
def webengineview(qtbot, monkeypatch, web_tab_setup):
"""Get a QWebEngineView if QtWebEngine is available."""
- QtWebEngineWidgets = pytest.importorskip('PyQt5.QtWebEngineWidgets')
+ QtWebEngineWidgets = pytest.importorskip('PyQt6.QtWebEngineWidgets')
monkeypatch.setattr(objects, 'backend', usertypes.Backend.QtWebEngine)
view = QtWebEngineWidgets.QWebEngineView()
qtbot.add_widget(view)
@@ -452,7 +452,7 @@ def webengineview(qtbot, monkeypatch, web_tab_setup):
@pytest.fixture
def webpage(qnam, monkeypatch):
"""Get a new QWebPage object."""
- QtWebKitWidgets = pytest.importorskip('PyQt5.QtWebKitWidgets')
+ QtWebKitWidgets = pytest.importorskip('PyQt6.QtWebKitWidgets')
monkeypatch.setattr(objects, 'backend', usertypes.Backend.QtWebKit)
class WebPageStub(QtWebKitWidgets.QWebPage):
@@ -477,7 +477,7 @@ def webpage(qnam, monkeypatch):
@pytest.fixture
def webview(qtbot, webpage):
"""Get a new QWebView object."""
- QtWebKitWidgets = pytest.importorskip('PyQt5.QtWebKitWidgets')
+ QtWebKitWidgets = pytest.importorskip('PyQt6.QtWebKitWidgets')
view = QtWebKitWidgets.QWebView()
qtbot.add_widget(view)
@@ -734,7 +734,7 @@ def webengine_versions(testdata_scheme):
Calling qtwebengine_versions() initializes QtWebEngine, so we depend on
testdata_scheme here, to make sure that happens before.
"""
- pytest.importorskip('PyQt5.QtWebEngineWidgets')
+ pytest.importorskip('PyQt6.QtWebEngineWidgets')
return version.qtwebengine_versions()
diff --git a/tests/helpers/messagemock.py b/tests/helpers/messagemock.py
index 41f0bac64..3208932a3 100644
--- a/tests/helpers/messagemock.py
+++ b/tests/helpers/messagemock.py
@@ -23,7 +23,7 @@ import logging
import dataclasses
import pytest
-from PyQt5.QtCore import pyqtSlot, pyqtSignal, QObject
+from PyQt6.QtCore import pyqtSlot, pyqtSignal, QObject
from qutebrowser.utils import usertypes, message
diff --git a/tests/helpers/stubs.py b/tests/helpers/stubs.py
index 6998958b8..e4cf9bcc7 100644
--- a/tests/helpers/stubs.py
+++ b/tests/helpers/stubs.py
@@ -30,11 +30,11 @@ import builtins
import importlib
import types
-from PyQt5.QtCore import pyqtSignal, QPoint, QProcess, QObject, QUrl, QByteArray
-from PyQt5.QtGui import QIcon
-from PyQt5.QtNetwork import (QNetworkRequest, QAbstractNetworkCache,
+from PyQt6.QtCore import pyqtSignal, QPoint, QProcess, QObject, QUrl, QByteArray
+from PyQt6.QtGui import QIcon
+from PyQt6.QtNetwork import (QNetworkRequest, QAbstractNetworkCache,
QNetworkCacheMetaData)
-from PyQt5.QtWidgets import QCommonStyle, QLineEdit, QWidget, QTabBar
+from PyQt6.QtWidgets import QCommonStyle, QLineEdit, QWidget, QTabBar
from qutebrowser.browser import browsertab, downloads
from qutebrowser.utils import usertypes
diff --git a/tests/helpers/testutils.py b/tests/helpers/testutils.py
index 8bb622133..1de6af104 100644
--- a/tests/helpers/testutils.py
+++ b/tests/helpers/testutils.py
@@ -31,10 +31,10 @@ import importlib.machinery
import pytest
-from PyQt5.QtCore import qVersion
-from PyQt5.QtGui import QColor
+from PyQt6.QtCore import qVersion
+from PyQt6.QtGui import QColor
try:
- from PyQt5.QtWebEngine import PYQT_WEBENGINE_VERSION_STR
+ from PyQt6.QtWebEngine import PYQT_WEBENGINE_VERSION_STR
except ImportError:
PYQT_WEBENGINE_VERSION_STR = None
diff --git a/tests/unit/browser/test_caret.py b/tests/unit/browser/test_caret.py
index 288471ea0..d9663141d 100644
--- a/tests/unit/browser/test_caret.py
+++ b/tests/unit/browser/test_caret.py
@@ -22,7 +22,7 @@
import textwrap
import pytest
-from PyQt5.QtCore import QUrl
+from PyQt6.QtCore import QUrl
from qutebrowser.utils import usertypes
from qutebrowser.browser import browsertab
diff --git a/tests/unit/browser/test_downloadview.py b/tests/unit/browser/test_downloadview.py
index 84b50fad2..728ca2ca5 100644
--- a/tests/unit/browser/test_downloadview.py
+++ b/tests/unit/browser/test_downloadview.py
@@ -20,7 +20,7 @@
import pytest
-from PyQt5.QtCore import QUrl
+from PyQt6.QtCore import QUrl
from qutebrowser.browser import downloads, qtnetworkdownloads, downloadview
diff --git a/tests/unit/browser/test_hints.py b/tests/unit/browser/test_hints.py
index 85c0a642c..15b213a0b 100644
--- a/tests/unit/browser/test_hints.py
+++ b/tests/unit/browser/test_hints.py
@@ -23,7 +23,7 @@ import itertools
import operator
import pytest
-from PyQt5.QtCore import QUrl
+from PyQt6.QtCore import QUrl
from qutebrowser.utils import usertypes
import qutebrowser.browser.hints
diff --git a/tests/unit/browser/test_history.py b/tests/unit/browser/test_history.py
index 7906d385c..1518395b7 100644
--- a/tests/unit/browser/test_history.py
+++ b/tests/unit/browser/test_history.py
@@ -22,7 +22,7 @@
import logging
import pytest
-from PyQt5.QtCore import QUrl
+from PyQt6.QtCore import QUrl
from qutebrowser.browser import history
from qutebrowser.utils import urlutils, usertypes
@@ -276,7 +276,7 @@ class TestHistoryInterface:
@pytest.fixture
def hist_interface(self, web_history):
# pylint: disable=invalid-name
- QtWebKit = pytest.importorskip('PyQt5.QtWebKit')
+ QtWebKit = pytest.importorskip('PyQt6.QtWebKit')
from qutebrowser.browser.webkit import webkithistory
QWebHistoryInterface = QtWebKit.QWebHistoryInterface
# pylint: enable=invalid-name
@@ -304,7 +304,7 @@ class TestInit:
history.web_history.setParent(None)
history.web_history = None
try:
- from PyQt5.QtWebKit import QWebHistoryInterface
+ from PyQt6.QtWebKit import QWebHistoryInterface
QWebHistoryInterface.setDefaultInterface(None)
except ImportError:
pass
@@ -313,7 +313,7 @@ class TestInit:
usertypes.Backend.QtWebKit])
def test_init(self, backend, qapp, tmpdir, data_tmpdir, monkeypatch, cleanup_init):
if backend == usertypes.Backend.QtWebKit:
- pytest.importorskip('PyQt5.QtWebKitWidgets')
+ pytest.importorskip('PyQt6.QtWebKitWidgets')
else:
assert backend == usertypes.Backend.QtWebEngine
@@ -322,7 +322,7 @@ class TestInit:
assert history.web_history.parent() is qapp
try:
- from PyQt5.QtWebKit import QWebHistoryInterface
+ from PyQt6.QtWebKit import QWebHistoryInterface
except ImportError:
QWebHistoryInterface = None
diff --git a/tests/unit/browser/test_inspector.py b/tests/unit/browser/test_inspector.py
index f7f532050..96aeb05da 100644
--- a/tests/unit/browser/test_inspector.py
+++ b/tests/unit/browser/test_inspector.py
@@ -19,7 +19,7 @@
import pytest
-from PyQt5.QtWidgets import QWidget
+from PyQt6.QtWidgets import QWidget
from qutebrowser.browser import inspector
from qutebrowser.misc import miscwidgets
diff --git a/tests/unit/browser/test_navigate.py b/tests/unit/browser/test_navigate.py
index 9813705ca..f8742aa84 100644
--- a/tests/unit/browser/test_navigate.py
+++ b/tests/unit/browser/test_navigate.py
@@ -20,7 +20,7 @@
import pytest
-from PyQt5.QtCore import QUrl
+from PyQt6.QtCore import QUrl
from qutebrowser.browser import navigate
from qutebrowser.utils import urlutils
diff --git a/tests/unit/browser/test_pdfjs.py b/tests/unit/browser/test_pdfjs.py
index 86b875be5..eb3317d01 100644
--- a/tests/unit/browser/test_pdfjs.py
+++ b/tests/unit/browser/test_pdfjs.py
@@ -21,7 +21,7 @@ import logging
import os.path
import pytest
-from PyQt5.QtCore import QUrl
+from PyQt6.QtCore import QUrl
from qutebrowser.browser import pdfjs
from qutebrowser.utils import urlmatch
diff --git a/tests/unit/browser/test_qutescheme.py b/tests/unit/browser/test_qutescheme.py
index 45474102d..86c67ecb2 100644
--- a/tests/unit/browser/test_qutescheme.py
+++ b/tests/unit/browser/test_qutescheme.py
@@ -24,7 +24,7 @@ import time
import logging
import py.path # pylint: disable=no-name-in-module
-from PyQt5.QtCore import QUrl, QUrlQuery
+from PyQt6.QtCore import QUrl, QUrlQuery
import pytest
from qutebrowser.browser import qutescheme, pdfjs, downloads
diff --git a/tests/unit/browser/test_signalfilter.py b/tests/unit/browser/test_signalfilter.py
index 35c7f3557..6af4512c5 100644
--- a/tests/unit/browser/test_signalfilter.py
+++ b/tests/unit/browser/test_signalfilter.py
@@ -23,7 +23,7 @@ import logging
import dataclasses
import pytest
-from PyQt5.QtCore import pyqtSignal, pyqtSlot, QObject
+from PyQt6.QtCore import pyqtSignal, pyqtSlot, QObject
from qutebrowser.browser import signalfilter
diff --git a/tests/unit/browser/test_urlmarks.py b/tests/unit/browser/test_urlmarks.py
index 6b8d429a9..6962b5398 100644
--- a/tests/unit/browser/test_urlmarks.py
+++ b/tests/unit/browser/test_urlmarks.py
@@ -22,7 +22,7 @@
import unittest.mock
import pytest
-from PyQt5.QtCore import QUrl
+from PyQt6.QtCore import QUrl
from qutebrowser.browser import urlmarks
diff --git a/tests/unit/browser/webengine/test_webengine_cookies.py b/tests/unit/browser/webengine/test_webengine_cookies.py
index 1a74dfb3e..1612a55a5 100644
--- a/tests/unit/browser/webengine/test_webengine_cookies.py
+++ b/tests/unit/browser/webengine/test_webengine_cookies.py
@@ -18,10 +18,10 @@
# along with qutebrowser. If not, see <https://www.gnu.org/licenses/>.
import pytest
-from PyQt5.QtCore import QUrl
-pytest.importorskip('PyQt5.QtWebEngineCore')
-from PyQt5.QtWebEngineCore import QWebEngineCookieStore
-from PyQt5.QtWebEngineWidgets import QWebEngineProfile
+from PyQt6.QtCore import QUrl
+pytest.importorskip('PyQt6.QtWebEngineCore')
+from PyQt6.QtWebEngineCore import QWebEngineCookieStore
+from PyQt6.QtWebEngineWidgets import QWebEngineProfile
from qutebrowser.browser.webengine import cookies
from qutebrowser.utils import urlmatch
diff --git a/tests/unit/browser/webengine/test_webenginedownloads.py b/tests/unit/browser/webengine/test_webenginedownloads.py
index 877af3c9a..aa6b67a2c 100644
--- a/tests/unit/browser/webengine/test_webenginedownloads.py
+++ b/tests/unit/browser/webengine/test_webenginedownloads.py
@@ -22,8 +22,8 @@ import base64
import dataclasses
import pytest
-pytest.importorskip('PyQt5.QtWebEngineWidgets')
-from PyQt5.QtWebEngineWidgets import QWebEngineProfile
+pytest.importorskip('PyQt6.QtWebEngineWidgets')
+from PyQt6.QtWebEngineWidgets import QWebEngineProfile
from qutebrowser.utils import urlutils, usertypes, utils
from qutebrowser.browser.webengine import webenginedownloads
diff --git a/tests/unit/browser/webengine/test_webengineinterceptor.py b/tests/unit/browser/webengine/test_webengineinterceptor.py
index eb71e0c6e..11074f782 100644
--- a/tests/unit/browser/webengine/test_webengineinterceptor.py
+++ b/tests/unit/browser/webengine/test_webengineinterceptor.py
@@ -22,9 +22,9 @@
import pytest
-pytest.importorskip('PyQt5.QtWebEngineWidgets')
+pytest.importorskip('PyQt6.QtWebEngineWidgets')
-from PyQt5.QtWebEngineCore import QWebEngineUrlRequestInfo
+from PyQt6.QtWebEngineCore import QWebEngineUrlRequestInfo
from qutebrowser.browser.webengine import interceptor
diff --git a/tests/unit/browser/webengine/test_webenginesettings.py b/tests/unit/browser/webengine/test_webenginesettings.py
index 0f803a172..7dc72869b 100644
--- a/tests/unit/browser/webengine/test_webenginesettings.py
+++ b/tests/unit/browser/webengine/test_webenginesettings.py
@@ -21,7 +21,7 @@ import logging
import pytest
-QtWebEngineWidgets = pytest.importorskip('PyQt5.QtWebEngineWidgets')
+QtWebEngineWidgets = pytest.importorskip('PyQt6.QtWebEngineWidgets')
from qutebrowser.browser.webengine import webenginesettings
from qutebrowser.utils import usertypes
diff --git a/tests/unit/browser/webengine/test_webenginetab.py b/tests/unit/browser/webengine/test_webenginetab.py
index 3d8eec663..92705a3aa 100644
--- a/tests/unit/browser/webengine/test_webenginetab.py
+++ b/tests/unit/browser/webengine/test_webenginetab.py
@@ -23,7 +23,7 @@ import logging
import textwrap
import pytest
-QtWebEngineWidgets = pytest.importorskip("PyQt5.QtWebEngineWidgets")
+QtWebEngineWidgets = pytest.importorskip("PyQt6.QtWebEngineWidgets")
QWebEnginePage = QtWebEngineWidgets.QWebEnginePage
QWebEngineScriptCollection = QtWebEngineWidgets.QWebEngineScriptCollection
QWebEngineScript = QtWebEngineWidgets.QWebEngineScript
diff --git a/tests/unit/browser/webkit/http/test_http.py b/tests/unit/browser/webkit/http/test_http.py
index 4db78f4ff..a2d0a0c9a 100644
--- a/tests/unit/browser/webkit/http/test_http.py
+++ b/tests/unit/browser/webkit/http/test_http.py
@@ -24,7 +24,7 @@ import logging
import pytest
import hypothesis
from hypothesis import strategies
-from PyQt5.QtCore import QUrl
+from PyQt6.QtCore import QUrl
from qutebrowser.browser.webkit import http
diff --git a/tests/unit/browser/webkit/network/test_filescheme.py b/tests/unit/browser/webkit/network/test_filescheme.py
index 12cacb5a2..0f92cbf6b 100644
--- a/tests/unit/browser/webkit/network/test_filescheme.py
+++ b/tests/unit/browser/webkit/network/test_filescheme.py
@@ -24,8 +24,8 @@ from typing import List
import pytest
import bs4
-from PyQt5.QtCore import QUrl
-from PyQt5.QtNetwork import QNetworkRequest
+from PyQt6.QtCore import QUrl
+from PyQt6.QtNetwork import QNetworkRequest
from qutebrowser.browser.webkit.network import filescheme
from qutebrowser.utils import urlutils, utils
diff --git a/tests/unit/browser/webkit/network/test_networkreply.py b/tests/unit/browser/webkit/network/test_networkreply.py
index 3cffb2fd7..a64f45589 100644
--- a/tests/unit/browser/webkit/network/test_networkreply.py
+++ b/tests/unit/browser/webkit/network/test_networkreply.py
@@ -21,8 +21,8 @@
import pytest
-from PyQt5.QtCore import QUrl, QIODevice
-from PyQt5.QtNetwork import QNetworkRequest, QNetworkReply
+from PyQt6.QtCore import QUrl, QIODevice
+from PyQt6.QtNetwork import QNetworkRequest, QNetworkReply
from qutebrowser.browser.webkit.network import networkreply
diff --git a/tests/unit/browser/webkit/network/test_pac.py b/tests/unit/browser/webkit/network/test_pac.py
index 79b34be9a..8849e011c 100644
--- a/tests/unit/browser/webkit/network/test_pac.py
+++ b/tests/unit/browser/webkit/network/test_pac.py
@@ -22,8 +22,8 @@ import threading
import logging
import pytest
-from PyQt5.QtCore import QUrl
-from PyQt5.QtNetwork import (QNetworkProxy, QNetworkProxyQuery, QHostInfo,
+from PyQt6.QtCore import QUrl
+from PyQt6.QtNetwork import (QNetworkProxy, QNetworkProxyQuery, QHostInfo,
QHostAddress)
from qutebrowser.browser.network import pac
diff --git a/tests/unit/browser/webkit/test_cache.py b/tests/unit/browser/webkit/test_cache.py
index 83d5054d7..2d35e7683 100644
--- a/tests/unit/browser/webkit/test_cache.py
+++ b/tests/unit/browser/webkit/test_cache.py
@@ -19,8 +19,8 @@
# along with qutebrowser. If not, see <https://www.gnu.org/licenses/>.
import pytest
-from PyQt5.QtCore import QUrl, QDateTime
-from PyQt5.QtNetwork import QNetworkDiskCache, QNetworkCacheMetaData
+from PyQt6.QtCore import QUrl, QDateTime
+from PyQt6.QtNetwork import QNetworkDiskCache, QNetworkCacheMetaData
from qutebrowser.browser.webkit import cache
diff --git a/tests/unit/browser/webkit/test_certificateerror.py b/tests/unit/browser/webkit/test_certificateerror.py
index e615854ca..0f298a030 100644
--- a/tests/unit/browser/webkit/test_certificateerror.py
+++ b/tests/unit/browser/webkit/test_certificateerror.py
@@ -18,7 +18,7 @@
# along with qutebrowser. If not, see <https://www.gnu.org/licenses/>.
import pytest
-from PyQt5.QtNetwork import QSslError
+from PyQt6.QtNetwork import QSslError
from qutebrowser.browser.webkit import certificateerror
diff --git a/tests/unit/browser/webkit/test_cookies.py b/tests/unit/browser/webkit/test_cookies.py
index 81da561ce..6b8b731a5 100644
--- a/tests/unit/browser/webkit/test_cookies.py
+++ b/tests/unit/browser/webkit/test_cookies.py
@@ -18,8 +18,8 @@
# You should have received a copy of the GNU General Public License
# along with qutebrowser. If not, see <https://www.gnu.org/licenses/>.
-from PyQt5.QtNetwork import QNetworkCookie
-from PyQt5.QtCore import QUrl
+from PyQt6.QtNetwork import QNetworkCookie
+from PyQt6.QtCore import QUrl
import pytest
from qutebrowser.browser.webkit import cookies
diff --git a/tests/unit/browser/webkit/test_tabhistory.py b/tests/unit/browser/webkit/test_tabhistory.py
index d1c4a25a4..325d1fa3d 100644
--- a/tests/unit/browser/webkit/test_tabhistory.py
+++ b/tests/unit/browser/webkit/test_tabhistory.py
@@ -23,9 +23,9 @@ import dataclasses
from typing import Any
import pytest
-pytest.importorskip('PyQt5.QtWebKit')
-from PyQt5.QtCore import QUrl, QPoint
-from PyQt5.QtWebKit import QWebHistory
+pytest.importorskip('PyQt6.QtWebKit')
+from PyQt6.QtCore import QUrl, QPoint
+from PyQt6.QtWebKit import QWebHistory
from qutebrowser.browser.webkit import tabhistory
from qutebrowser.misc.sessions import TabHistoryItem as Item
diff --git a/tests/unit/browser/webkit/test_webkitelem.py b/tests/unit/browser/webkit/test_webkitelem.py
index 593896e96..75317dec3 100644
--- a/tests/unit/browser/webkit/test_webkitelem.py
+++ b/tests/unit/browser/webkit/test_webkitelem.py
@@ -27,8 +27,8 @@ import itertools
import dataclasses
import pytest
-from PyQt5.QtCore import QRect, QPoint, QUrl
-QWebElement = pytest.importorskip('PyQt5.QtWebKit').QWebElement
+from PyQt6.QtCore import QRect, QPoint, QUrl
+QWebElement = pytest.importorskip('PyQt6.QtWebKit').QWebElement
from qutebrowser.browser import browsertab
from qutebrowser.browser.webkit import webkitelem
diff --git a/tests/unit/browser/webkit/test_webkitsettings.py b/tests/unit/browser/webkit/test_webkitsettings.py
index 8b30b85aa..56d3d8a53 100644
--- a/tests/unit/browser/webkit/test_webkitsettings.py
+++ b/tests/unit/browser/webkit/test_webkitsettings.py
@@ -18,7 +18,7 @@
# along with qutebrowser. If not, see <https://www.gnu.org/licenses/>.
import pytest
-pytest.importorskip('PyQt5.QtWebKitWidgets')
+pytest.importorskip('PyQt6.QtWebKitWidgets')
from qutebrowser.browser.webkit import webkitsettings
diff --git a/tests/unit/commands/test_argparser.py b/tests/unit/commands/test_argparser.py
index cfa94c552..4b6be7655 100644
--- a/tests/unit/commands/test_argparser.py
+++ b/tests/unit/commands/test_argparser.py
@@ -23,7 +23,7 @@ import inspect
import enum
import pytest
-from PyQt5.QtCore import QUrl
+from PyQt6.QtCore import QUrl
from qutebrowser.commands import argparser, cmdexc
diff --git a/tests/unit/commands/test_userscripts.py b/tests/unit/commands/test_userscripts.py
index 436e9e2a7..03ec9c094 100644
--- a/tests/unit/commands/test_userscripts.py
+++ b/tests/unit/commands/test_userscripts.py
@@ -25,7 +25,7 @@ import logging
import signal
import pytest
-from PyQt5.QtCore import QFileSystemWatcher
+from PyQt6.QtCore import QFileSystemWatcher
from qutebrowser.commands import userscripts
from qutebrowser.utils import utils
diff --git a/tests/unit/completion/test_completer.py b/tests/unit/completion/test_completer.py
index 467357d32..bffb4f42d 100644
--- a/tests/unit/completion/test_completer.py
+++ b/tests/unit/completion/test_completer.py
@@ -22,8 +22,8 @@
import unittest.mock
import pytest
-from PyQt5.QtCore import QObject
-from PyQt5.QtGui import QStandardItemModel
+from PyQt6.QtCore import QObject
+from PyQt6.QtGui import QStandardItemModel
from qutebrowser.completion import completer
from qutebrowser.commands import command
diff --git a/tests/unit/completion/test_completiondelegate.py b/tests/unit/completion/test_completiondelegate.py
index ad081ccbf..1db96a904 100644
--- a/tests/unit/completion/test_completiondelegate.py
+++ b/tests/unit/completion/test_completiondelegate.py
@@ -21,9 +21,9 @@ from unittest import mock
import hypothesis
import hypothesis.strategies
import pytest
-from PyQt5.QtCore import Qt
-from PyQt5.QtGui import QTextDocument, QColor
-from PyQt5.QtWidgets import QTextEdit
+from PyQt6.QtCore import Qt
+from PyQt6.QtGui import QTextDocument, QColor
+from PyQt6.QtWidgets import QTextEdit
from qutebrowser.completion import completiondelegate
diff --git a/tests/unit/completion/test_completionmodel.py b/tests/unit/completion/test_completionmodel.py
index 2130f1f1c..888987942 100644
--- a/tests/unit/completion/test_completionmodel.py
+++ b/tests/unit/completion/test_completionmodel.py
@@ -24,7 +24,7 @@ import hypothesis
from hypothesis import strategies
import pytest
-from PyQt5.QtCore import QModelIndex
+from PyQt6.QtCore import QModelIndex
from qutebrowser.completion.models import completionmodel, listcategory
from qutebrowser.utils import qtutils
diff --git a/tests/unit/completion/test_completionwidget.py b/tests/unit/completion/test_completionwidget.py
index 89390cbf1..f9983e5f1 100644
--- a/tests/unit/completion/test_completionwidget.py
+++ b/tests/unit/completion/test_completionwidget.py
@@ -22,7 +22,7 @@
from unittest import mock
import pytest
-from PyQt5.QtCore import QRect
+from PyQt6.QtCore import QRect
from qutebrowser.completion import completionwidget
from qutebrowser.completion.models import completionmodel, listcategory
diff --git a/tests/unit/completion/test_models.py b/tests/unit/completion/test_models.py
index c20fe293c..4777f17f6 100644
--- a/tests/unit/completion/test_models.py
+++ b/tests/unit/completion/test_models.py
@@ -31,9 +31,9 @@ from unittest import mock
import hypothesis
import hypothesis.strategies as hst
import pytest
-from PyQt5.QtCore import QUrl, QDateTime, QProcess
+from PyQt6.QtCore import QUrl, QDateTime, QProcess
try:
- from PyQt5.QtWebEngineWidgets import (
+ from PyQt6.QtWebEngineWidgets import (
QWebEngineHistory, QWebEngineHistoryItem
)
except ImportError:
@@ -1320,7 +1320,7 @@ def test_url_completion_benchmark(benchmark, info,
@pytest.fixture
def tab_with_history(fake_web_tab, tabbed_browser_stubs, info, monkeypatch):
"""Returns a fake tab with some fake history items."""
- pytest.importorskip('PyQt5.QtWebEngineWidgets')
+ pytest.importorskip('PyQt6.QtWebEngineWidgets')
tab = fake_web_tab(QUrl('https://github.com'), 'GitHub', 0)
current_idx = 2
monkeypatch.setattr(
diff --git a/tests/unit/components/test_blockutils.py b/tests/unit/components/test_blockutils.py
index 08d8cee60..a10b6484c 100644
--- a/tests/unit/components/test_blockutils.py
+++ b/tests/unit/components/test_blockutils.py
@@ -21,7 +21,7 @@
import io
from typing import IO
-from PyQt5.QtCore import QUrl
+from PyQt6.QtCore import QUrl
import pytest
diff --git a/tests/unit/components/test_braveadblock.py b/tests/unit/components/test_braveadblock.py
index fc50cb595..0f8f78f1b 100644
--- a/tests/unit/components/test_braveadblock.py
+++ b/tests/unit/components/test_braveadblock.py
@@ -22,7 +22,7 @@ import logging
import csv
from typing import Iterable, Tuple
-from PyQt5.QtCore import QUrl
+from PyQt6.QtCore import QUrl
import pytest
diff --git a/tests/unit/components/test_hostblock.py b/tests/unit/components/test_hostblock.py
index 6a71058ea..f85a3e803 100644
--- a/tests/unit/components/test_hostblock.py
+++ b/tests/unit/components/test_hostblock.py
@@ -24,7 +24,7 @@ import logging
import pytest
-from PyQt5.QtCore import QUrl
+from PyQt6.QtCore import QUrl
from qutebrowser.components import hostblock
from qutebrowser.utils import urlmatch
diff --git a/tests/unit/components/test_readlinecommands.py b/tests/unit/components/test_readlinecommands.py
index 334e2ef9e..d044d9f59 100644
--- a/tests/unit/components/test_readlinecommands.py
+++ b/tests/unit/components/test_readlinecommands.py
@@ -20,7 +20,7 @@
import re
import inspect
-from PyQt5.QtWidgets import QLineEdit, QApplication
+from PyQt6.QtWidgets import QLineEdit, QApplication
import pytest
from qutebrowser.components import readlinecommands
diff --git a/tests/unit/config/test_config.py b/tests/unit/config/test_config.py
index b88bc2f8d..c69e42f4d 100644
--- a/tests/unit/config/test_config.py
+++ b/tests/unit/config/test_config.py
@@ -23,8 +23,8 @@ import unittest.mock
import functools
import pytest
-from PyQt5.QtCore import QUrl
-from PyQt5.QtGui import QColor
+from PyQt6.QtCore import QUrl
+from PyQt6.QtGui import QColor
from qutebrowser.config import config, configdata, configexc
from qutebrowser.utils import usertypes, urlmatch
diff --git a/tests/unit/config/test_configcommands.py b/tests/unit/config/test_configcommands.py
index 0375503e8..42348daad 100644
--- a/tests/unit/config/test_configcommands.py
+++ b/tests/unit/config/test_configcommands.py
@@ -23,7 +23,7 @@ import functools
import unittest.mock
import pytest
-from PyQt5.QtCore import QUrl
+from PyQt6.QtCore import QUrl
from qutebrowser.config import configcommands
from qutebrowser.api import cmdutils
diff --git a/tests/unit/config/test_configfiles.py b/tests/unit/config/test_configfiles.py
index 65952ddb4..9ce859b3f 100644
--- a/tests/unit/config/test_configfiles.py
+++ b/tests/unit/config/test_configfiles.py
@@ -25,7 +25,7 @@ import textwrap
import logging
import pytest
-from PyQt5.QtCore import QSettings
+from PyQt6.QtCore import QSettings
from qutebrowser.config import (config, configfiles, configexc, configdata,
configtypes)
@@ -167,7 +167,7 @@ def state_writer(data_tmpdir):
@pytest.fixture
def qtwe_version_patcher(monkeypatch):
try:
- from PyQt5 import QtWebEngineWidgets # pylint: disable=unused-import
+ from PyQt6 import QtWebEngineWidgets # pylint: disable=unused-import
except ImportError:
pytest.skip("QtWebEngine not available")
@@ -223,7 +223,7 @@ def test_qtwe_version_changed(state_writer, qtwe_version_patcher,
def test_qtwe_version_changed_webkit(stubs, monkeypatch, state_writer):
- fake = stubs.ImportFake({'PyQt5.QtWebEngineWidgets': False}, monkeypatch)
+ fake = stubs.ImportFake({'PyQt6.QtWebEngineWidgets': False}, monkeypatch)
fake.patch()
state_writer('qtwe_version', 'no')
diff --git a/tests/unit/config/test_configinit.py b/tests/unit/config/test_configinit.py
index 870c3826b..36f3fa391 100644
--- a/tests/unit/config/test_configinit.py
+++ b/tests/unit/config/test_configinit.py
@@ -427,7 +427,7 @@ def test_get_backend(monkeypatch, args, config_stub,
real_import = __import__
def fake_import(name, *args, **kwargs):
- if name != 'PyQt5.QtWebKit':
+ if name != 'PyQt6.QtWebKit':
return real_import(name, *args, **kwargs)
raise ImportError
diff --git a/tests/unit/config/test_configtypes.py b/tests/unit/config/test_configtypes.py
index 66b152937..fbffa1fb5 100644
--- a/tests/unit/config/test_configtypes.py
+++ b/tests/unit/config/test_configtypes.py
@@ -30,9 +30,9 @@ import dataclasses
import pytest
import hypothesis
from hypothesis import strategies
-from PyQt5.QtCore import QUrl
-from PyQt5.QtGui import QColor, QFont
-from PyQt5.QtNetwork import QNetworkProxy
+from PyQt6.QtCore import QUrl
+from PyQt6.QtGui import QColor, QFont
+from PyQt6.QtNetwork import QNetworkProxy
from qutebrowser.misc import objects
from qutebrowser.config import configtypes, configexc
diff --git a/tests/unit/config/test_configutils.py b/tests/unit/config/test_configutils.py
index e7ce15aff..2f0c02d31 100644
--- a/tests/unit/config/test_configutils.py
+++ b/tests/unit/config/test_configutils.py
@@ -20,8 +20,8 @@
import hypothesis
from hypothesis import strategies
import pytest
-from PyQt5.QtCore import QUrl
-from PyQt5.QtWidgets import QLabel
+from PyQt6.QtCore import QUrl
+from PyQt6.QtWidgets import QLabel
from qutebrowser.config import configutils, configdata, configtypes, configexc
from qutebrowser.utils import urlmatch, usertypes, qtutils
diff --git a/tests/unit/config/test_qtargs.py b/tests/unit/config/test_qtargs.py
index 4c31c5b07..c4202a58a 100644
--- a/tests/unit/config/test_qtargs.py
+++ b/tests/unit/config/test_qtargs.py
@@ -126,7 +126,7 @@ class TestWebEngineArgs:
@pytest.fixture(autouse=True)
def ensure_webengine(self, monkeypatch):
"""Skip all tests if QtWebEngine is unavailable."""
- pytest.importorskip("PyQt5.QtWebEngine")
+ pytest.importorskip("PyQt6.QtWebEngine")
monkeypatch.setattr(qtargs.objects, 'backend', usertypes.Backend.QtWebEngine)
@pytest.mark.parametrize('backend, qt_version, expected', [
diff --git a/tests/unit/config/test_qtargs_locale_workaround.py b/tests/unit/config/test_qtargs_locale_workaround.py
index 4a4152b80..f1d7b216b 100644
--- a/tests/unit/config/test_qtargs_locale_workaround.py
+++ b/tests/unit/config/test_qtargs_locale_workaround.py
@@ -20,13 +20,13 @@ import os
import pathlib
import pytest
-from PyQt5.QtCore import QLocale
+from PyQt6.QtCore import QLocale
from qutebrowser.utils import utils
from qutebrowser.config import qtargs
-pytest.importorskip('PyQt5.QtWebEngineWidgets')
+pytest.importorskip('PyQt6.QtWebEngineWidgets')
@pytest.fixture(autouse=True)
diff --git a/tests/unit/config/test_stylesheet.py b/tests/unit/config/test_stylesheet.py
index 4ffa107ed..981b52880 100644
--- a/tests/unit/config/test_stylesheet.py
+++ b/tests/unit/config/test_stylesheet.py
@@ -18,7 +18,7 @@
import pytest
-from PyQt5.QtCore import QObject
+from PyQt6.QtCore import QObject
from qutebrowser.config import stylesheet
diff --git a/tests/unit/javascript/conftest.py b/tests/unit/javascript/conftest.py
index 4a7f09204..272ec2af9 100644
--- a/tests/unit/javascript/conftest.py
+++ b/tests/unit/javascript/conftest.py
@@ -23,7 +23,7 @@ import pathlib
import pytest
import jinja2
-from PyQt5.QtCore import QUrl
+from PyQt6.QtCore import QUrl
import qutebrowser
from qutebrowser.utils import usertypes
diff --git a/tests/unit/javascript/position_caret/test_position_caret.py b/tests/unit/javascript/position_caret/test_position_caret.py
index 70a1df333..ef5ce952c 100644
--- a/tests/unit/javascript/position_caret/test_position_caret.py
+++ b/tests/unit/javascript/position_caret/test_position_caret.py
@@ -21,8 +21,8 @@
import pytest
-QWebSettings = pytest.importorskip("PyQt5.QtWebKit").QWebSettings
-QWebPage = pytest.importorskip("PyQt5.QtWebKitWidgets").QWebPage
+QWebSettings = pytest.importorskip("PyQt6.QtWebKit").QWebSettings
+QWebPage = pytest.importorskip("PyQt6.QtWebKitWidgets").QWebPage
@pytest.fixture(autouse=True)
diff --git a/tests/unit/javascript/stylesheet/test_stylesheet_js.py b/tests/unit/javascript/stylesheet/test_stylesheet_js.py
index 1eebe3b7f..237af660a 100644
--- a/tests/unit/javascript/stylesheet/test_stylesheet_js.py
+++ b/tests/unit/javascript/stylesheet/test_stylesheet_js.py
@@ -22,7 +22,7 @@
import pathlib
import pytest
-QtWebEngineWidgets = pytest.importorskip("PyQt5.QtWebEngineWidgets")
+QtWebEngineWidgets = pytest.importorskip("PyQt6.QtWebEngineWidgets")
QWebEngineProfile = QtWebEngineWidgets.QWebEngineProfile
from qutebrowser.utils import javascript
diff --git a/tests/unit/javascript/test_greasemonkey.py b/tests/unit/javascript/test_greasemonkey.py
index 17847816d..5bbc6bda1 100644
--- a/tests/unit/javascript/test_greasemonkey.py
+++ b/tests/unit/javascript/test_greasemonkey.py
@@ -23,7 +23,7 @@ import textwrap
import pytest
import py.path # pylint: disable=no-name-in-module
-from PyQt5.QtCore import QUrl
+from PyQt6.QtCore import QUrl
from qutebrowser.utils import usertypes, version
from qutebrowser.browser import greasemonkey
diff --git a/tests/unit/javascript/test_js_execution.py b/tests/unit/javascript/test_js_execution.py
index e371e0f36..a98ca1175 100644
--- a/tests/unit/javascript/test_js_execution.py
+++ b/tests/unit/javascript/test_js_execution.py
@@ -28,7 +28,7 @@ def test_simple_js_webkit(webview, js_enabled, expected):
"""With QtWebKit, evaluateJavaScript works when JS is on."""
# If we get there (because of the webview fixture) we can be certain
# QtWebKit is available
- from PyQt5.QtWebKit import QWebSettings
+ from PyQt6.QtWebKit import QWebSettings
webview.settings().setAttribute(QWebSettings.JavascriptEnabled, js_enabled)
result = webview.page().mainFrame().evaluateJavaScript('1 + 1')
assert result == expected
@@ -39,7 +39,7 @@ def test_element_js_webkit(webview, js_enabled, expected):
"""With QtWebKit, evaluateJavaScript on an element works with JS off."""
# If we get there (because of the webview fixture) we can be certain
# QtWebKit is available
- from PyQt5.QtWebKit import QWebSettings
+ from PyQt6.QtWebKit import QWebSettings
webview.settings().setAttribute(QWebSettings.JavascriptEnabled, js_enabled)
elem = webview.page().mainFrame().documentElement()
result = elem.evaluateJavaScript('1 + 1')
@@ -63,7 +63,7 @@ def test_simple_js_webengine(qtbot, webengineview, qapp,
"""With QtWebEngine, runJavaScript works even when JS is off."""
# If we get there (because of the webengineview fixture) we can be certain
# QtWebEngine is available
- from PyQt5.QtWebEngineWidgets import QWebEngineSettings, QWebEngineScript
+ from PyQt6.QtWebEngineWidgets import QWebEngineSettings, QWebEngineScript
assert world in [QWebEngineScript.MainWorld,
QWebEngineScript.ApplicationWorld,
diff --git a/tests/unit/javascript/test_js_quirks.py b/tests/unit/javascript/test_js_quirks.py
index 7036dcfc9..31dad62f9 100644
--- a/tests/unit/javascript/test_js_quirks.py
+++ b/tests/unit/javascript/test_js_quirks.py
@@ -26,7 +26,7 @@ the native functionality exists.
import pytest
-from PyQt5.QtCore import QUrl
+from PyQt6.QtCore import QUrl
from qutebrowser.utils import usertypes
diff --git a/tests/unit/keyinput/key_data.py b/tests/unit/keyinput/key_data.py
index c451d2534..ffa375d16 100644
--- a/tests/unit/keyinput/key_data.py
+++ b/tests/unit/keyinput/key_data.py
@@ -25,7 +25,7 @@
import dataclasses
from typing import Optional
-from PyQt5.QtCore import Qt
+from PyQt6.QtCore import Qt
@dataclasses.dataclass(order=True)
diff --git a/tests/unit/keyinput/test_basekeyparser.py b/tests/unit/keyinput/test_basekeyparser.py
index 30ee36301..a857d451b 100644
--- a/tests/unit/keyinput/test_basekeyparser.py
+++ b/tests/unit/keyinput/test_basekeyparser.py
@@ -21,7 +21,7 @@
from unittest import mock
-from PyQt5.QtCore import Qt
+from PyQt6.QtCore import Qt
import pytest
from qutebrowser.keyinput import basekeyparser, keyutils
diff --git a/tests/unit/keyinput/test_bindingtrie.py b/tests/unit/keyinput/test_bindingtrie.py
index c769386c0..5c00fbbd3 100644
--- a/tests/unit/keyinput/test_bindingtrie.py
+++ b/tests/unit/keyinput/test_bindingtrie.py
@@ -25,7 +25,7 @@ import textwrap
import pytest
-from PyQt5.QtGui import QKeySequence
+from PyQt6.QtGui import QKeySequence
from qutebrowser.keyinput import basekeyparser
from qutebrowser.keyinput import keyutils
diff --git a/tests/unit/keyinput/test_keyutils.py b/tests/unit/keyinput/test_keyutils.py
index 195518127..6bfa098fc 100644
--- a/tests/unit/keyinput/test_keyutils.py
+++ b/tests/unit/keyinput/test_keyutils.py
@@ -22,9 +22,9 @@ import operator
import hypothesis
from hypothesis import strategies
import pytest
-from PyQt5.QtCore import Qt, QEvent, pyqtSignal
-from PyQt5.QtGui import QKeyEvent, QKeySequence
-from PyQt5.QtWidgets import QWidget
+from PyQt6.QtCore import Qt, QEvent, pyqtSignal
+from PyQt6.QtGui import QKeyEvent, QKeySequence
+from PyQt6.QtWidgets import QWidget
from unit.keyinput import key_data
from qutebrowser.keyinput import keyutils
diff --git a/tests/unit/keyinput/test_modeman.py b/tests/unit/keyinput/test_modeman.py
index 8cc298f87..c192601f0 100644
--- a/tests/unit/keyinput/test_modeman.py
+++ b/tests/unit/keyinput/test_modeman.py
@@ -19,7 +19,7 @@
import pytest
-from PyQt5.QtCore import Qt, QObject, pyqtSignal
+from PyQt6.QtCore import Qt, QObject, pyqtSignal
from qutebrowser.utils import usertypes
from qutebrowser.keyinput import keyutils
diff --git a/tests/unit/keyinput/test_modeparsers.py b/tests/unit/keyinput/test_modeparsers.py
index ff3758362..fad2b2f3d 100644
--- a/tests/unit/keyinput/test_modeparsers.py
+++ b/tests/unit/keyinput/test_modeparsers.py
@@ -19,8 +19,8 @@
"""Tests for mode parsers."""
-from PyQt5.QtCore import Qt
-from PyQt5.QtGui import QKeySequence
+from PyQt6.QtCore import Qt
+from PyQt6.QtGui import QKeySequence
import pytest
diff --git a/tests/unit/mainwindow/statusbar/test_textbase.py b/tests/unit/mainwindow/statusbar/test_textbase.py
index 631c6ce44..16126d344 100644
--- a/tests/unit/mainwindow/statusbar/test_textbase.py
+++ b/tests/unit/mainwindow/statusbar/test_textbase.py
@@ -19,7 +19,7 @@
"""Test TextBase widget."""
-from PyQt5.QtCore import Qt
+from PyQt6.QtCore import Qt
import pytest
from qutebrowser.mainwindow.statusbar.textbase import TextBase
diff --git a/tests/unit/mainwindow/statusbar/test_url.py b/tests/unit/mainwindow/statusbar/test_url.py
index efe4d6f93..3a9a5444c 100644
--- a/tests/unit/mainwindow/statusbar/test_url.py
+++ b/tests/unit/mainwindow/statusbar/test_url.py
@@ -22,7 +22,7 @@
import pytest
-from PyQt5.QtCore import QUrl
+from PyQt6.QtCore import QUrl
from qutebrowser.utils import usertypes, urlutils
from qutebrowser.mainwindow.statusbar import url
diff --git a/tests/unit/mainwindow/test_messageview.py b/tests/unit/mainwindow/test_messageview.py
index 9e7627635..f9b05335e 100644
--- a/tests/unit/mainwindow/test_messageview.py
+++ b/tests/unit/mainwindow/test_messageview.py
@@ -18,7 +18,7 @@
# along with qutebrowser. If not, see <https://www.gnu.org/licenses/>.
import pytest
-from PyQt5.QtCore import Qt
+from PyQt6.QtCore import Qt
from qutebrowser.mainwindow import messageview
from qutebrowser.utils import usertypes
diff --git a/tests/unit/mainwindow/test_prompt.py b/tests/unit/mainwindow/test_prompt.py
index 5b774bdaa..6922183d9 100644
--- a/tests/unit/mainwindow/test_prompt.py
+++ b/tests/unit/mainwindow/test_prompt.py
@@ -20,7 +20,7 @@
import os
import pytest
-from PyQt5.QtCore import Qt
+from PyQt6.QtCore import Qt
from qutebrowser.mainwindow import prompt as promptmod
from qutebrowser.utils import usertypes
diff --git a/tests/unit/mainwindow/test_tabwidget.py b/tests/unit/mainwindow/test_tabwidget.py
index 564ca1b38..3691d5778 100644
--- a/tests/unit/mainwindow/test_tabwidget.py
+++ b/tests/unit/mainwindow/test_tabwidget.py
@@ -23,7 +23,7 @@
import functools
import pytest
-from PyQt5.QtGui import QIcon, QPixmap
+from PyQt6.QtGui import QIcon, QPixmap
from qutebrowser.mainwindow import tabwidget
from qutebrowser.utils import usertypes
diff --git a/tests/unit/misc/test_autoupdate.py b/tests/unit/misc/test_autoupdate.py
index f7cf78248..38d838e93 100644
--- a/tests/unit/misc/test_autoupdate.py
+++ b/tests/unit/misc/test_autoupdate.py
@@ -21,7 +21,7 @@
"""Tests for qutebrowser.misc.autoupdate."""
import pytest
-from PyQt5.QtCore import QUrl
+from PyQt6.QtCore import QUrl
from qutebrowser.misc import autoupdate, httpclient
diff --git a/tests/unit/misc/test_editor.py b/tests/unit/misc/test_editor.py
index 8e5597a0e..8187271c0 100644
--- a/tests/unit/misc/test_editor.py
+++ b/tests/unit/misc/test_editor.py
@@ -25,7 +25,7 @@ import os
import logging
import pytest
-from PyQt5.QtCore import QProcess
+from PyQt6.QtCore import QProcess
from qutebrowser.misc import editor as editormod
from qutebrowser.utils import usertypes
diff --git a/tests/unit/misc/test_elf.py b/tests/unit/misc/test_elf.py
index 86060bbde..498be108b 100644
--- a/tests/unit/misc/test_elf.py
+++ b/tests/unit/misc/test_elf.py
@@ -57,7 +57,7 @@ def test_result(qapp, caplog):
If that happens, please report a bug about it!
"""
- pytest.importorskip('PyQt5.QtWebEngineCore')
+ pytest.importorskip('PyQt6.QtWebEngineCore')
versions = elf.parse_webenginecore()
assert versions is not None
diff --git a/tests/unit/misc/test_guiprocess.py b/tests/unit/misc/test_guiprocess.py
index be86bf215..6f7ce8810 100644
--- a/tests/unit/misc/test_guiprocess.py
+++ b/tests/unit/misc/test_guiprocess.py
@@ -23,7 +23,7 @@ import sys
import logging
import pytest
-from PyQt5.QtCore import QProcess, QUrl
+from PyQt6.QtCore import QProcess, QUrl
from qutebrowser.misc import guiprocess
from qutebrowser.utils import usertypes, utils
diff --git a/tests/unit/misc/test_ipc.py b/tests/unit/misc/test_ipc.py
index 51d7c6343..1bd6e4695 100644
--- a/tests/unit/misc/test_ipc.py
+++ b/tests/unit/misc/test_ipc.py
@@ -30,9 +30,9 @@ from unittest import mock
from typing import Optional, List
import pytest
-from PyQt5.QtCore import pyqtSignal, QObject
-from PyQt5.QtNetwork import QLocalServer, QLocalSocket, QAbstractSocket
-from PyQt5.QtTest import QSignalSpy
+from PyQt6.QtCore import pyqtSignal, QObject
+from PyQt6.QtNetwork import QLocalServer, QLocalSocket, QAbstractSocket
+from PyQt6.QtTest import QSignalSpy
import qutebrowser
from qutebrowser.misc import ipc
diff --git a/tests/unit/misc/test_miscwidgets.py b/tests/unit/misc/test_miscwidgets.py
index 6e1919ec3..7749b7367 100644
--- a/tests/unit/misc/test_miscwidgets.py
+++ b/tests/unit/misc/test_miscwidgets.py
@@ -19,8 +19,8 @@
import logging
-from PyQt5.QtCore import Qt, QSize
-from PyQt5.QtWidgets import QWidget
+from PyQt6.QtCore import Qt, QSize
+from PyQt6.QtWidgets import QWidget
import pytest
from qutebrowser.misc import miscwidgets
diff --git a/tests/unit/misc/test_msgbox.py b/tests/unit/misc/test_msgbox.py
index c5c23639a..78f87e4c9 100644
--- a/tests/unit/misc/test_msgbox.py
+++ b/tests/unit/misc/test_msgbox.py
@@ -20,8 +20,8 @@
import pytest
-from PyQt5.QtCore import Qt
-from PyQt5.QtWidgets import QMessageBox, QWidget
+from PyQt6.QtCore import Qt
+from PyQt6.QtWidgets import QMessageBox, QWidget
from qutebrowser.misc import msgbox
from qutebrowser.utils import utils
diff --git a/tests/unit/misc/test_pastebin.py b/tests/unit/misc/test_pastebin.py
index 7a47e723c..e3f1691b5 100644
--- a/tests/unit/misc/test_pastebin.py
+++ b/tests/unit/misc/test_pastebin.py
@@ -19,7 +19,7 @@
# along with qutebrowser. If not, see <https://www.gnu.org/licenses/>.
import pytest
-from PyQt5.QtCore import QUrl
+from PyQt6.QtCore import QUrl
from qutebrowser.misc import httpclient, pastebin
diff --git a/tests/unit/misc/test_sessions.py b/tests/unit/misc/test_sessions.py
index f77982e5f..144e2d7b2 100644
--- a/tests/unit/misc/test_sessions.py
+++ b/tests/unit/misc/test_sessions.py
@@ -23,8 +23,8 @@ import logging
import pytest
import yaml
-from PyQt5.QtCore import QUrl, QPoint, QByteArray, QObject
-QWebView = pytest.importorskip('PyQt5.QtWebKitWidgets').QWebView
+from PyQt6.QtCore import QUrl, QPoint, QByteArray, QObject
+QWebView = pytest.importorskip('PyQt6.QtWebKitWidgets').QWebView
from qutebrowser.misc import sessions
from qutebrowser.misc.sessions import TabHistoryItem as Item
diff --git a/tests/unit/misc/test_sql.py b/tests/unit/misc/test_sql.py
index 80ab7513c..4608fd9ca 100644
--- a/tests/unit/misc/test_sql.py
+++ b/tests/unit/misc/test_sql.py
@@ -23,7 +23,7 @@ import pytest
import hypothesis
from hypothesis import strategies
-from PyQt5.QtSql import QSqlDatabase, QSqlError, QSqlQuery
+from PyQt6.QtSql import QSqlDatabase, QSqlError, QSqlQuery
from qutebrowser.misc import sql
diff --git a/tests/unit/misc/test_throttle.py b/tests/unit/misc/test_throttle.py
index 33e9949f2..d057935c4 100644
--- a/tests/unit/misc/test_throttle.py
+++ b/tests/unit/misc/test_throttle.py
@@ -23,7 +23,7 @@ from unittest import mock
import sip
import pytest
-from PyQt5.QtCore import QObject
+from PyQt6.QtCore import QObject
from helpers import testutils
from qutebrowser.misc import throttle
diff --git a/tests/unit/misc/test_utilcmds.py b/tests/unit/misc/test_utilcmds.py
index 76bc015d2..e2ec9a994 100644
--- a/tests/unit/misc/test_utilcmds.py
+++ b/tests/unit/misc/test_utilcmds.py
@@ -20,7 +20,7 @@
"""Tests for qutebrowser.misc.utilcmds."""
import pytest
-from PyQt5.QtCore import QUrl
+from PyQt6.QtCore import QUrl
from qutebrowser.misc import utilcmds
from qutebrowser.api import cmdutils
diff --git a/tests/unit/test_app.py b/tests/unit/test_app.py
index e359f2136..a9ffba859 100644
--- a/tests/unit/test_app.py
+++ b/tests/unit/test_app.py
@@ -19,7 +19,7 @@
"""Tests for the qutebrowser.app module."""
-from PyQt5.QtCore import QBuffer
+from PyQt6.QtCore import QBuffer
from qutebrowser.misc import objects
from qutebrowser import app
diff --git a/tests/unit/utils/test_debug.py b/tests/unit/utils/test_debug.py
index 62d0f4a7b..6f109f71f 100644
--- a/tests/unit/utils/test_debug.py
+++ b/tests/unit/utils/test_debug.py
@@ -25,8 +25,8 @@ import time
import textwrap
import pytest
-from PyQt5.QtCore import pyqtSignal, Qt, QEvent, QObject, QTimer
-from PyQt5.QtWidgets import QStyle, QFrame, QSpinBox
+from PyQt6.QtCore import pyqtSignal, Qt, QEvent, QObject, QTimer
+from PyQt6.QtWidgets import QStyle, QFrame, QSpinBox
from qutebrowser.utils import debug
from qutebrowser.misc import objects
@@ -186,7 +186,7 @@ class TestQFlagsKey:
No idea what's happening here exactly...
"""
- qwebpage = pytest.importorskip("PyQt5.QtWebKitWidgets").QWebPage
+ qwebpage = pytest.importorskip("PyQt6.QtWebKitWidgets").QWebPage
flags = qwebpage.FindWrapsAroundDocument
flags |= qwebpage.FindBackward
@@ -297,6 +297,6 @@ class TestGetAllObjects:
def test_get_all_objects_qapp(self, qapp, monkeypatch):
monkeypatch.setattr(objects, 'qapp', qapp)
objs = debug.get_all_objects()
- event_dispatcher = '<PyQt5.QtCore.QAbstractEventDispatcher object at'
- session_manager = '<PyQt5.QtGui.QSessionManager object at'
+ event_dispatcher = '<PyQt6.QtCore.QAbstractEventDispatcher object at'
+ session_manager = '<PyQt6.QtGui.QSessionManager object at'
assert event_dispatcher in objs or session_manager in objs
diff --git a/tests/unit/utils/test_error.py b/tests/unit/utils/test_error.py
index b59a7150b..e1b7fa2e8 100644
--- a/tests/unit/utils/test_error.py
+++ b/tests/unit/utils/test_error.py
@@ -21,8 +21,8 @@
import logging
import pytest
-from PyQt5.QtCore import QTimer
-from PyQt5.QtWidgets import QMessageBox
+from PyQt6.QtCore import QTimer
+from PyQt6.QtWidgets import QMessageBox
from qutebrowser.utils import error, utils
from qutebrowser.misc import ipc
diff --git a/tests/unit/utils/test_jinja.py b/tests/unit/utils/test_jinja.py
index 85be8a6e3..f976cbfc9 100644
--- a/tests/unit/utils/test_jinja.py
+++ b/tests/unit/utils/test_jinja.py
@@ -24,7 +24,7 @@ import logging
import jinja2.exceptions
import pytest
-from PyQt5.QtCore import QUrl
+from PyQt6.QtCore import QUrl
from qutebrowser.utils import jinja
from qutebrowser.config import configexc
diff --git a/tests/unit/utils/test_log.py b/tests/unit/utils/test_log.py
index 7682c1156..ca9996cbb 100644
--- a/tests/unit/utils/test_log.py
+++ b/tests/unit/utils/test_log.py
@@ -28,7 +28,7 @@ import dataclasses
import pytest
import _pytest.logging
-from PyQt5 import QtCore
+from PyQt6 import QtCore
from qutebrowser import qutebrowser
from qutebrowser.utils import log
diff --git a/tests/unit/utils/test_qtutils.py b/tests/unit/utils/test_qtutils.py
index 2d98feece..abf3e43b1 100644
--- a/tests/unit/utils/test_qtutils.py
+++ b/tests/unit/utils/test_qtutils.py
@@ -28,9 +28,9 @@ import unittest
import unittest.mock
import pytest
-from PyQt5.QtCore import (QDataStream, QPoint, QUrl, QByteArray, QIODevice,
+from PyQt6.QtCore import (QDataStream, QPoint, QUrl, QByteArray, QIODevice,
QTimer, QBuffer, QFile, QProcess, QFileDevice)
-from PyQt5.QtGui import QColor
+from PyQt6.QtGui import QColor
from qutebrowser.utils import qtutils, utils, usertypes
import overflow_test_cases
diff --git a/tests/unit/utils/test_standarddir.py b/tests/unit/utils/test_standarddir.py
index e05b5d31f..4367a8366 100644
--- a/tests/unit/utils/test_standarddir.py
+++ b/tests/unit/utils/test_standarddir.py
@@ -28,7 +28,7 @@ import textwrap
import logging
import subprocess
-from PyQt5.QtCore import QStandardPaths
+from PyQt6.QtCore import QStandardPaths
import pytest
from qutebrowser.utils import standarddir, utils, qtutils
@@ -465,7 +465,7 @@ def test_no_qapplication(qapp, tmpdir, monkeypatch):
sys.path = sys.argv[1:] # make sure we have the same python path
- from PyQt5.QtWidgets import QApplication
+ from PyQt6.QtWidgets import QApplication
from qutebrowser.utils import standarddir
assert QApplication.instance() is None
diff --git a/tests/unit/utils/test_urlmatch.py b/tests/unit/utils/test_urlmatch.py
index 35ccc94fe..e85acfde0 100644
--- a/tests/unit/utils/test_urlmatch.py
+++ b/tests/unit/utils/test_urlmatch.py
@@ -33,7 +33,7 @@ import string
import pytest
import hypothesis
import hypothesis.strategies as hst
-from PyQt5.QtCore import QUrl
+from PyQt6.QtCore import QUrl
from qutebrowser.utils import urlmatch
diff --git a/tests/unit/utils/test_urlutils.py b/tests/unit/utils/test_urlutils.py
index 97ff268ca..07df7f6d5 100644
--- a/tests/unit/utils/test_urlutils.py
+++ b/tests/unit/utils/test_urlutils.py
@@ -24,8 +24,8 @@ import logging
import dataclasses
import urllib.parse
-from PyQt5.QtCore import QUrl
-from PyQt5.QtNetwork import QNetworkProxy
+from PyQt6.QtCore import QUrl
+from PyQt6.QtNetwork import QNetworkProxy
import pytest
import hypothesis
import hypothesis.strategies
diff --git a/tests/unit/utils/test_utils.py b/tests/unit/utils/test_utils.py
index 57adc883c..e721a2866 100644
--- a/tests/unit/utils/test_utils.py
+++ b/tests/unit/utils/test_utils.py
@@ -30,8 +30,8 @@ import shlex
import math
import operator
-from PyQt5.QtCore import QUrl, QRect
-from PyQt5.QtGui import QClipboard
+from PyQt6.QtCore import QUrl, QRect
+from PyQt6.QtGui import QClipboard
import pytest
import hypothesis
from hypothesis import strategies
@@ -750,7 +750,7 @@ class TestOpenFile:
@pytest.fixture
def openurl_mock(self, mocker):
- return mocker.patch('PyQt5.QtGui.QDesktopServices.openUrl', spec={},
+ return mocker.patch('PyQt6.QtGui.QDesktopServices.openUrl', spec={},
new_callable=mocker.Mock)
def test_system_default_application(self, caplog, config_stub,
diff --git a/tests/unit/utils/test_version.py b/tests/unit/utils/test_version.py
index 6c57cb3d3..89ce30157 100644
--- a/tests/unit/utils/test_version.py
+++ b/tests/unit/utils/test_version.py
@@ -33,7 +33,7 @@ import dataclasses
import pytest
import hypothesis
import hypothesis.strategies
-from PyQt5.QtCore import PYQT_VERSION_STR
+from PyQt6.QtCore import PYQT_VERSION_STR
import qutebrowser
from qutebrowser.config import config, websettings
@@ -1002,10 +1002,10 @@ class TestWebEngineVersions:
pyqt_webengine_version = version._get_pyqt_webengine_qt_version()
if pyqt_webengine_version is None:
if '.dev' in PYQT_VERSION_STR:
- pytest.skip("dev version of PyQt5")
+ pytest.skip("dev version of PyQt6")
try:
- from PyQt5.QtWebEngine import (
+ from PyQt6.QtWebEngine import (
PYQT_WEBENGINE_VERSION_STR, PYQT_WEBENGINE_VERSION)
except ImportError as e:
# QtWebKit or QtWebEngine < 5.13
@@ -1059,7 +1059,7 @@ class TestChromiumVersion:
@pytest.fixture(autouse=True)
def clear_parsed_ua(self, monkeypatch):
- pytest.importorskip('PyQt5.QtWebEngineWidgets')
+ pytest.importorskip('PyQt6.QtWebEngineWidgets')
if webenginesettings is not None:
# Not available with QtWebKit
monkeypatch.setattr(webenginesettings, 'parsed_user_agent', None)
@@ -1341,7 +1341,7 @@ class TestOpenGLInfo:
def test_func(self, qapp):
"""Simply call version.opengl_info() and see if it doesn't crash."""
- pytest.importorskip("PyQt5.QtOpenGL")
+ pytest.importorskip("PyQt6.QtOpenGL")
version.opengl_info()
def test_func_fake(self, qapp, monkeypatch):
diff --git a/tests/unit/utils/usertypes/test_timer.py b/tests/unit/utils/usertypes/test_timer.py
index 4dc85b06f..fcf0a00e5 100644
--- a/tests/unit/utils/usertypes/test_timer.py
+++ b/tests/unit/utils/usertypes/test_timer.py
@@ -20,7 +20,7 @@
"""Tests for Timer."""
import pytest
-from PyQt5.QtCore import QObject
+from PyQt6.QtCore import QObject
from qutebrowser.utils import usertypes
diff --git a/tox.ini b/tox.ini
index 4be5b8620..23a0af644 100644
--- a/tox.ini
+++ b/tox.ini
@@ -45,7 +45,7 @@ setenv =
QUTE_BDD_WEBENGINE=true
pip_pre = true
deps = -r{toxinidir}/misc/requirements/requirements-tests-bleeding.txt
-commands_pre = pip install --index-url https://www.riverbankcomputing.com/pypi/simple/ --pre --upgrade PyQt5 PyQtWebEngine
+commands_pre = pip install --index-url https://www.riverbankcomputing.com/pypi/simple/ --pre --upgrade PyQt6 PyQtWebEngine
commands = {envpython} -bb -m pytest {posargs:tests}
# other envs