From 2152f259b705c308f367b661904334e4cb3d0c7d Mon Sep 17 00:00:00 2001 From: Roman Mogylatov Date: Wed, 26 Aug 2020 20:48:38 -0400 Subject: [PATCH] Add stubs for the dynamic container --- src/dependency_injector/containers.pyi | 18 ++++++++++++++++++ tests/typing/dynamic_container.py | 18 ++++++++++++++++++ 2 files changed, 36 insertions(+) create mode 100644 src/dependency_injector/containers.pyi create mode 100644 tests/typing/dynamic_container.py diff --git a/src/dependency_injector/containers.pyi b/src/dependency_injector/containers.pyi new file mode 100644 index 00000000..ce99aa4f --- /dev/null +++ b/src/dependency_injector/containers.pyi @@ -0,0 +1,18 @@ +from typing import Type, Dict, Tuple, Optional, Any, Union + +from .providers import Provider + + +class DynamicContainer: + provider_type: Type[Provider] = Provider + providers: Dict[str, Provider] + overridden: Tuple[Provider] + def __init__(self) -> None: ... + def __deepcopy__(self, memo: Optional[Dict[str, Any]]) -> Provider: ... + def __setattr__(self, name: str, value: Union[Provider, Any]) -> None: ... + def __delattr__(self, name: str) -> None: ... + def set_providers(self, **providers: Provider): ... + def override(self, overriding: DynamicContainer) -> None: ... + def override_providers(self, **overriding_providers: Provider) -> None: ... + def reset_last_overriding(self) -> None: ... + def reset_override(self) -> None: ... diff --git a/tests/typing/dynamic_container.py b/tests/typing/dynamic_container.py new file mode 100644 index 00000000..991e92e8 --- /dev/null +++ b/tests/typing/dynamic_container.py @@ -0,0 +1,18 @@ +from dependency_injector import containers, providers + + +# Test 1: to check setattr +container1 = containers.DynamicContainer() +container1.abc = providers.Provider() + +# Test 2: to check override() +container2 = containers.DynamicContainer() +container2.override(containers.DynamicContainer()) + +# Test 3: to check override_providers() +container3 = containers.DynamicContainer() +container3.override_providers(a=providers.Provider()) + +# Test 4: to check set_providers() +container4 = containers.DynamicContainer() +container4.set_providers(a=providers.Provider())