From e2c4ffd9eb671a31624d96f190672930f518ad11 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=A1ssio=20Botaro?= Date: Thu, 8 Apr 2021 15:34:43 -0300 Subject: [PATCH] Tighten wait() return type using overloads (#5193) Closes: #5095 --- stdlib/asyncio/tasks.pyi | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/stdlib/asyncio/tasks.pyi b/stdlib/asyncio/tasks.pyi index 9da1d92f5..65f61b887 100644 --- a/stdlib/asyncio/tasks.pyi +++ b/stdlib/asyncio/tasks.pyi @@ -149,9 +149,16 @@ def gather( def run_coroutine_threadsafe(coro: _FutureT[_T], loop: AbstractEventLoop) -> concurrent.futures.Future[_T]: ... def shield(arg: _FutureT[_T], *, loop: Optional[AbstractEventLoop] = ...) -> Future[_T]: ... def sleep(delay: float, result: _T = ..., *, loop: Optional[AbstractEventLoop] = ...) -> Future[_T]: ... +@overload +def wait(fs: Iterable[_FT], *, loop: Optional[AbstractEventLoop] = ..., timeout: Optional[float] = ..., return_when: str = ...) -> Future[Tuple[Set[_FT], Set[_FT]]]: ... # type: ignore +@overload def wait( - fs: Iterable[_FutureT[_T]], *, loop: Optional[AbstractEventLoop] = ..., timeout: Optional[float] = ..., return_when: str = ... -) -> Future[Tuple[Set[Future[_T]], Set[Future[_T]]]]: ... + fs: Iterable[Awaitable[_T]], + *, + loop: Optional[AbstractEventLoop] = ..., + timeout: Optional[float] = ..., + return_when: str = ..., +) -> Future[Tuple[Set[Task[_T]], Set[Task[_T]]]]: ... def wait_for(fut: _FutureT[_T], timeout: Optional[float], *, loop: Optional[AbstractEventLoop] = ...) -> Future[_T]: ... class Task(Future[_T], Generic[_T]):