diff --git a/stdlib/@tests/test_cases/asyncio/check_coroutines.py b/stdlib/@tests/test_cases/asyncio/check_coroutines.py index 6062ca55146a..10fe854073f1 100644 --- a/stdlib/@tests/test_cases/asyncio/check_coroutines.py +++ b/stdlib/@tests/test_cases/asyncio/check_coroutines.py @@ -19,10 +19,10 @@ def test_iscoroutinefunction_asyncio( assert_type(x, Callable[[str, int], Coroutine[str, int, bytes]]) if iscoroutinefunction(y): # pyright: ignore - assert_type(y, Callable[[str, int], Coroutine[Any, Any, bytes]]) + assert_type(y, Callable[[str, int], Awaitable[bytes]]) if iscoroutinefunction(z): # pyright: ignore - assert_type(z, Callable[[str, int], Coroutine[Any, Any, Any]]) + assert_type(z, Callable[[str, int], str | Awaitable[bytes]]) if iscoroutinefunction(xx): # pyright: ignore assert_type(xx, Callable[..., Coroutine[Any, Any, Any]]) @@ -31,10 +31,10 @@ def test_iscoroutinefunction_asyncio( assert_type(x, Callable[[str, int], Coroutine[str, int, bytes]]) if iscoroutinefunction(y): - assert_type(y, Callable[[str, int], Coroutine[Any, Any, bytes]]) + assert_type(y, Callable[[str, int], Awaitable[bytes]]) if iscoroutinefunction(z): - assert_type(z, Callable[[str, int], Coroutine[Any, Any, Any]]) + assert_type(z, Callable[[str, int], str | Awaitable[bytes]]) if iscoroutinefunction(xx): assert_type(xx, Callable[..., Coroutine[Any, Any, Any]]) diff --git a/stdlib/@tests/test_cases/check_inspect.py b/stdlib/@tests/test_cases/check_inspect.py index e7ef3d25cf6e..37710ba3a5d3 100644 --- a/stdlib/@tests/test_cases/check_inspect.py +++ b/stdlib/@tests/test_cases/check_inspect.py @@ -17,10 +17,10 @@ def test_iscoroutinefunction_inspect( assert_type(x, Callable[[str, int], Coroutine[str, int, bytes]]) if inspect.iscoroutinefunction(y): - assert_type(y, Callable[[str, int], CoroutineType[Any, Any, bytes]]) + assert_type(y, Callable[[str, int], Awaitable[bytes]]) if inspect.iscoroutinefunction(z): - assert_type(z, Callable[[str, int], CoroutineType[Any, Any, Any]]) + assert_type(z, Callable[[str, int], str | Awaitable[bytes]]) if inspect.iscoroutinefunction(xx): assert_type(xx, Callable[..., CoroutineType[Any, Any, Any]]) diff --git a/stdlib/asyncio/coroutines.pyi b/stdlib/asyncio/coroutines.pyi index 7599c692949b..a285974adec4 100644 --- a/stdlib/asyncio/coroutines.pyi +++ b/stdlib/asyncio/coroutines.pyi @@ -1,6 +1,6 @@ import sys from collections.abc import Awaitable, Callable, Coroutine -from typing import Any, ParamSpec, TypeGuard, TypeVar, overload +from typing import Any, ParamSpec, TypeVar, overload from typing_extensions import TypeIs, deprecated # Keep asyncio.__all__ updated with any changes to __all__ here @@ -25,21 +25,21 @@ if sys.version_info >= (3, 11): def iscoroutinefunction(func: Callable[..., Coroutine[Any, Any, Any]]) -> bool: ... @overload @deprecated("Deprecated since Python 3.14. Use `inspect.iscoroutinefunction()` instead.") - def iscoroutinefunction(func: Callable[_P, Awaitable[_T]]) -> TypeGuard[Callable[_P, Coroutine[Any, Any, _T]]]: ... + def iscoroutinefunction(func: Callable[_P, Awaitable[_T]]) -> TypeIs[Callable[_P, Coroutine[Any, Any, _T]]]: ... @overload @deprecated("Deprecated since Python 3.14. Use `inspect.iscoroutinefunction()` instead.") - def iscoroutinefunction(func: Callable[_P, object]) -> TypeGuard[Callable[_P, Coroutine[Any, Any, Any]]]: ... + def iscoroutinefunction(func: Callable[_P, object]) -> TypeIs[Callable[_P, Coroutine[Any, Any, Any]]]: ... @overload @deprecated("Deprecated since Python 3.14. Use `inspect.iscoroutinefunction()` instead.") - def iscoroutinefunction(func: object) -> TypeGuard[Callable[..., Coroutine[Any, Any, Any]]]: ... + def iscoroutinefunction(func: object) -> TypeIs[Callable[..., Coroutine[Any, Any, Any]]]: ... else: # Sometimes needed in Python < 3.11 due to the fact that it supports @coroutine # which was removed in 3.11 which the inspect version doesn't support. @overload def iscoroutinefunction(func: Callable[..., Coroutine[Any, Any, Any]]) -> bool: ... @overload - def iscoroutinefunction(func: Callable[_P, Awaitable[_T]]) -> TypeGuard[Callable[_P, Coroutine[Any, Any, _T]]]: ... + def iscoroutinefunction(func: Callable[_P, Awaitable[_T]]) -> TypeIs[Callable[_P, Coroutine[Any, Any, _T]]]: ... @overload - def iscoroutinefunction(func: Callable[_P, object]) -> TypeGuard[Callable[_P, Coroutine[Any, Any, Any]]]: ... + def iscoroutinefunction(func: Callable[_P, object]) -> TypeIs[Callable[_P, Coroutine[Any, Any, Any]]]: ... @overload - def iscoroutinefunction(func: object) -> TypeGuard[Callable[..., Coroutine[Any, Any, Any]]]: ... + def iscoroutinefunction(func: object) -> TypeIs[Callable[..., Coroutine[Any, Any, Any]]]: ... diff --git a/stdlib/inspect.pyi b/stdlib/inspect.pyi index 387540c659ba..657d93cdab99 100644 --- a/stdlib/inspect.pyi +++ b/stdlib/inspect.pyi @@ -239,11 +239,11 @@ def isgeneratorfunction(obj: object) -> TypeGuard[Callable[..., GeneratorType[An @overload def iscoroutinefunction(obj: Callable[..., Coroutine[Any, Any, Any]]) -> bool: ... @overload -def iscoroutinefunction(obj: Callable[_P, Awaitable[_T]]) -> TypeGuard[Callable[_P, CoroutineType[Any, Any, _T]]]: ... +def iscoroutinefunction(obj: Callable[_P, Awaitable[_T]]) -> TypeIs[Callable[_P, CoroutineType[Any, Any, _T]]]: ... @overload -def iscoroutinefunction(obj: Callable[_P, object]) -> TypeGuard[Callable[_P, CoroutineType[Any, Any, Any]]]: ... +def iscoroutinefunction(obj: Callable[_P, object]) -> TypeIs[Callable[_P, CoroutineType[Any, Any, Any]]]: ... @overload -def iscoroutinefunction(obj: object) -> TypeGuard[Callable[..., CoroutineType[Any, Any, Any]]]: ... +def iscoroutinefunction(obj: object) -> TypeIs[Callable[..., CoroutineType[Any, Any, Any]]]: ... def isgenerator(object: object) -> TypeIs[GeneratorType[Any, Any, Any]]: ... def iscoroutine(object: object) -> TypeIs[CoroutineType[Any, Any, Any]]: ...