diff --git a/src/dependency_injector/providers.pyi b/src/dependency_injector/providers.pyi index ae11f31f..ed9b5500 100644 --- a/src/dependency_injector/providers.pyi +++ b/src/dependency_injector/providers.pyi @@ -14,8 +14,6 @@ from typing import ( Coroutine as _Coroutine, ) -from .types import Provider as _Provider - Injection = Any T = TypeVar('T') @@ -30,7 +28,7 @@ class OverridingContext: class Provider(Generic[T]): def __init__(self) -> None: ... def __call__(self, *args: Injection, **kwargs: Injection) -> T: ... - def __deepcopy__(self, memo: Optional[Dict[str, Any]]) -> Provider: ... + def __deepcopy__(self, memo: Optional[Dict[Any, Any]]) -> Provider: ... def __str__(self) -> str: ... def __repr__(self) -> str: ... @property @@ -43,7 +41,7 @@ class Provider(Generic[T]): def delegate(self) -> Provider: ... @property def provider(self) -> Provider: ... - def _copy_overridings(self, copied: Provider, memo: Optional[Dict[str, Any]]) -> None: ... + def _copy_overridings(self, copied: Provider, memo: Optional[Dict[Any, Any]]) -> None: ... class Object(Provider, Generic[T]): @@ -316,7 +314,7 @@ def is_delegated(instance: Any) -> bool: ... def represent_provider(provider: Provider, provides: Any) -> str: ... -def deepcopy(instance: Any, memo: Optional[Dict[str, Any]]): Any: ... +def deepcopy(instance: Any, memo: Optional[Dict[Any, Any]]): Any: ... def merge_dicts(dict1: Dict[Any, Any], dict2: Dict[Any, Any]) -> Dict[Any, Any]: ... diff --git a/src/dependency_injector/types.py b/src/dependency_injector/types.py index 205b57a4..a03e2353 100644 --- a/src/dependency_injector/types.py +++ b/src/dependency_injector/types.py @@ -3,13 +3,12 @@ import warnings warnings.warn( - message=( - 'Types module is deprecated since version 3.44.0. Use "Provider" class from the ' - '"providers" module: providers.Provider[SomeClass]' - ), + 'Types module is deprecated since version 3.44.0. Use "providers" module instead: ' + 'providers.Provider[SomeClass]', category=DeprecationWarning, ) + Injection = Any T = TypeVar('T') diff --git a/tests/unit/providers/test_base_py2_py3.py b/tests/unit/providers/test_base_py2_py3.py index 1a31fff3..16e93c74 100644 --- a/tests/unit/providers/test_base_py2_py3.py +++ b/tests/unit/providers/test_base_py2_py3.py @@ -139,6 +139,11 @@ class ProviderTests(unittest.TestCase): self.assertIsNot(overriding_provider, overriding_provider_copy) self.assertIsInstance(overriding_provider_copy, providers.Provider) + def test_generic_type(self): + provider: providers.Provider[object] = providers.Factory(object) + some_object = provider() + self.assertIsInstance(some_object, object) + def test_repr(self): self.assertEqual(repr(self.provider), '