Restore Callable positional & keyword argument injections via __init__(*args, **kwargs)

This commit is contained in:
Roman Mogilatov 2016-05-18 15:07:48 +03:00
parent a0b8b11a91
commit 44d0555778
2 changed files with 8 additions and 5 deletions

View File

@ -26,7 +26,7 @@ class Callable(Provider):
__slots__ = ('_provides', '_args', '_kwargs')
def __init__(self, provides):
def __init__(self, provides, *args, **kwargs):
"""Initializer.
:param provides: Wrapped callable.
@ -42,6 +42,9 @@ class Callable(Provider):
self._args = tuple()
self._kwargs = tuple()
self.args(*args)
self.kwargs(**kwargs)
super(Callable, self).__init__()
@property

View File

@ -49,7 +49,7 @@ class Factory(Callable):
__slots__ = ('cls', '_attributes')
def __init__(self, provides):
def __init__(self, provides, *args, **kwargs):
"""Initializer.
:param provides: Class or other callable that provides object
@ -63,7 +63,7 @@ class Factory(Callable):
self._attributes = tuple()
super(Factory, self).__init__(provides)
super(Factory, self).__init__(provides, *args, **kwargs)
self.cls = self._provides
@ -174,7 +174,7 @@ class Singleton(Factory):
__slots__ = ('_instance',)
def __init__(self, provides):
def __init__(self, provides, *args, **kwargs):
"""Initializer.
:param provides: Class or other callable that provides object
@ -182,7 +182,7 @@ class Singleton(Factory):
:type provides: type | callable
"""
self._instance = None
super(Singleton, self).__init__(provides)
super(Singleton, self).__init__(provides, *args, **kwargs)
def reset(self):
"""Reset cached instance, if any.