diff --git a/gallery/gallery.py b/gallery/gallery.py index 228cd1c..00b8a65 100755 --- a/gallery/gallery.py +++ b/gallery/gallery.py @@ -7,10 +7,11 @@ import venv import zipfile from argparse import ArgumentParser, Namespace +from collections.abc import Generator from concurrent.futures import ThreadPoolExecutor from functools import lru_cache, partial from pathlib import Path -from typing import Generator, NamedTuple, Optional, Union, cast +from typing import NamedTuple, Optional, Union, cast from urllib.request import urlopen, urlretrieve PYPI_INSTANCE = "https://pypi.org/pypi" diff --git a/scripts/make_width_table.py b/scripts/make_width_table.py index 10c758a..2f55a3d 100644 --- a/scripts/make_width_table.py +++ b/scripts/make_width_table.py @@ -17,8 +17,8 @@ """ import sys +from collections.abc import Iterable from os.path import basename, dirname, join -from typing import Iterable import wcwidth # type: ignore[import-not-found] diff --git a/src/black/__init__.py b/src/black/__init__.py index a94f7fc..5f69945 100644 --- a/src/black/__init__.py +++ b/src/black/__init__.py @@ -5,24 +5,22 @@ import sys import tokenize import traceback +from collections.abc import ( + Collection, + Generator, + Iterator, + MutableMapping, + Sequence, + Sized, +) from contextlib import contextmanager from dataclasses import replace from datetime import datetime, timezone from enum import Enum from json.decoder import JSONDecodeError from pathlib import Path -from typing import ( - Any, - Collection, - Generator, - Iterator, - MutableMapping, - Optional, - Pattern, - Sequence, - Sized, - Union, -) +from re import Pattern +from typing import Any, Optional, Union import click from click.core import ParameterSource diff --git a/src/black/brackets.py b/src/black/brackets.py index 4a994a9..c2e8be4 100644 --- a/src/black/brackets.py +++ b/src/black/brackets.py @@ -1,7 +1,8 @@ """Builds on top of nodes.py to track brackets.""" +from collections.abc import Iterable, Sequence from dataclasses import dataclass, field -from typing import Final, Iterable, Optional, Sequence, Union +from typing import Final, Optional, Union from black.nodes import ( BRACKET, diff --git a/src/black/cache.py b/src/black/cache.py index 8811a79..ef9d99a 100644 --- a/src/black/cache.py +++ b/src/black/cache.py @@ -5,9 +5,10 @@ import pickle import sys import tempfile +from collections.abc import Iterable from dataclasses import dataclass, field from pathlib import Path -from typing import Iterable, NamedTuple +from typing import NamedTuple from platformdirs import user_cache_dir diff --git a/src/black/comments.py b/src/black/comments.py index cd37c44..b7aeca2 100644 --- a/src/black/comments.py +++ b/src/black/comments.py @@ -1,7 +1,8 @@ import re +from collections.abc import Collection, Iterator from dataclasses import dataclass from functools import lru_cache -from typing import Collection, Final, Iterator, Optional, Union +from typing import Final, Optional, Union from black.mode import Mode, Preview from black.nodes import ( diff --git a/src/black/concurrency.py b/src/black/concurrency.py index 8079100..4b3cf48 100644 --- a/src/black/concurrency.py +++ b/src/black/concurrency.py @@ -10,10 +10,11 @@ import signal import sys import traceback +from collections.abc import Iterable from concurrent.futures import Executor, ProcessPoolExecutor, ThreadPoolExecutor from multiprocessing import Manager from pathlib import Path -from typing import Any, Iterable, Optional +from typing import Any, Optional from mypy_extensions import mypyc_attr diff --git a/src/black/debug.py b/src/black/debug.py index 34a9f32..939b20e 100644 --- a/src/black/debug.py +++ b/src/black/debug.py @@ -1,5 +1,6 @@ +from collections.abc import Iterator from dataclasses import dataclass, field -from typing import Any, Iterator, TypeVar, Union +from typing import Any, TypeVar, Union from black.nodes import Visitor from black.output import out diff --git a/src/black/files.py b/src/black/files.py index 82da479..72c5edd 100644 --- a/src/black/files.py +++ b/src/black/files.py @@ -1,18 +1,11 @@ import io import os import sys +from collections.abc import Iterable, Iterator, Sequence from functools import lru_cache from pathlib import Path -from typing import ( - TYPE_CHECKING, - Any, - Iterable, - Iterator, - Optional, - Pattern, - Sequence, - Union, -) +from re import Pattern +from typing import TYPE_CHECKING, Any, Optional, Union from mypy_extensions import mypyc_attr from packaging.specifiers import InvalidSpecifier, Specifier, SpecifierSet diff --git a/src/black/linegen.py b/src/black/linegen.py index 107fa69..d1314d9 100644 --- a/src/black/linegen.py +++ b/src/black/linegen.py @@ -4,10 +4,11 @@ import re import sys +from collections.abc import Collection, Iterator from dataclasses import replace from enum import Enum, auto from functools import partial, wraps -from typing import Collection, Iterator, Optional, Union, cast +from typing import Optional, Union, cast from black.brackets import ( COMMA_PRIORITY, diff --git a/src/black/lines.py b/src/black/lines.py index a8c6ef6..c488ea7 100644 --- a/src/black/lines.py +++ b/src/black/lines.py @@ -1,7 +1,8 @@ import itertools import math +from collections.abc import Callable, Iterator, Sequence from dataclasses import dataclass, field -from typing import Callable, Iterator, Optional, Sequence, TypeVar, Union, cast +from typing import Optional, TypeVar, Union, cast from black.brackets import COMMA_PRIORITY, DOT_PRIORITY, BracketTracker from black.mode import Mode, Preview diff --git a/src/black/nodes.py b/src/black/nodes.py index 470dc24..927b9ee 100644 --- a/src/black/nodes.py +++ b/src/black/nodes.py @@ -3,7 +3,8 @@ """ import sys -from typing import Final, Generic, Iterator, Literal, Optional, TypeVar, Union +from collections.abc import Iterator +from typing import Final, Generic, Literal, Optional, TypeVar, Union if sys.version_info >= (3, 10): from typing import TypeGuard diff --git a/src/black/parsing.py b/src/black/parsing.py index e139963..0019b0c 100644 --- a/src/black/parsing.py +++ b/src/black/parsing.py @@ -5,7 +5,7 @@ import ast import sys import warnings -from typing import Collection, Iterator +from collections.abc import Collection, Iterator from black.mode import VERSION_TO_FEATURES, Feature, TargetVersion, supports_feature from black.nodes import syms diff --git a/src/black/ranges.py b/src/black/ranges.py index f8b09a6..9064913 100644 --- a/src/black/ranges.py +++ b/src/black/ranges.py @@ -1,8 +1,9 @@ """Functions related to Black's formatting by line ranges feature.""" import difflib +from collections.abc import Collection, Iterator, Sequence from dataclasses import dataclass -from typing import Collection, Iterator, Sequence, Union +from typing import Union from black.nodes import ( LN, diff --git a/src/black/strings.py b/src/black/strings.py index 0973907..8fa7e06 100644 --- a/src/black/strings.py +++ b/src/black/strings.py @@ -5,7 +5,8 @@ import re import sys from functools import lru_cache -from typing import Final, Match, Pattern +from re import Match, Pattern +from typing import Final from black._width_table import WIDTH_TABLE from blib2to3.pytree import Leaf diff --git a/src/black/trans.py b/src/black/trans.py index b44e3cd..14699bd 100644 --- a/src/black/trans.py +++ b/src/black/trans.py @@ -5,21 +5,9 @@ import re from abc import ABC, abstractmethod from collections import defaultdict +from collections.abc import Callable, Collection, Iterable, Iterator, Sequence from dataclasses import dataclass -from typing import ( - Any, - Callable, - ClassVar, - Collection, - Final, - Iterable, - Iterator, - Literal, - Optional, - Sequence, - TypeVar, - Union, -) +from typing import Any, ClassVar, Final, Literal, Optional, TypeVar, Union from mypy_extensions import trait diff --git a/src/blackd/middlewares.py b/src/blackd/middlewares.py index 75ec926..43448c2 100644 --- a/src/blackd/middlewares.py +++ b/src/blackd/middlewares.py @@ -1,4 +1,4 @@ -from typing import Awaitable, Callable, Iterable +from collections.abc import Awaitable, Callable, Iterable from aiohttp.typedefs import Middleware from aiohttp.web_middlewares import middleware diff --git a/src/blib2to3/pgen2/driver.py b/src/blib2to3/pgen2/driver.py index df52ac9..d17fd1d 100644 --- a/src/blib2to3/pgen2/driver.py +++ b/src/blib2to3/pgen2/driver.py @@ -21,10 +21,11 @@ import os import pkgutil import sys +from collections.abc import Iterable, Iterator from contextlib import contextmanager from dataclasses import dataclass, field from logging import Logger -from typing import IO, Any, Iterable, Iterator, Optional, Union, cast +from typing import IO, Any, Optional, Union, cast from blib2to3.pgen2.grammar import Grammar from blib2to3.pgen2.tokenize import GoodTokenInfo diff --git a/src/blib2to3/pgen2/literals.py b/src/blib2to3/pgen2/literals.py index 3b219c4..a738c10 100644 --- a/src/blib2to3/pgen2/literals.py +++ b/src/blib2to3/pgen2/literals.py @@ -4,7 +4,6 @@ """Safely evaluate Python string literals without using eval().""" import re -from typing import Match simple_escapes: dict[str, str] = { "a": "\a", @@ -20,7 +19,7 @@ } -def escape(m: Match[str]) -> str: +def escape(m: re.Match[str]) -> str: all, tail = m.group(0, 1) assert all.startswith("\\") esc = simple_escapes.get(tail) diff --git a/src/blib2to3/pgen2/parse.py b/src/blib2to3/pgen2/parse.py index 2ac89c9..10202ab 100644 --- a/src/blib2to3/pgen2/parse.py +++ b/src/blib2to3/pgen2/parse.py @@ -9,8 +9,9 @@ how this parsing engine works. """ +from collections.abc import Callable, Iterator from contextlib import contextmanager -from typing import TYPE_CHECKING, Any, Callable, Iterator, Optional, Union, cast +from typing import TYPE_CHECKING, Any, Optional, Union, cast from blib2to3.pgen2.grammar import Grammar from blib2to3.pytree import NL, Context, Leaf, Node, RawNode, convert diff --git a/src/blib2to3/pgen2/pgen.py b/src/blib2to3/pgen2/pgen.py index 2be7b87..17f7533 100644 --- a/src/blib2to3/pgen2/pgen.py +++ b/src/blib2to3/pgen2/pgen.py @@ -2,7 +2,8 @@ # Licensed to PSF under a Contributor Agreement. import os -from typing import IO, Any, Iterator, NoReturn, Optional, Sequence, Union +from collections.abc import Iterator, Sequence +from typing import IO, Any, NoReturn, Optional, Union from blib2to3.pgen2 import grammar, token, tokenize from blib2to3.pgen2.tokenize import GoodTokenInfo diff --git a/src/blib2to3/pgen2/tokenize.py b/src/blib2to3/pgen2/tokenize.py index f7d0215..97dd92b 100644 --- a/src/blib2to3/pgen2/tokenize.py +++ b/src/blib2to3/pgen2/tokenize.py @@ -29,7 +29,9 @@ import builtins import sys -from typing import Callable, Final, Iterable, Iterator, Optional, Pattern, Union +from collections.abc import Callable, Iterable, Iterator +from re import Pattern +from typing import Final, Optional, Union from blib2to3.pgen2.grammar import Grammar from blib2to3.pgen2.token import ( diff --git a/src/blib2to3/pytree.py b/src/blib2to3/pytree.py index d2d135e..d575846 100644 --- a/src/blib2to3/pytree.py +++ b/src/blib2to3/pytree.py @@ -12,7 +12,8 @@ # mypy: allow-untyped-defs, allow-incomplete-defs -from typing import Any, Iterable, Iterator, Optional, TypeVar, Union +from collections.abc import Iterable, Iterator +from typing import Any, Optional, TypeVar, Union from blib2to3.pgen2.grammar import Grammar diff --git a/tests/test_black.py b/tests/test_black.py index b26a565..84061f1 100644 --- a/tests/test_black.py +++ b/tests/test_black.py @@ -10,6 +10,7 @@ import sys import textwrap import types +from collections.abc import Callable, Iterator, Sequence from concurrent.futures import ThreadPoolExecutor from contextlib import contextmanager, redirect_stderr from dataclasses import fields, replace @@ -17,7 +18,7 @@ from pathlib import Path, WindowsPath from platform import system from tempfile import TemporaryDirectory -from typing import Any, Callable, Iterator, Optional, Sequence, TypeVar, Union +from typing import Any, Optional, TypeVar, Union from unittest.mock import MagicMock, patch import click diff --git a/tests/test_docs.py b/tests/test_docs.py index 7f04a6d..6b69055 100644 --- a/tests/test_docs.py +++ b/tests/test_docs.py @@ -5,9 +5,10 @@ """ import re +from collections.abc import Sequence from itertools import islice from pathlib import Path -from typing import Optional, Sequence +from typing import Optional import pytest diff --git a/tests/test_format.py b/tests/test_format.py index ade7761..31c44b9 100644 --- a/tests/test_format.py +++ b/tests/test_format.py @@ -1,5 +1,6 @@ +from collections.abc import Iterator from dataclasses import replace -from typing import Any, Iterator +from typing import Any from unittest.mock import patch import pytest diff --git a/tests/test_ipynb.py b/tests/test_ipynb.py index 3a3cc5f..46b1c9a 100644 --- a/tests/test_ipynb.py +++ b/tests/test_ipynb.py @@ -1,9 +1,9 @@ import contextlib import pathlib import re +from contextlib import AbstractContextManager from contextlib import ExitStack as does_not_raise from dataclasses import replace -from typing import ContextManager import pytest from _pytest.monkeypatch import MonkeyPatch @@ -213,7 +213,7 @@ def test_cell_magic_with_empty_lines(src: str, expected: str) -> None: ], ) def test_cell_magic_with_custom_python_magic( - mode: Mode, expected_output: str, expectation: ContextManager[object] + mode: Mode, expected_output: str, expectation: AbstractContextManager[object] ) -> None: with expectation: result = format_cell( diff --git a/tests/util.py b/tests/util.py index d0b7ff7..5384af9 100644 --- a/tests/util.py +++ b/tests/util.py @@ -4,11 +4,12 @@ import shlex import sys import unittest +from collections.abc import Collection, Iterator from contextlib import contextmanager from dataclasses import dataclass, field, replace from functools import partial from pathlib import Path -from typing import Any, Collection, Iterator, Optional +from typing import Any, Optional import black from black.const import DEFAULT_LINE_LENGTH