From 94a2575ad47a79aa9abdc43b67fcafce0d9dce56 Mon Sep 17 00:00:00 2001 From: Roman Mogylatov Date: Tue, 25 Aug 2020 16:53:33 -0400 Subject: [PATCH] Add stubs for the DependenciesContainer provider --- src/dependency_injector/providers.pyi | 7 +++++++ tests/typing/dependencies_container.py | 10 ++++++++++ 2 files changed, 17 insertions(+) create mode 100644 tests/typing/dependencies_container.py diff --git a/src/dependency_injector/providers.pyi b/src/dependency_injector/providers.pyi index ed6a4956..1941e4d6 100644 --- a/src/dependency_injector/providers.pyi +++ b/src/dependency_injector/providers.pyi @@ -55,6 +55,13 @@ class Dependency(Provider, Generic[T]): class ExternalDependency(Dependency): ... +class DependenciesContainer(Object): + def __init__(self, **dependencies: Provider) -> None: ... + def __getattr__(self, name: str) -> Provider: ... + @property + def providers(self) -> Dict[str, 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/dependencies_container.py b/tests/typing/dependencies_container.py new file mode 100644 index 00000000..9e7948c9 --- /dev/null +++ b/tests/typing/dependencies_container.py @@ -0,0 +1,10 @@ +from dependency_injector import providers + + +# Test 1: to check the getattr type +provider1 = providers.DependenciesContainer( + a=providers.Provider(), + b=providers.Provider(), +) +a1: providers.Provider = provider1.a +b1: providers.Provider = provider1.b