mirror of
https://github.com/ets-labs/python-dependency-injector.git
synced 2025-07-08 22:33:15 +03:00
fix: type propogation through provided (#733)
Co-authored-by: Gonzalo Martinez <gonzarmv@gmail.com>
This commit is contained in:
parent
46646b1acf
commit
00326e9a22
|
@ -69,7 +69,7 @@ class Provider(Generic[T]):
|
||||||
@property
|
@property
|
||||||
def provider(self) -> Provider: ...
|
def provider(self) -> Provider: ...
|
||||||
@property
|
@property
|
||||||
def provided(self) -> ProvidedInstance: ...
|
def provided(self) -> ProvidedInstance[T]: ...
|
||||||
def enable_async_mode(self) -> None: ...
|
def enable_async_mode(self) -> None: ...
|
||||||
def disable_async_mode(self) -> None: ...
|
def disable_async_mode(self) -> None: ...
|
||||||
def reset_async_mode(self) -> None: ...
|
def reset_async_mode(self) -> None: ...
|
||||||
|
|
|
@ -34,7 +34,7 @@ kwargs4: Dict[str, Any] = provider4.kwargs
|
||||||
|
|
||||||
# Test 5: to check the provided instance interface
|
# Test 5: to check the provided instance interface
|
||||||
provider5 = providers.Callable(Animal)
|
provider5 = providers.Callable(Animal)
|
||||||
provided5: providers.ProvidedInstance = provider5.provided
|
provided5: Animal = provider5.provided()
|
||||||
attr_getter5: providers.AttributeGetter = provider5.provided.attr
|
attr_getter5: providers.AttributeGetter = provider5.provided.attr
|
||||||
item_getter5: providers.ItemGetter = provider5.provided["item"]
|
item_getter5: providers.ItemGetter = provider5.provided["item"]
|
||||||
method_caller: providers.MethodCaller = provider5.provided.method.call(123, arg=324)
|
method_caller: providers.MethodCaller = provider5.provided.method.call(123, arg=324)
|
||||||
|
|
|
@ -34,7 +34,7 @@ provider5 = providers.Dict(
|
||||||
a1=providers.Factory(object),
|
a1=providers.Factory(object),
|
||||||
a2=providers.Factory(object),
|
a2=providers.Factory(object),
|
||||||
)
|
)
|
||||||
provided5: providers.ProvidedInstance = provider5.provided
|
provided5: dict[Any, Any] = provider5.provided()
|
||||||
|
|
||||||
|
|
||||||
# Test 6: to check the return type with await
|
# Test 6: to check the return type with await
|
||||||
|
|
|
@ -37,7 +37,7 @@ attributes4: Dict[str, Any] = provider4.attributes
|
||||||
|
|
||||||
# Test 5: to check the provided instance interface
|
# Test 5: to check the provided instance interface
|
||||||
provider5 = providers.Factory(Animal)
|
provider5 = providers.Factory(Animal)
|
||||||
provided5: providers.ProvidedInstance = provider5.provided
|
provided5: Animal = provider5.provided()
|
||||||
attr_getter5: providers.AttributeGetter = provider5.provided.attr
|
attr_getter5: providers.AttributeGetter = provider5.provided.attr
|
||||||
item_getter5: providers.ItemGetter = provider5.provided["item"]
|
item_getter5: providers.ItemGetter = provider5.provided["item"]
|
||||||
method_caller5: providers.MethodCaller = provider5.provided.method.call(123, arg=324)
|
method_caller5: providers.MethodCaller = provider5.provided.method.call(123, arg=324)
|
||||||
|
|
|
@ -23,7 +23,7 @@ provider3 = providers.List(
|
||||||
providers.Factory(object),
|
providers.Factory(object),
|
||||||
providers.Factory(object),
|
providers.Factory(object),
|
||||||
)
|
)
|
||||||
provided3: providers.ProvidedInstance = provider3.provided
|
provided3: List[Any] = provider3.provided()
|
||||||
attr_getter3: providers.AttributeGetter = provider3.provided.attr
|
attr_getter3: providers.AttributeGetter = provider3.provided.attr
|
||||||
item_getter3: providers.ItemGetter = provider3.provided["item"]
|
item_getter3: providers.ItemGetter = provider3.provided["item"]
|
||||||
method_caller3: providers.MethodCaller = provider3.provided.method.call(123, arg=324)
|
method_caller3: providers.MethodCaller = provider3.provided.method.call(123, arg=324)
|
||||||
|
|
|
@ -9,7 +9,7 @@ var1: int = provider1()
|
||||||
|
|
||||||
# Test 2: to check the provided instance interface
|
# Test 2: to check the provided instance interface
|
||||||
provider2 = providers.Object(int)
|
provider2 = providers.Object(int)
|
||||||
provided2: providers.ProvidedInstance = provider2.provided
|
provided2: Type[int] = provider2.provided()
|
||||||
attr_getter2: providers.AttributeGetter = provider2.provided.attr
|
attr_getter2: providers.AttributeGetter = provider2.provided.attr
|
||||||
item_getter2: providers.ItemGetter = provider2.provided["item"]
|
item_getter2: providers.ItemGetter = provider2.provided["item"]
|
||||||
method_caller2: providers.MethodCaller = provider2.provided.method.call(123, arg=324)
|
method_caller2: providers.MethodCaller = provider2.provided.method.call(123, arg=324)
|
||||||
|
|
|
@ -3,7 +3,7 @@ from dependency_injector import providers
|
||||||
|
|
||||||
# Test 1: to check .provided attribute
|
# Test 1: to check .provided attribute
|
||||||
provider1: providers.Provider[int] = providers.Object(1)
|
provider1: providers.Provider[int] = providers.Object(1)
|
||||||
provided: providers.ProvidedInstance = provider1.provided
|
provided: int = provider1.provided()
|
||||||
|
|
||||||
# Test 2: to check async mode API
|
# Test 2: to check async mode API
|
||||||
provider2: providers.Provider = providers.Provider()
|
provider2: providers.Provider = providers.Provider()
|
||||||
|
|
|
@ -37,7 +37,7 @@ attributes4: Dict[str, Any] = provider4.attributes
|
||||||
|
|
||||||
# Test 5: to check the provided instance interface
|
# Test 5: to check the provided instance interface
|
||||||
provider5 = providers.Singleton(Animal)
|
provider5 = providers.Singleton(Animal)
|
||||||
provided5: providers.ProvidedInstance = provider5.provided
|
provided5: Animal = provider5.provided()
|
||||||
attr_getter5: providers.AttributeGetter = provider5.provided.attr
|
attr_getter5: providers.AttributeGetter = provider5.provided.attr
|
||||||
item_getter5: providers.ItemGetter = provider5.provided["item"]
|
item_getter5: providers.ItemGetter = provider5.provided["item"]
|
||||||
method_caller5: providers.MethodCaller = provider5.provided.method.call(123, arg=324)
|
method_caller5: providers.MethodCaller = provider5.provided.method.call(123, arg=324)
|
||||||
|
|
Loading…
Reference in New Issue
Block a user