From ce412980d2d509d8daf3e1504e907e2a05539e11 Mon Sep 17 00:00:00 2001 From: Roman Mogylatov Date: Wed, 26 Aug 2020 17:53:11 -0400 Subject: [PATCH] Add stub for the Container provider --- src/dependency_injector/providers.pyi | 7 +++++++ tests/typing/container.py | 14 ++++++++++++++ 2 files changed, 21 insertions(+) create mode 100644 tests/typing/container.py diff --git a/src/dependency_injector/providers.pyi b/src/dependency_injector/providers.pyi index 19699536..8a8ec9f5 100644 --- a/src/dependency_injector/providers.pyi +++ b/src/dependency_injector/providers.pyi @@ -261,6 +261,13 @@ class List(Provider): def clear_args(self) -> List: ... +class Container(Provider): + + def __init__(self, container_cls: Type[T], container: Optional[T] = None, **overriding_providers: Provider) -> None: ... + def __call__(self, *args: Injection, **kwargs: Injection) -> T: ... + def __getattr__(self, name: str) -> Provider: ... + + class ProvidedInstanceFluentInterface: def __getattr__(self, item: str) -> AttributeGetter: ... def __getitem__(self, item: str) -> ItemGetter: ... diff --git a/tests/typing/container.py b/tests/typing/container.py new file mode 100644 index 00000000..768f1d3f --- /dev/null +++ b/tests/typing/container.py @@ -0,0 +1,14 @@ +from dependency_injector import providers + + +class Container: + ... + + +# Test 1: to check the return type +provider1 = providers.Container(Container) +var1: Container = provider1() + +# Test 2: to check the getattr +provider2 = providers.Container(Container) +attr: providers.Provider = provider2.attr