diff --git a/pylib/Makefile b/pylib/Makefile index 2eaa9ebfe..5cb14e092 100644 --- a/pylib/Makefile +++ b/pylib/Makefile @@ -24,7 +24,7 @@ endif .DELETE_ON_ERROR: .SUFFIXES: BLACKARGS := -t py36 anki tests setup.py tools/*.py --exclude='_pb2|buildinfo|_gen' -ISORTARGS := anki tests setup.py +ISORTARGS := --profile black anki tests setup.py $(shell mkdir -p .build ../dist) diff --git a/pylib/anki/collection.py b/pylib/anki/collection.py index f187be88e..f66ab90e6 100644 --- a/pylib/anki/collection.py +++ b/pylib/anki/collection.py @@ -33,7 +33,7 @@ from anki.tags import TagManager from anki.utils import devMode, ids2str, intTime if TYPE_CHECKING: - from anki.rsbackend import TRValue, FormatTimeSpanContextValue + from anki.rsbackend import FormatTimeSpanContextValue, TRValue class Collection: diff --git a/pylib/anki/importing/supermemo_xml.py b/pylib/anki/importing/supermemo_xml.py index 99398c897..2b7b9b4af 100644 --- a/pylib/anki/importing/supermemo_xml.py +++ b/pylib/anki/importing/supermemo_xml.py @@ -307,7 +307,9 @@ class SupermemoXmlImporter(NoteImporter): return sys.stdin # try to open with urllib (if source is http, ftp, or file URL) - import urllib.request, urllib.parse, urllib.error + import urllib.error + import urllib.parse + import urllib.request try: return urllib.request.urlopen(source) diff --git a/pylib/anki/utils.py b/pylib/anki/utils.py index 33c4ebe08..d65971224 100644 --- a/pylib/anki/utils.py +++ b/pylib/anki/utils.py @@ -386,7 +386,7 @@ class TimedLog: def versionWithBuild() -> str: - from anki.buildinfo import version, buildhash + from anki.buildinfo import buildhash, version return "%s (%s)" % (version, buildhash) diff --git a/pylib/requirements.dev b/pylib/requirements.dev index f544f856e..1005941f4 100644 --- a/pylib/requirements.dev +++ b/pylib/requirements.dev @@ -2,10 +2,5 @@ wheel mypy mypy_protobuf>=1.21 black -# fixme: remove pin when https://github.com/pytest-dev/pytest/issues/7558 closed -pytest<6 -# fixme: when isort 5.0 is released, switch to pypi -git+https://github.com/ankitects/isort#egg=isort -# fixme: when pylint supports isort 5.0, switch to pypi -git+https://github.com/ankitects/pylint#egg=pylint +pytest>=6.0.1 stringcase==1.2.0 diff --git a/qt/Makefile b/qt/Makefile index e4800d8f5..4fc6b482f 100644 --- a/qt/Makefile +++ b/qt/Makefile @@ -27,7 +27,7 @@ endif .SUFFIXES: BLACKARGS := -t py36 aqt tests setup.py tools/*.py --exclude='aqt/forms|buildinfo|colors' -ISORTARGS := aqt tests setup.py +ISORTARGS := --profile black aqt tests setup.py $(shell mkdir -p .build ../dist) diff --git a/qt/aqt/__init__.py b/qt/aqt/__init__.py index 4cb1ae1aa..9727cfcbf 100644 --- a/qt/aqt/__init__.py +++ b/qt/aqt/__init__.py @@ -500,7 +500,7 @@ section of the manual, and ensure that location is not read-only.""", QApplication.setAttribute(Qt.AA_DisableWindowContextHelpButton) # proxy configured? - from urllib.request import proxy_bypass, getproxies + from urllib.request import getproxies, proxy_bypass disable_proxies = False try: diff --git a/qt/aqt/main.py b/qt/aqt/main.py index 6203e2ace..f9b80ef3a 100644 --- a/qt/aqt/main.py +++ b/qt/aqt/main.py @@ -1450,7 +1450,8 @@ will be lost. Continue?""" sys.stdout = self._oldStdout def _card_repr(self, card: anki.cards.Card) -> None: - import pprint, copy + import copy + import pprint if not card: print("no card") @@ -1499,7 +1500,8 @@ will be lost. Continue?""" self.onDebugRet(frm) def onDebugRet(self, frm): - import pprint, traceback + import pprint + import traceback text = frm.text.toPlainText() card = self._debugCard diff --git a/qt/aqt/mpv.py b/qt/aqt/mpv.py index 0ae02ecbd..2c6c205c9 100644 --- a/qt/aqt/mpv.py +++ b/qt/aqt/mpv.py @@ -68,7 +68,10 @@ class MPVTimeoutError(MPVError): if isWin: # pylint: disable=import-error - import win32file, win32pipe, pywintypes, winerror # pytype: disable=import-error + import pywintypes + import win32file # pytype: disable=import-error + import win32pipe + import winerror class MPVBase: diff --git a/qt/aqt/pinnedmodules.py b/qt/aqt/pinnedmodules.py index ed079366f..49cc020e1 100644 --- a/qt/aqt/pinnedmodules.py +++ b/qt/aqt/pinnedmodules.py @@ -31,8 +31,8 @@ from anki.utils import isLin, isWin # external module access in Windows if isWin: import pythoncom - import win32com import pywintypes + import win32com if isLin: import fcntl diff --git a/qt/aqt/profiles.py b/qt/aqt/profiles.py index 08a14d250..27e37f67c 100644 --- a/qt/aqt/profiles.py +++ b/qt/aqt/profiles.py @@ -141,7 +141,7 @@ class ProfileManager: shutil.move(oldBase, self.base) def _tryToMigrateFolder(self, oldBase): - from PyQt5 import QtWidgets, QtGui + from PyQt5 import QtGui, QtWidgets app = QtWidgets.QApplication([]) icon = QtGui.QIcon() diff --git a/qt/aqt/utils.py b/qt/aqt/utils.py index 36ba5bbd4..b9a2983b1 100644 --- a/qt/aqt/utils.py +++ b/qt/aqt/utils.py @@ -753,6 +753,7 @@ def qtMenuShortcutWorkaround(qmenu): def supportText(): import platform import time + from aqt import mw if isWin: