diff --git a/src/dependency_injector/providers.pyi b/src/dependency_injector/providers.pyi index 8ba2e98d..29248d3e 100644 --- a/src/dependency_injector/providers.pyi +++ b/src/dependency_injector/providers.pyi @@ -197,7 +197,7 @@ class AbstractCallable(Callable[T]): class CallableDelegate(Delegate): def __init__(self, callable: Callable) -> None: ... -class Coroutine(Callable[T]): ... +class Coroutine(Callable[T_Any]): ... class DelegatedCoroutine(Coroutine[T]): ... class AbstractCoroutine(Coroutine[T]): diff --git a/tests/typing/coroutine.py b/tests/typing/coroutine.py index e6234077..190d771a 100644 --- a/tests/typing/coroutine.py +++ b/tests/typing/coroutine.py @@ -1,4 +1,5 @@ -from typing import Awaitable, Coroutine +from typing import Awaitable, Coroutine, Any +from typing_extensions import assert_type from dependency_injector import providers @@ -8,8 +9,10 @@ async def _coro() -> None: ... # Test 1: to check the return type provider1 = providers.Coroutine(_coro) -var1: Awaitable[None] = provider1() +var1 = provider1() +assert_type(var1, Coroutine[Any, Any, None]) # type: ignore[unused-coroutine] # Test 2: to check string imports -provider2: providers.Coroutine[None] = providers.Coroutine("_coro") +provider2 = providers.Coroutine("_coro") provider2.set_provides("_coro") +assert_type(provider2, providers.Coroutine[Any])