mirror of
https://github.com/ets-labs/python-dependency-injector.git
synced 2025-07-04 20:33:13 +03:00
Add .provides attribute to singleton providers
This commit is contained in:
parent
171afdad71
commit
0636f78d00
|
@ -7,6 +7,12 @@ that were made in every particular version.
|
|||
From version 0.7.6 *Dependency Injector* framework strictly
|
||||
follows `Semantic versioning`_
|
||||
|
||||
Development version
|
||||
-------------------
|
||||
- Add ``.provides`` attribute to ``Singleton`` and its subclasses.
|
||||
It's a consistency change to make ``Singleton`` match ``Callable``
|
||||
and ``Factory`` interfaces.
|
||||
|
||||
4.13.2
|
||||
------
|
||||
- Fix PyCharm typing warning "Expected type 'Optional[Iterable[ModuleType]]',
|
||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -242,6 +242,8 @@ class BaseSingleton(Provider[T]):
|
|||
@property
|
||||
def cls(self) -> T: ...
|
||||
@property
|
||||
def provides(self) -> T: ...
|
||||
@property
|
||||
def args(self) -> Tuple[Injection]: ...
|
||||
def add_args(self, *args: Injection) -> BaseSingleton[T]: ...
|
||||
def set_args(self, *args: Injection) -> BaseSingleton[T]: ...
|
||||
|
|
|
@ -2283,7 +2283,12 @@ cdef class BaseSingleton(Provider):
|
|||
@property
|
||||
def cls(self):
|
||||
"""Return provided type."""
|
||||
return self.__instantiator.cls
|
||||
return self.provides
|
||||
|
||||
@property
|
||||
def provides(self):
|
||||
"""Return provided type."""
|
||||
return self.__instantiator.provides
|
||||
|
||||
@property
|
||||
def args(self):
|
||||
|
@ -2388,7 +2393,7 @@ cdef class BaseSingleton(Provider):
|
|||
@property
|
||||
def related(self):
|
||||
"""Return related providers generator."""
|
||||
yield from filter(is_provider, [self.__instantiator.provs])
|
||||
yield from filter(is_provider, [self.__instantiator.provides])
|
||||
yield from filter(is_provider, self.args)
|
||||
yield from filter(is_provider, self.kwargs.values())
|
||||
yield from filter(is_provider, self.attributes.values())
|
||||
|
|
Loading…
Reference in New Issue
Block a user