diff --git a/pylib/anki/_legacy.py b/pylib/anki/_legacy.py index 39a445900..24456aa14 100644 --- a/pylib/anki/_legacy.py +++ b/pylib/anki/_legacy.py @@ -8,7 +8,8 @@ import os import pathlib import sys import traceback -from typing import TYPE_CHECKING, Any, Callable, Union +from collections.abc import Callable +from typing import TYPE_CHECKING, Any, Union from anki._vendor import stringcase # type: ignore diff --git a/pylib/anki/dbproxy.py b/pylib/anki/dbproxy.py index ad2154355..f1e114261 100644 --- a/pylib/anki/dbproxy.py +++ b/pylib/anki/dbproxy.py @@ -4,9 +4,9 @@ from __future__ import annotations import re -from collections.abc import Iterable, Sequence +from collections.abc import Callable, Iterable, Sequence from re import Match -from typing import TYPE_CHECKING, Any, Callable, Union +from typing import TYPE_CHECKING, Any, Union if TYPE_CHECKING: import anki._backend diff --git a/pylib/anki/httpclient.py b/pylib/anki/httpclient.py index 25714edbd..186f90623 100644 --- a/pylib/anki/httpclient.py +++ b/pylib/anki/httpclient.py @@ -9,7 +9,8 @@ from __future__ import annotations import io import os -from typing import Any, Callable +from collections.abc import Callable +from typing import Any import requests from requests import Response diff --git a/pylib/anki/importing/__init__.py b/pylib/anki/importing/__init__.py index 6eb93d9a5..cfc2cac3f 100644 --- a/pylib/anki/importing/__init__.py +++ b/pylib/anki/importing/__init__.py @@ -1,8 +1,8 @@ # Copyright: Ankitects Pty Ltd and contributors # License: GNU AGPL, version 3 or later; http://www.gnu.org/licenses/agpl.html -from collections.abc import Sequence -from typing import Any, Callable, Type, Union +from collections.abc import Callable, Sequence +from typing import Any, Type, Union import anki from anki.collection import Collection diff --git a/pylib/anki/media.py b/pylib/anki/media.py index cb7c1ac5f..b76d7116c 100644 --- a/pylib/anki/media.py +++ b/pylib/anki/media.py @@ -8,8 +8,7 @@ import pprint import re import sys import time -from collections.abc import Sequence -from typing import Callable +from collections.abc import Callable, Sequence from anki import media_pb2 from anki._legacy import DeprecatedNamesMixin, deprecated_keywords diff --git a/pylib/anki/stdmodels.py b/pylib/anki/stdmodels.py index 2ce981165..721b96bc6 100644 --- a/pylib/anki/stdmodels.py +++ b/pylib/anki/stdmodels.py @@ -3,7 +3,8 @@ from __future__ import annotations -from typing import TYPE_CHECKING, Any, Callable +from collections.abc import Callable +from typing import TYPE_CHECKING, Any import anki.collection import anki.models diff --git a/pylib/anki/utils.py b/pylib/anki/utils.py index 929ca3ce1..f8e32816f 100644 --- a/pylib/anki/utils.py +++ b/pylib/anki/utils.py @@ -13,10 +13,10 @@ import subprocess import sys import tempfile import time -from collections.abc import Iterable, Iterator +from collections.abc import Callable, Iterable, Iterator from contextlib import contextmanager from hashlib import sha1 -from typing import TYPE_CHECKING, Any, Callable +from typing import TYPE_CHECKING, Any from anki._legacy import DeprecatedNamesMixinForModule from anki.dbproxy import DBProxy diff --git a/pylib/tests/test_schedv3.py b/pylib/tests/test_schedv3.py index d4d4bfd4c..442dc0a62 100644 --- a/pylib/tests/test_schedv3.py +++ b/pylib/tests/test_schedv3.py @@ -4,7 +4,8 @@ import copy import os import time -from typing import Callable, Dict +from collections.abc import Callable +from typing import Dict import pytest diff --git a/pylib/tools/genhooks.py b/pylib/tools/genhooks.py index e14f92fc4..e0e4924be 100644 --- a/pylib/tools/genhooks.py +++ b/pylib/tools/genhooks.py @@ -137,7 +137,9 @@ prefix = """\ from __future__ import annotations -from typing import Any, Callable, Sequence +from collections.abc import Callable, Sequence +from typing import Any + import anki import anki.hooks from anki.cards import Card diff --git a/qt/aqt/_macos_helper.py b/qt/aqt/_macos_helper.py index 93c2f9e81..859cb4b0a 100644 --- a/qt/aqt/_macos_helper.py +++ b/qt/aqt/_macos_helper.py @@ -5,8 +5,8 @@ from __future__ import annotations import os import sys +from collections.abc import Callable from ctypes import CDLL, CFUNCTYPE, c_bool, c_char_p -from typing import Callable import aqt import aqt.utils diff --git a/qt/aqt/addcards.py b/qt/aqt/addcards.py index bf11e5894..a9639b381 100644 --- a/qt/aqt/addcards.py +++ b/qt/aqt/addcards.py @@ -3,7 +3,7 @@ from __future__ import annotations -from typing import Callable +from collections.abc import Callable import aqt.editor import aqt.forms diff --git a/qt/aqt/addons.py b/qt/aqt/addons.py index 313f63b69..b05a4f50e 100644 --- a/qt/aqt/addons.py +++ b/qt/aqt/addons.py @@ -11,12 +11,12 @@ import os import re import zipfile from collections import defaultdict -from collections.abc import Iterable, Sequence +from collections.abc import Callable, Iterable, Sequence from concurrent.futures import Future from dataclasses import dataclass from datetime import datetime from pathlib import Path -from typing import IO, Any, Callable, Union +from typing import IO, Any, Union from urllib.parse import parse_qs, urlparse from zipfile import ZipFile diff --git a/qt/aqt/browser/browser.py b/qt/aqt/browser/browser.py index f8a673410..45924b03c 100644 --- a/qt/aqt/browser/browser.py +++ b/qt/aqt/browser/browser.py @@ -6,8 +6,8 @@ from __future__ import annotations import json import math import re -from collections.abc import Sequence -from typing import Any, Callable +from collections.abc import Callable, Sequence +from typing import Any import aqt import aqt.browser diff --git a/qt/aqt/browser/card_info.py b/qt/aqt/browser/card_info.py index ae7f6be55..75403edc0 100644 --- a/qt/aqt/browser/card_info.py +++ b/qt/aqt/browser/card_info.py @@ -3,7 +3,7 @@ from __future__ import annotations -from typing import Callable +from collections.abc import Callable import aqt from anki.cards import Card, CardId diff --git a/qt/aqt/browser/previewer.py b/qt/aqt/browser/previewer.py index 6bd044c35..e35623a6f 100644 --- a/qt/aqt/browser/previewer.py +++ b/qt/aqt/browser/previewer.py @@ -6,7 +6,8 @@ from __future__ import annotations import json import re import time -from typing import Any, Callable +from collections.abc import Callable +from typing import Any import aqt.browser from anki.cards import Card diff --git a/qt/aqt/browser/sidebar/item.py b/qt/aqt/browser/sidebar/item.py index e7e4e931b..576d0b455 100644 --- a/qt/aqt/browser/sidebar/item.py +++ b/qt/aqt/browser/sidebar/item.py @@ -2,9 +2,8 @@ # License: GNU AGPL, version 3 or later; http://www.gnu.org/licenses/agpl.html from __future__ import annotations -from collections.abc import Iterable +from collections.abc import Callable, Iterable from enum import Enum, auto -from typing import Callable from anki.collection import SearchNode from aqt.theme import ColoredIcon diff --git a/qt/aqt/browser/table/model.py b/qt/aqt/browser/table/model.py index 99e2bbb73..de8253510 100644 --- a/qt/aqt/browser/table/model.py +++ b/qt/aqt/browser/table/model.py @@ -3,8 +3,8 @@ from __future__ import annotations import time -from collections.abc import Sequence -from typing import Any, Callable +from collections.abc import Callable, Sequence +from typing import Any import aqt import aqt.browser diff --git a/qt/aqt/browser/table/table.py b/qt/aqt/browser/table/table.py index 0be52243b..345386acb 100644 --- a/qt/aqt/browser/table/table.py +++ b/qt/aqt/browser/table/table.py @@ -2,8 +2,8 @@ # License: GNU AGPL, version 3 or later; http://www.gnu.org/licenses/agpl.html from __future__ import annotations -from collections.abc import Sequence -from typing import Any, Callable +from collections.abc import Callable, Sequence +from typing import Any import aqt import aqt.browser diff --git a/qt/aqt/editor.py b/qt/aqt/editor.py index 0f447bb02..0b4f0eb85 100644 --- a/qt/aqt/editor.py +++ b/qt/aqt/editor.py @@ -14,9 +14,10 @@ import urllib.error import urllib.parse import urllib.request import warnings +from collections.abc import Callable from enum import Enum from random import randrange -from typing import Any, Callable, Match, cast +from typing import Any, Match, cast import bs4 import requests diff --git a/qt/aqt/mediasrv.py b/qt/aqt/mediasrv.py index b3ab7f042..a613a4795 100644 --- a/qt/aqt/mediasrv.py +++ b/qt/aqt/mediasrv.py @@ -11,10 +11,10 @@ import re import sys import threading import traceback +from collections.abc import Callable from dataclasses import dataclass from errno import EPROTOTYPE from http import HTTPStatus -from typing import Callable import flask import flask_cors diff --git a/qt/aqt/mediasync.py b/qt/aqt/mediasync.py index 4fafd6b13..96054832c 100644 --- a/qt/aqt/mediasync.py +++ b/qt/aqt/mediasync.py @@ -4,9 +4,10 @@ from __future__ import annotations import time +from collections.abc import Callable from concurrent.futures import Future from datetime import datetime -from typing import Any, Callable +from typing import Any import aqt import aqt.forms diff --git a/qt/aqt/operations/__init__.py b/qt/aqt/operations/__init__.py index 865c8a03f..937f5b9ed 100644 --- a/qt/aqt/operations/__init__.py +++ b/qt/aqt/operations/__init__.py @@ -3,8 +3,9 @@ from __future__ import annotations +from collections.abc import Callable from concurrent.futures._base import Future -from typing import Any, Callable, Generic, Protocol, TypeVar, Union +from typing import Any, Generic, Protocol, TypeVar, Union import aqt import aqt.gui_hooks diff --git a/qt/aqt/overview.py b/qt/aqt/overview.py index d5ca1945e..20d276dbb 100644 --- a/qt/aqt/overview.py +++ b/qt/aqt/overview.py @@ -2,8 +2,9 @@ # License: GNU AGPL, version 3 or later; http://www.gnu.org/licenses/agpl.html from __future__ import annotations +from collections.abc import Callable from dataclasses import dataclass -from typing import Any, Callable +from typing import Any import aqt import aqt.operations diff --git a/qt/aqt/qt/__init__.py b/qt/aqt/qt/__init__.py index 2d4762f5d..2db1ad40d 100644 --- a/qt/aqt/qt/__init__.py +++ b/qt/aqt/qt/__init__.py @@ -7,7 +7,8 @@ import os import sys import traceback -from typing import Callable, TypeVar, Union +from collections.abc import Callable +from typing import TypeVar, Union try: import PyQt6 diff --git a/qt/aqt/sound.py b/qt/aqt/sound.py index 7c144aca4..3e582fb69 100644 --- a/qt/aqt/sound.py +++ b/qt/aqt/sound.py @@ -11,10 +11,11 @@ import sys import time import wave from abc import ABC, abstractmethod +from collections.abc import Callable from concurrent.futures import Future from operator import itemgetter from pathlib import Path -from typing import Any, Callable, cast +from typing import Any, cast from markdown import markdown diff --git a/qt/aqt/studydeck.py b/qt/aqt/studydeck.py index a1c99c929..537c7d151 100644 --- a/qt/aqt/studydeck.py +++ b/qt/aqt/studydeck.py @@ -3,7 +3,7 @@ from __future__ import annotations -from typing import Callable +from collections.abc import Callable import aqt import aqt.forms diff --git a/qt/aqt/sync.py b/qt/aqt/sync.py index fa3477ee9..1366ee669 100644 --- a/qt/aqt/sync.py +++ b/qt/aqt/sync.py @@ -4,8 +4,8 @@ from __future__ import annotations import os +from collections.abc import Callable from concurrent.futures import Future -from typing import Callable import aqt import aqt.main diff --git a/qt/aqt/taskman.py b/qt/aqt/taskman.py index 0acbcba6c..10e3f48af 100644 --- a/qt/aqt/taskman.py +++ b/qt/aqt/taskman.py @@ -9,10 +9,11 @@ See QueryOp() and CollectionOp() for higher-level routines. from __future__ import annotations +from collections.abc import Callable from concurrent.futures import Future from concurrent.futures.thread import ThreadPoolExecutor from threading import Lock, current_thread, main_thread -from typing import Any, Callable +from typing import Any import aqt from anki.collection import Progress diff --git a/qt/aqt/theme.py b/qt/aqt/theme.py index fbbbcda96..735f720c4 100644 --- a/qt/aqt/theme.py +++ b/qt/aqt/theme.py @@ -7,8 +7,8 @@ import enum import os import re import subprocess +from collections.abc import Callable from dataclasses import dataclass -from typing import Callable import anki.lang import aqt diff --git a/qt/aqt/utils.py b/qt/aqt/utils.py index 500306c6e..98e4cee10 100644 --- a/qt/aqt/utils.py +++ b/qt/aqt/utils.py @@ -9,10 +9,10 @@ import re import shutil import subprocess import sys -from collections.abc import Sequence +from collections.abc import Callable, Sequence from functools import partial, wraps from pathlib import Path -from typing import TYPE_CHECKING, Any, Callable, Literal, Union +from typing import TYPE_CHECKING, Any, Literal, Union from send2trash import send2trash diff --git a/qt/aqt/webview.py b/qt/aqt/webview.py index e711ec01a..94a9f2e55 100644 --- a/qt/aqt/webview.py +++ b/qt/aqt/webview.py @@ -7,9 +7,9 @@ import dataclasses import json import re import sys -from collections.abc import Sequence +from collections.abc import Callable, Sequence from enum import Enum -from typing import TYPE_CHECKING, Any, Callable, cast +from typing import TYPE_CHECKING, Any, cast import anki import anki.lang