Skip to content

Commit 61ba4de

Browse files
authored
Change return type of as_completed in Python 3.13 (#12912)
1 parent ec1c327 commit 61ba4de

File tree

1 file changed

+7
-2
lines changed

1 file changed

+7
-2
lines changed

stdlib/asyncio/tasks.pyi

+7-2
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ from _asyncio import (
77
_register_task as _register_task,
88
_unregister_task as _unregister_task,
99
)
10-
from collections.abc import Awaitable, Coroutine, Generator, Iterable, Iterator
10+
from collections.abc import AsyncIterator, Awaitable, Coroutine, Generator, Iterable, Iterator
1111
from typing import Any, Literal, Protocol, TypeVar, overload
1212
from typing_extensions import TypeAlias
1313

@@ -84,7 +84,12 @@ FIRST_COMPLETED = concurrent.futures.FIRST_COMPLETED
8484
FIRST_EXCEPTION = concurrent.futures.FIRST_EXCEPTION
8585
ALL_COMPLETED = concurrent.futures.ALL_COMPLETED
8686

87-
if sys.version_info >= (3, 10):
87+
if sys.version_info >= (3, 13):
88+
class _SyncAndAsyncIterator(Iterator[_T_co], AsyncIterator[_T_co], Protocol[_T_co]): ...
89+
90+
def as_completed(fs: Iterable[_FutureLike[_T]], *, timeout: float | None = None) -> _SyncAndAsyncIterator[Future[_T]]: ...
91+
92+
elif sys.version_info >= (3, 10):
8893
def as_completed(fs: Iterable[_FutureLike[_T]], *, timeout: float | None = None) -> Iterator[Future[_T]]: ...
8994

9095
else:

0 commit comments

Comments
 (0)