From 821f0be3b7a01989e150097959f19143fcdfab5b Mon Sep 17 00:00:00 2001 From: Roman Mogylatov Date: Tue, 25 Aug 2020 16:31:43 -0400 Subject: [PATCH] Add Delegate stub --- src/dependency_injector/providers.pyi | 5 +++++ tests/typing/delegate.py | 6 ++++++ 2 files changed, 11 insertions(+) create mode 100644 tests/typing/delegate.py diff --git a/src/dependency_injector/providers.pyi b/src/dependency_injector/providers.pyi index 7e623198..dd19f9cf 100644 --- a/src/dependency_injector/providers.pyi +++ b/src/dependency_injector/providers.pyi @@ -37,6 +37,11 @@ class Object(Provider, Generic[T]): def provided(self) -> ProvidedInstance: ... +class Delegate(Provider): + def __init__(self, provides: Provider) -> None: ... + def __call__(self, *args: Injection, **kwargs: Injection) -> Provider: ... + + class Callable(Provider, Generic[T]): def __init__(self, provides: _Callable[..., T], *args: Injection, **kwargs: Injection) -> None: ... def __call__(self, *args: Injection, **kwargs: Injection) -> T: ... diff --git a/tests/typing/delegate.py b/tests/typing/delegate.py new file mode 100644 index 00000000..353c0830 --- /dev/null +++ b/tests/typing/delegate.py @@ -0,0 +1,6 @@ +from dependency_injector import providers + + +# Test 1: to check the return type +provider1 = providers.Delegate(providers.Provider()) +var1: providers.Provider = provider1()