From 2a3072191fb6e33bba6b06d5a123e7e16a326ec9 Mon Sep 17 00:00:00 2001 From: Damien Elmes Date: Tue, 5 Oct 2021 10:17:56 +1000 Subject: [PATCH] avoid importing directly from PyQt5 where possible --- qt/aqt/deckconf.py | 2 -- qt/aqt/pinnedmodules.py | 8 ++++++-- qt/aqt/reviewer.py | 2 -- qt/aqt/taskman.py | 4 +--- qt/aqt/utils.py | 12 ------------ qt/tests/run_pylint.py | 5 ++++- 6 files changed, 11 insertions(+), 22 deletions(-) diff --git a/qt/aqt/deckconf.py b/qt/aqt/deckconf.py index 89d250fe1..c7d5ac753 100644 --- a/qt/aqt/deckconf.py +++ b/qt/aqt/deckconf.py @@ -6,8 +6,6 @@ from __future__ import annotations from operator import itemgetter from typing import Any -from PyQt5.QtWidgets import QLineEdit - import aqt from anki.consts import NEW_CARDS_RANDOM from anki.decks import DeckConfigDict diff --git a/qt/aqt/pinnedmodules.py b/qt/aqt/pinnedmodules.py index a8cbaafe6..3586d4ff5 100644 --- a/qt/aqt/pinnedmodules.py +++ b/qt/aqt/pinnedmodules.py @@ -26,8 +26,12 @@ import typing import uuid # other modules we require that may not be automatically included -import PyQt5.QtSvg -import PyQt5.QtMultimedia +try: + import PyQt6.QtSvg # type: ignore + import PyQt6.QtMultimedia # type: ignore +except: + import PyQt5.QtSvg # type: ignore + import PyQt5.QtMultimedia # type: ignore import socks import pyaudio diff --git a/qt/aqt/reviewer.py b/qt/aqt/reviewer.py index 7d82b146f..31ba40529 100644 --- a/qt/aqt/reviewer.py +++ b/qt/aqt/reviewer.py @@ -13,8 +13,6 @@ from dataclasses import dataclass from enum import Enum, auto from typing import Any, Callable, Literal, Match, Sequence, cast -from PyQt5.QtCore import Qt - from anki import hooks from anki.cards import Card, CardId from anki.collection import Config, OpChanges, OpChangesWithCount diff --git a/qt/aqt/taskman.py b/qt/aqt/taskman.py index 3c62679ab..b763f96d4 100644 --- a/qt/aqt/taskman.py +++ b/qt/aqt/taskman.py @@ -14,10 +14,8 @@ from concurrent.futures.thread import ThreadPoolExecutor from threading import Lock from typing import Any, Callable -from PyQt5.QtCore import QObject, pyqtSignal - import aqt -from aqt.qt import QWidget, qconnect +from aqt.qt import * Closure = Callable[[], None] diff --git a/qt/aqt/utils.py b/qt/aqt/utils.py index 0fef71009..e4b80f594 100644 --- a/qt/aqt/utils.py +++ b/qt/aqt/utils.py @@ -9,18 +9,6 @@ import sys from functools import wraps from typing import TYPE_CHECKING, Any, Literal, Sequence, cast -from PyQt5.QtWidgets import ( - QAction, - QDialog, - QDialogButtonBox, - QFileDialog, - QHeaderView, - QMenu, - QPushButton, - QSplitter, - QWidget, -) - import aqt from anki.collection import Collection, HelpPage from anki.lang import TR, tr_legacyglobal # pylint: disable=unused-import diff --git a/qt/tests/run_pylint.py b/qt/tests/run_pylint.py index 964c7656e..fa9b1ad6e 100644 --- a/qt/tests/run_pylint.py +++ b/qt/tests/run_pylint.py @@ -6,7 +6,10 @@ import os import subprocess import sys -import PyQt5 +try: + import PyQt6 +except: + import PyQt5 from pylint.lint import Run if __name__ == "__main__":