mirror of
https://github.com/ets-labs/python-dependency-injector.git
synced 2024-11-26 03:23:58 +03:00
Improve FactoryAggregate typing stub
This commit is contained in:
parent
6af818102b
commit
4cb268a352
|
@ -9,6 +9,7 @@ follows `Semantic versioning`_
|
|||
|
||||
Development version
|
||||
-------------------
|
||||
- Improve ``FactoryAggregate`` typing stub.
|
||||
- Improve resource subclasses typing and make shutdown definition optional
|
||||
`PR #492 <https://github.com/ets-labs/python-dependency-injector/pull/492>`_.
|
||||
Thanks to `@EdwardBlair <https://github.com/EdwardBlair>`_ for suggesting the improvement.
|
||||
|
|
|
@ -282,19 +282,19 @@ class FactoryDelegate(Delegate):
|
|||
def __init__(self, factory: Factory): ...
|
||||
|
||||
|
||||
class FactoryAggregate(Provider):
|
||||
def __init__(self, **factories: Factory): ...
|
||||
def __getattr__(self, factory_name: str) -> Factory: ...
|
||||
class FactoryAggregate(Provider[T]):
|
||||
def __init__(self, **factories: Factory[T]): ...
|
||||
def __getattr__(self, factory_name: str) -> Factory[T]: ...
|
||||
|
||||
@overload
|
||||
def __call__(self, factory_name: str, *args: Injection, **kwargs: Injection) -> Any: ...
|
||||
def __call__(self, factory_name: str, *args: Injection, **kwargs: Injection) -> T: ...
|
||||
@overload
|
||||
def __call__(self, factory_name: str, *args: Injection, **kwargs: Injection) -> Awaitable[Any]: ...
|
||||
def async_(self, factory_name: str, *args: Injection, **kwargs: Injection) -> Awaitable[Any]: ...
|
||||
def __call__(self, factory_name: str, *args: Injection, **kwargs: Injection) -> Awaitable[T]: ...
|
||||
def async_(self, factory_name: str, *args: Injection, **kwargs: Injection) -> Awaitable[T]: ...
|
||||
|
||||
@property
|
||||
def factories(self) -> _Dict[str, Factory]: ...
|
||||
def set_factories(self, **factories: Factory) -> FactoryAggregate: ...
|
||||
def factories(self) -> _Dict[str, Factory[T]]: ...
|
||||
def set_factories(self, **factories: Factory[T]) -> FactoryAggregate[T]: ...
|
||||
|
||||
|
||||
class BaseSingleton(Provider[T]):
|
||||
|
|
|
@ -55,13 +55,13 @@ animal7: Animal = provider7(1, 2, 3, b='1', c=2, e=0.0)
|
|||
provider8 = providers.FactoryDelegate(providers.Factory(object))
|
||||
|
||||
# Test 9: to check FactoryAggregate provider
|
||||
provider9 = providers.FactoryAggregate(
|
||||
a=providers.Factory(object),
|
||||
b=providers.Factory(object),
|
||||
provider9: providers.FactoryAggregate[str] = providers.FactoryAggregate(
|
||||
a=providers.Factory(str, "str1"),
|
||||
b=providers.Factory(str, "str2"),
|
||||
)
|
||||
factory_a_9: providers.Factory = provider9.a
|
||||
factory_b_9: providers.Factory = provider9.b
|
||||
val9: Any = provider9('a')
|
||||
factory_a_9: providers.Factory[str] = provider9.a
|
||||
factory_b_9: providers.Factory[str] = provider9.b
|
||||
val9: str = provider9('a')
|
||||
|
||||
# Test 10: to check the explicit typing
|
||||
factory10: providers.Provider[Animal] = providers.Factory(Cat)
|
||||
|
|
Loading…
Reference in New Issue
Block a user