Return types module with deprecation warning

This commit is contained in:
Roman Mogylatov 2020-09-13 19:59:39 -04:00
parent c3981b02fc
commit 65ce9d54a2
4 changed files with 11 additions and 24 deletions

View File

@ -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]: ...

View File

@ -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')

View File

@ -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),
'<dependency_injector.providers.'

View File

@ -1,15 +0,0 @@
import unittest
from dependency_injector import providers
class SomeClass:
...
class TypesTest(unittest.TestCase):
def test_provider(self):
provider: providers.Provider[SomeClass] = providers.Factory(SomeClass)
some_object = provider()
self.assertIsInstance(some_object, SomeClass)