You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Here is the patch generated by `pypgrade --py39-plus`
--- a/aioitertools/asyncio.py+++ b/aioitertools/asyncio.py@@ -11,17 +11,14 @@
import time
from typing import (
Any,
- AsyncGenerator,- AsyncIterable,- Awaitable,
cast,
Dict,
- Iterable,
List,
Optional,
Set,
Tuple,
)
+from collections.abc import AsyncGenerator, AsyncIterable, Awaitable, Iterable
from .builtins import iter as aiter, maybe_await
from .types import AnyIterable, AsyncIterator, MaybeAwaitable, T
@@ -47,8 +44,8 @@
... # use value immediately
"""
- done: Set[Awaitable[T]] = set()- pending: Set[Awaitable[T]] = {asyncio.ensure_future(a) for a in aws}+ done: set[Awaitable[T]] = set()+ pending: set[Awaitable[T]] = {asyncio.ensure_future(a) for a in aws}
remaining: Optional[float] = None
if timeout and timeout > 0:
@@ -75,7 +72,7 @@
# asyncio.Future: https://github.com/python/typeshed/blob/72ff7b94e534c610ddf8939bacbc55343e9465d2/stdlib/3/asyncio/futures.pyi#L30 # noqa: E501
# asyncio.wait(): https://github.com/python/typeshed/blob/72ff7b94e534c610ddf8939bacbc55343e9465d2/stdlib/3/asyncio/tasks.pyi#L89 # noqa: E501
done, pending = cast(
- Tuple[Set[Awaitable[T]], Set[Awaitable[T]]],+ tuple[set[Awaitable[T]], set[Awaitable[T]]],
await asyncio.wait(
pending,
timeout=remaining,
@@ -172,7 +169,7 @@
*args: Awaitable[T],
return_exceptions: bool = False,
limit: int = -1,
-) -> List[Any]:+) -> list[Any]:
"""
Like asyncio.gather but with a limit on concurrency.
@@ -189,13 +186,13 @@
"""
# For detecting input duplicates and reconciling them at the end
- input_map: Dict[Awaitable[T], List[int]] = {}+ input_map: dict[Awaitable[T], list[int]] = {}
# This is keyed on what we'll get back from asyncio.wait
- pos: Dict[asyncio.Future[T], int] = {}- ret: List[Any] = [None] * len(args)+ pos: dict[asyncio.Future[T], int] = {}+ ret: list[Any] = [None] * len(args)- pending: Set[asyncio.Future[T]] = set()- done: Set[asyncio.Future[T]] = set()+ pending: set[asyncio.Future[T]] = set()+ done: set[asyncio.Future[T]] = set()
next_arg = 0
@@ -251,7 +248,7 @@
itr: AnyIterable[MaybeAwaitable[T]],
return_exceptions: bool = False,
limit: int = -1,
-) -> List[T]:+) -> list[T]:
"""
Wrapper around gather to handle gathering an iterable instead of ``*args``.
--- a/aioitertools/builtins.py+++ b/aioitertools/builtins.py@@ -16,11 +16,8 @@
from enum import Enum
from typing import (
Any,
- AsyncIterable,- AsyncIterator,
Callable,
cast,
- Iterable,
List,
Optional,
overload,
@@ -28,6 +25,7 @@
Tuple,
Union,
)
+from collections.abc import AsyncIterable, AsyncIterator, Iterable
from . import asyncio as ait_asyncio
from .helpers import maybe_await, Orderable
@@ -150,7 +148,7 @@
return default
-async def list(itr: AnyIterable[T]) -> List[T]:+async def list(itr: AnyIterable[T]) -> list[T]:
"""
Consume a mixed iterable and return a list of items in order.
@@ -163,7 +161,7 @@
return [item async for item in iter(itr)]
-async def tuple(itr: AnyIterable[T]) -> Tuple[T, ...]:+async def tuple(itr: AnyIterable[T]) -> tuple[T, ...]:
"""
Consume a mixed iterable and return a tuple of items in order.
@@ -177,7 +175,7 @@
return builtins.tuple(await list(itr))
-async def set(itr: AnyIterable[T]) -> Set[T]:+async def set(itr: AnyIterable[T]) -> set[T]:
"""
Consume a mixed iterable and return a set of items.
@@ -192,7 +190,7 @@
async def enumerate(
itr: AnyIterable[T], start: int = 0
-) -> AsyncIterator[Tuple[int, T]]:+) -> AsyncIterator[tuple[int, T]]:
"""
Consume a mixed iterable and yield the current index and item.
@@ -364,21 +362,21 @@
@overload
-def zip(__iter1: AnyIterable[T1]) -> AsyncIterator[Tuple[T1]]: # pragma: no cover+def zip(__iter1: AnyIterable[T1]) -> AsyncIterator[tuple[T1]]: # pragma: no cover
pass
@overload
def zip(
__iter1: AnyIterable[T1], __iter2: AnyIterable[T2]
-) -> AsyncIterator[Tuple[T1, T2]]: # pragma: no cover+) -> AsyncIterator[tuple[T1, T2]]: # pragma: no cover
pass
@overload
def zip(
__iter1: AnyIterable[T1], __iter2: AnyIterable[T2], __iter3: AnyIterable[T3]
-) -> AsyncIterator[Tuple[T1, T2, T3]]: # pragma: no cover+) -> AsyncIterator[tuple[T1, T2, T3]]: # pragma: no cover
pass
@@ -388,7 +386,7 @@
__iter2: AnyIterable[T2],
__iter3: AnyIterable[T3],
__iter4: AnyIterable[T4],
-) -> AsyncIterator[Tuple[T1, T2, T3, T4]]: # pragma: no cover+) -> AsyncIterator[tuple[T1, T2, T3, T4]]: # pragma: no cover
pass
@@ -399,7 +397,7 @@
__iter3: AnyIterable[T3],
__iter4: AnyIterable[T4],
__iter5: AnyIterable[T5],
-) -> AsyncIterator[Tuple[T1, T2, T3, T4, T5]]: # pragma: no cover+) -> AsyncIterator[tuple[T1, T2, T3, T4, T5]]: # pragma: no cover
pass
@@ -412,11 +410,11 @@
__iter5: AnyIterable[Any],
__iter6: AnyIterable[Any],
*__iterables: AnyIterable[Any],
-) -> AsyncIterator[Tuple[Any, ...]]: # pragma: no cover+) -> AsyncIterator[tuple[Any, ...]]: # pragma: no cover
pass
-async def zip(*itrs: AnyIterable[Any]) -> AsyncIterator[Tuple[Any, ...]]:+async def zip(*itrs: AnyIterable[Any]) -> AsyncIterator[tuple[Any, ...]]:
"""
Yield a tuple of items from mixed iterables until the shortest is consumed.
@@ -426,7 +424,7 @@
...
"""
- its: List[AsyncIterator[Any]] = [iter(itr) for itr in itrs]+ its: list[AsyncIterator[Any]] = [iter(itr) for itr in itrs]
while True:
values = await asyncio.gather(
--- a/aioitertools/itertools.py+++ b/aioitertools/itertools.py@@ -17,7 +17,8 @@
import builtins
import itertools
import operator
-from typing import Any, AsyncIterator, List, Optional, overload, Tuple+from typing import Any, List, Optional, overload, Tuple+from collections.abc import AsyncIterator
from .builtins import enumerate, iter, list, next, tuple, zip
from .helpers import maybe_await
@@ -71,7 +72,7 @@
n: int,
*,
strict: bool = False,
-) -> AsyncIterator[Tuple[T, ...]]:+) -> AsyncIterator[tuple[T, ...]]:
"""
Yield batches of values from the given iterable. The final batch may be shorter.
@@ -119,7 +120,7 @@
chain = Chain()
-async def combinations(itr: AnyIterable[T], r: int) -> AsyncIterator[Tuple[T, ...]]:+async def combinations(itr: AnyIterable[T], r: int) -> AsyncIterator[tuple[T, ...]]:
"""
Yield r length subsequences from the given iterable.
@@ -132,14 +133,14 @@
... # (0, 1, 2), (0, 1, 3), (0, 2, 3), (1, 2, 3)
"""
- pool: List[T] = await list(itr)+ pool: list[T] = await list(itr)
for value in itertools.combinations(pool, r):
yield value
async def combinations_with_replacement(
itr: AnyIterable[T], r: int
-) -> AsyncIterator[Tuple[T, ...]]:+) -> AsyncIterator[tuple[T, ...]]:
"""
Yield r length subsequences from the given iterable with replacement.
@@ -152,7 +153,7 @@
... # ("A", "A"), ("A", "B"), ("A", "C"), ("B", "B"), ...
"""
- pool: List[T] = await list(itr)+ pool: list[T] = await list(itr)
for value in itertools.combinations_with_replacement(pool, r):
yield value
@@ -264,20 +265,20 @@
@overload
-def groupby(itr: AnyIterable[T]) -> AsyncIterator[Tuple[T, List[T]]]: # pragma: nocover+def groupby(itr: AnyIterable[T]) -> AsyncIterator[tuple[T, list[T]]]: # pragma: nocover
pass
@overload
def groupby(
itr: AnyIterable[T], key: KeyFunction[T, R]
-) -> AsyncIterator[Tuple[R, List[T]]]: # pragma: nocover+) -> AsyncIterator[tuple[R, list[T]]]: # pragma: nocover
pass
async def groupby(
itr: AnyIterable[T], key: Optional[KeyFunction[T, R]] = None
-) -> AsyncIterator[Tuple[Any, List[T]]]:+) -> AsyncIterator[tuple[Any, list[T]]]:
"""
Yield consecutive keys and groupings from the given iterable.
@@ -298,7 +299,7 @@
if key is None:
key = lambda x: x # noqa: E731
- grouping: List[T] = []+ grouping: list[T] = []
it = iter(itr)
try:
@@ -385,7 +386,7 @@
async def permutations(
itr: AnyIterable[T], r: Optional[int] = None
-) -> AsyncIterator[Tuple[T, ...]]:+) -> AsyncIterator[tuple[T, ...]]:
"""
Yield r length permutations of elements in the iterable.
@@ -398,14 +399,14 @@
... # (0, 1, 2), (0, 2, 1), (1, 0, 2), ...
"""
- pool: List[T] = await list(itr)+ pool: list[T] = await list(itr)
for value in itertools.permutations(pool, r):
yield value
async def product(
*itrs: AnyIterable[T], repeat: int = 1
-) -> AsyncIterator[Tuple[T, ...]]:+) -> AsyncIterator[tuple[T, ...]]:
"""
Yield cartesian products of all iterables.
@@ -489,7 +490,7 @@
break
-def tee(itr: AnyIterable[T], n: int = 2) -> Tuple[AsyncIterator[T], ...]:+def tee(itr: AnyIterable[T], n: int = 2) -> tuple[AsyncIterator[T], ...]:
"""
Return n iterators that each yield items from the given iterable.
@@ -516,7 +517,7 @@
"""
assert n > 0
sentinel = object()
- queues: List[asyncio.Queue] = [asyncio.Queue() for k in range(n)]+ queues: list[asyncio.Queue] = [asyncio.Queue() for k in range(n)]
async def gen(k: int, q: asyncio.Queue) -> AsyncIterator[T]:
if k == 0:
@@ -546,7 +547,7 @@
async def zip_longest(
*itrs: AnyIterable[Any], fillvalue: Any = None
-) -> AsyncIterator[Tuple[Any, ...]]:+) -> AsyncIterator[tuple[Any, ...]]:
"""
Yield a tuple of items from mixed iterables until all are consumed.
@@ -563,7 +564,7 @@
b # 0, 1, 2, 3, 4
"""
- its: List[AsyncIterator[Any]] = [iter(itr) for itr in itrs]+ its: list[AsyncIterator[Any]] = [iter(itr) for itr in itrs]
itr_count = len(its)
finished = 0
--- a/aioitertools/more_itertools.py+++ b/aioitertools/more_itertools.py@@ -2,7 +2,8 @@
# Licensed under the MIT license
import asyncio
-from typing import AsyncIterable, List, Tuple, TypeVar+from typing import List, Tuple, TypeVar+from collections.abc import AsyncIterable
from aioitertools.helpers import maybe_await
@@ -14,7 +15,7 @@
T = TypeVar("T")
-async def take(n: int, iterable: AnyIterable[T]) -> List[T]:+async def take(n: int, iterable: AnyIterable[T]) -> list[T]:
"""
Return the first n items of iterable as a list.
@@ -31,7 +32,7 @@
return [item async for item in islice(iterable, n)]
-async def chunked(iterable: AnyIterable[T], n: int) -> AsyncIterable[List[T]]:+async def chunked(iterable: AnyIterable[T], n: int) -> AsyncIterable[list[T]]:
"""
Break iterable into chunks of length n.
@@ -52,7 +53,7 @@
async def before_and_after(
predicate: Predicate[T], iterable: AnyIterable[T]
-) -> Tuple[AsyncIterable[T], AsyncIterable[T]]:+) -> tuple[AsyncIterable[T], AsyncIterable[T]]:
"""
A variant of :func:`aioitertools.takewhile` that allows complete access to the
remainder of the iterator.
--- a/aioitertools/tests/builtins.py+++ b/aioitertools/tests/builtins.py@@ -2,7 +2,7 @@
# Licensed under the MIT license
import asyncio
-from typing import AsyncIterator+from collections.abc import AsyncIterator
from unittest import TestCase
import aioitertools as ait
--- a/aioitertools/tests/more_itertools.py+++ b/aioitertools/tests/more_itertools.py@@ -1,7 +1,7 @@
# Copyright 2022 Amethyst Reese
# Licensed under the MIT license
-from typing import AsyncIterable+from collections.abc import AsyncIterable
from unittest import TestCase
import aioitertools.more_itertools as mit
--- a/aioitertools/types.py+++ b/aioitertools/types.py@@ -4,15 +4,11 @@
import sys
from typing import (
- AsyncIterable,- AsyncIterator,- Awaitable,
Callable,
- Iterable,- Iterator,
TypeVar,
Union,
)
+from collections.abc import AsyncIterable, AsyncIterator, Awaitable, Iterable, Iterator
if sys.version_info < (3, 10): # pragma: no cover
from typing_extensions import ParamSpec
--- a/aioitertools/helpers.py+++ b/aioitertools/helpers.py@@ -3,7 +3,8 @@
import inspect
import sys
-from typing import Awaitable, Union+from typing import Union+from collections.abc import Awaitable
from .types import T
With that patch pytest fails with
+ /usr/bin/pytest -ra -m 'not network' aioitertools/tests/__init__.py aioitertools/tests/__main__.py aioitertools/tests/asyncio.py aioitertools/tests/builtins.py aioitertools/tests/helpers.py aioitertools/tests/itertools.py aioitertools/tests/more_itertools.py==================================================================================== test session starts ====================================================================================platform linux -- Python 3.10.14, pytest-8.2.2, pluggy-1.5.0rootdir: /home/tkloczko/rpmbuild/BUILD/aioitertools-0.12.0configfile: pyproject.tomlcollected 0 items / 7 errors========================================================================================== ERRORS ===========================================================================================______________________________________________________________________ ERROR collecting aioitertools/tests/__init__.py ______________________________________________________________________/usr/lib64/python3.10/importlib/__init__.py:126: in import_module return _bootstrap._gcd_import(name[level:], package, level)<frozen importlib._bootstrap>:1050: in _gcd_import ???<frozen importlib._bootstrap>:1027: in _find_and_load ???<frozen importlib._bootstrap>:992: in _find_and_load_unlocked ???<frozen importlib._bootstrap>:241: in _call_with_frames_removed ???<frozen importlib._bootstrap>:1050: in _gcd_import ???<frozen importlib._bootstrap>:1027: in _find_and_load ???<frozen importlib._bootstrap>:1006: in _find_and_load_unlocked ???<frozen importlib._bootstrap>:688: in _load_unlocked ???<frozen importlib._bootstrap_external>:883: in exec_module ???<frozen importlib._bootstrap>:241: in _call_with_frames_removed ???aioitertools/__init__.py:9: in <module> from . import asyncioaioitertools/asyncio.py:23: in <module> from .builtins import iter as aiter, maybe_awaitaioitertools/builtins.py:193: in <module> ) -> AsyncIterator[tuple[int, T]]:E TypeError: 'function' object is not subscriptable______________________________________________________________________ ERROR collecting aioitertools/tests/__main__.py ______________________________________________________________________/usr/lib64/python3.10/importlib/__init__.py:126: in import_module return _bootstrap._gcd_import(name[level:], package, level)<frozen importlib._bootstrap>:1050: in _gcd_import ???<frozen importlib._bootstrap>:1027: in _find_and_load ???<frozen importlib._bootstrap>:992: in _find_and_load_unlocked ???<frozen importlib._bootstrap>:241: in _call_with_frames_removed ???<frozen importlib._bootstrap>:1050: in _gcd_import ???<frozen importlib._bootstrap>:1027: in _find_and_load ???<frozen importlib._bootstrap>:992: in _find_and_load_unlocked ???<frozen importlib._bootstrap>:241: in _call_with_frames_removed ???<frozen importlib._bootstrap>:1050: in _gcd_import ???<frozen importlib._bootstrap>:1027: in _find_and_load ???<frozen importlib._bootstrap>:1006: in _find_and_load_unlocked ???<frozen importlib._bootstrap>:688: in _load_unlocked ???<frozen importlib._bootstrap_external>:883: in exec_module ???<frozen importlib._bootstrap>:241: in _call_with_frames_removed ???aioitertools/__init__.py:9: in <module> from . import asyncioaioitertools/asyncio.py:23: in <module> from .builtins import iter as aiter, maybe_awaitaioitertools/builtins.py:193: in <module> ) -> AsyncIterator[tuple[int, T]]:E TypeError: 'function' object is not subscriptable______________________________________________________________________ ERROR collecting aioitertools/tests/asyncio.py _______________________________________________________________________/usr/lib64/python3.10/importlib/__init__.py:126: in import_module return _bootstrap._gcd_import(name[level:], package, level)<frozen importlib._bootstrap>:1050: in _gcd_import ???<frozen importlib._bootstrap>:1027: in _find_and_load ???<frozen importlib._bootstrap>:992: in _find_and_load_unlocked ???<frozen importlib._bootstrap>:241: in _call_with_frames_removed ???<frozen importlib._bootstrap>:1050: in _gcd_import ???<frozen importlib._bootstrap>:1027: in _find_and_load ???<frozen importlib._bootstrap>:992: in _find_and_load_unlocked ???<frozen importlib._bootstrap>:241: in _call_with_frames_removed ???<frozen importlib._bootstrap>:1050: in _gcd_import ???<frozen importlib._bootstrap>:1027: in _find_and_load ???<frozen importlib._bootstrap>:1006: in _find_and_load_unlocked ???<frozen importlib._bootstrap>:688: in _load_unlocked ???<frozen importlib._bootstrap_external>:883: in exec_module ???<frozen importlib._bootstrap>:241: in _call_with_frames_removed ???aioitertools/__init__.py:9: in <module> from . import asyncioaioitertools/asyncio.py:23: in <module> from .builtins import iter as aiter, maybe_awaitaioitertools/builtins.py:193: in <module> ) -> AsyncIterator[tuple[int, T]]:E TypeError: 'function' object is not subscriptable______________________________________________________________________ ERROR collecting aioitertools/tests/builtins.py ______________________________________________________________________/usr/lib64/python3.10/importlib/__init__.py:126: in import_module return _bootstrap._gcd_import(name[level:], package, level)<frozen importlib._bootstrap>:1050: in _gcd_import ???<frozen importlib._bootstrap>:1027: in _find_and_load ???<frozen importlib._bootstrap>:992: in _find_and_load_unlocked ???<frozen importlib._bootstrap>:241: in _call_with_frames_removed ???<frozen importlib._bootstrap>:1050: in _gcd_import ???<frozen importlib._bootstrap>:1027: in _find_and_load ???<frozen importlib._bootstrap>:992: in _find_and_load_unlocked ???<frozen importlib._bootstrap>:241: in _call_with_frames_removed ???<frozen importlib._bootstrap>:1050: in _gcd_import ???<frozen importlib._bootstrap>:1027: in _find_and_load ???<frozen importlib._bootstrap>:1006: in _find_and_load_unlocked ???<frozen importlib._bootstrap>:688: in _load_unlocked ???<frozen importlib._bootstrap_external>:883: in exec_module ???<frozen importlib._bootstrap>:241: in _call_with_frames_removed ???aioitertools/__init__.py:9: in <module> from . import asyncioaioitertools/asyncio.py:23: in <module> from .builtins import iter as aiter, maybe_awaitaioitertools/builtins.py:193: in <module> ) -> AsyncIterator[tuple[int, T]]:E TypeError: 'function' object is not subscriptable______________________________________________________________________ ERROR collecting aioitertools/tests/helpers.py _______________________________________________________________________/usr/lib64/python3.10/importlib/__init__.py:126: in import_module return _bootstrap._gcd_import(name[level:], package, level)<frozen importlib._bootstrap>:1050: in _gcd_import ???<frozen importlib._bootstrap>:1027: in _find_and_load ???<frozen importlib._bootstrap>:992: in _find_and_load_unlocked ???<frozen importlib._bootstrap>:241: in _call_with_frames_removed ???<frozen importlib._bootstrap>:1050: in _gcd_import ???<frozen importlib._bootstrap>:1027: in _find_and_load ???<frozen importlib._bootstrap>:992: in _find_and_load_unlocked ???<frozen importlib._bootstrap>:241: in _call_with_frames_removed ???<frozen importlib._bootstrap>:1050: in _gcd_import ???<frozen importlib._bootstrap>:1027: in _find_and_load ???<frozen importlib._bootstrap>:1006: in _find_and_load_unlocked ???<frozen importlib._bootstrap>:688: in _load_unlocked ???<frozen importlib._bootstrap_external>:883: in exec_module ???<frozen importlib._bootstrap>:241: in _call_with_frames_removed ???aioitertools/__init__.py:9: in <module> from . import asyncioaioitertools/asyncio.py:23: in <module> from .builtins import iter as aiter, maybe_awaitaioitertools/builtins.py:193: in <module> ) -> AsyncIterator[tuple[int, T]]:E TypeError: 'function' object is not subscriptable_____________________________________________________________________ ERROR collecting aioitertools/tests/itertools.py ______________________________________________________________________/usr/lib64/python3.10/importlib/__init__.py:126: in import_module return _bootstrap._gcd_import(name[level:], package, level)<frozen importlib._bootstrap>:1050: in _gcd_import ???<frozen importlib._bootstrap>:1027: in _find_and_load ???<frozen importlib._bootstrap>:992: in _find_and_load_unlocked ???<frozen importlib._bootstrap>:241: in _call_with_frames_removed ???<frozen importlib._bootstrap>:1050: in _gcd_import ???<frozen importlib._bootstrap>:1027: in _find_and_load ???<frozen importlib._bootstrap>:992: in _find_and_load_unlocked ???<frozen importlib._bootstrap>:241: in _call_with_frames_removed ???<frozen importlib._bootstrap>:1050: in _gcd_import ???<frozen importlib._bootstrap>:1027: in _find_and_load ???<frozen importlib._bootstrap>:1006: in _find_and_load_unlocked ???<frozen importlib._bootstrap>:688: in _load_unlocked ???<frozen importlib._bootstrap_external>:883: in exec_module ???<frozen importlib._bootstrap>:241: in _call_with_frames_removed ???aioitertools/__init__.py:9: in <module> from . import asyncioaioitertools/asyncio.py:23: in <module> from .builtins import iter as aiter, maybe_awaitaioitertools/builtins.py:193: in <module> ) -> AsyncIterator[tuple[int, T]]:E TypeError: 'function' object is not subscriptable___________________________________________________________________ ERROR collecting aioitertools/tests/more_itertools.py ___________________________________________________________________/usr/lib64/python3.10/importlib/__init__.py:126: in import_module return _bootstrap._gcd_import(name[level:], package, level)<frozen importlib._bootstrap>:1050: in _gcd_import ???<frozen importlib._bootstrap>:1027: in _find_and_load ???<frozen importlib._bootstrap>:992: in _find_and_load_unlocked ???<frozen importlib._bootstrap>:241: in _call_with_frames_removed ???<frozen importlib._bootstrap>:1050: in _gcd_import ???<frozen importlib._bootstrap>:1027: in _find_and_load ???<frozen importlib._bootstrap>:992: in _find_and_load_unlocked ???<frozen importlib._bootstrap>:241: in _call_with_frames_removed ???<frozen importlib._bootstrap>:1050: in _gcd_import ???<frozen importlib._bootstrap>:1027: in _find_and_load ???<frozen importlib._bootstrap>:1006: in _find_and_load_unlocked ???<frozen importlib._bootstrap>:688: in _load_unlocked ???<frozen importlib._bootstrap_external>:883: in exec_module ???<frozen importlib._bootstrap>:241: in _call_with_frames_removed ???aioitertools/__init__.py:9: in <module> from . import asyncioaioitertools/asyncio.py:23: in <module> from .builtins import iter as aiter, maybe_awaitaioitertools/builtins.py:193: in <module> ) -> AsyncIterator[tuple[int, T]]:E TypeError: 'function' object is not subscriptable================================================================================== short test summary info ==================================================================================ERROR aioitertools/tests/__init__.py - TypeError: 'function' object is not subscriptableERROR aioitertools/tests/__main__.py - TypeError: 'function' object is not subscriptableERROR aioitertools/tests/asyncio.py - TypeError: 'function' object is not subscriptableERROR aioitertools/tests/builtins.py - TypeError: 'function' object is not subscriptableERROR aioitertools/tests/helpers.py - TypeError: 'function' object is not subscriptableERROR aioitertools/tests/itertools.py - TypeError: 'function' object is not subscriptableERROR aioitertools/tests/more_itertools.py - TypeError: 'function' object is not subscriptable!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! Interrupted: 7 errors during collection !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!===================================================================================== 7 errors in 0.33s =====================================================================================
The text was updated successfully, but these errors were encountered:
kloczek
changed the title
0.12.0: not ready for python 3.9 list, tiple, set, disct (lowe case)
0.12.0: not ready for python 3.9 list, tuple, set, dict (lower case)
Nov 9, 2024
Description
Pyton 3.8 just has been EOSed month ago (https://endoflife.date/python) so I've been trying to use
pyupgrade --py39-plus
to check is current code ready to automatic upgrade.Looks like it is not because it uses (upper case) Set, List, Dict etc.
Please have look on https://flycoolman.com/coding/python/list-tuple-dict-vs-list-tuple-dict/
Details
Here is the patch generated by `pypgrade --py39-plus`
With that patch pytest fails with
The text was updated successfully, but these errors were encountered: