diff --git a/src/dependency_injector/providers.pyi b/src/dependency_injector/providers.pyi index 1941e4d6..65e6548e 100644 --- a/src/dependency_injector/providers.pyi +++ b/src/dependency_injector/providers.pyi @@ -88,6 +88,10 @@ class AbstractCallable(Callable): def override(self, provider: Callable) -> OverridingContext: ... +class CallableDelegate(Delegate): + def __init__(self, callable: Callable) -> None: ... + + class Factory(Provider, Generic[T]): provided_type: Optional[Type] def __init__(self, provides: _Callable[..., T], *args: Injection, **kwargs: Injection) -> None: ... diff --git a/tests/typing/callable.py b/tests/typing/callable.py index 370c452e..474acb1a 100644 --- a/tests/typing/callable.py +++ b/tests/typing/callable.py @@ -47,3 +47,6 @@ animal6: Animal = provider6(1, 2, 3, b='1', c=2, e=0.0) provider7 = providers.AbstractCallable(Animal) provider7.override(providers.Callable(Cat)) animal7: Animal = provider7(1, 2, 3, b='1', c=2, e=0.0) + +# Test 8: to check the CallableDelegate __init__ +provider8 = providers.CallableDelegate(providers.Callable(lambda: None))