API¶
siringa is a minimalist dependency injection library.
Usage example:
import siringa
@siringa.register
class MyUtilityClass(object):
pass
@siringa.inject
def fn(foo, MyUtilityClass: '!'):
return MyUtilityClass(foo)
-
class
siringa.
Layer
(name, parent=None)¶ Bases:
object
Layer represents a dependency injection layer with its own container. Layer can optionally inherit from a parent layer, implicitly inheriting its container dependencies.
-
A
(name, resolver=None)¶
-
Annotation
(name, resolver=None)¶
-
clear
()¶
-
clear_mocks
()¶
-
container
¶
-
inject
(*args, **kwargs)¶
-
invoke
(*args, **kwargs)¶
-
is_injectable
(name)¶
-
lookup
(name, defaults=None)¶
-
lookup_mock
(name, defaults=None)¶
-
mock
(*args, **kwargs)¶
-
mocks
¶
-
register
(*args, **kwargs)¶
-
unregister
(name)¶
-
unregister_mock
(name)¶
-
-
siringa.
analyze
(obj)¶ Takes an object and dynamically infers its type in order to analyze dependency injection annotations.
-
class
siringa.
Container
(parent=None)¶ Bases:
collections.abc.MutableMapping
Dependencies container store that support optional parent container hierarchies and inheritance.
-
clear
()¶
-
clear_mocks
()¶
-
pop
(name)¶
-
pop_mock
(name)¶
-
-
class
siringa.
Dependency
(obj, mock=False)¶ Bases:
object
Dependency represents an injectable dependency used across containers.
-
dependencies
()¶
-
is_injectable
()¶
-
is_mock
()¶
-
-
exception
siringa.
MissingDependencyError
¶ Bases:
siringa.errors.SiringaError
-
exception
siringa.
DuplicatedDependencyError
¶ Bases:
siringa.errors.SiringaError
-
exception
siringa.
InvalidDependencyTypeError
¶ Bases:
siringa.errors.SiringaError
-
siringa.
register
(*args, **kwargs)¶
-
siringa.
inject
(*args, **kwargs)¶
-
siringa.
invoke
(*args, **kwargs)¶
-
siringa.
clear
(*args, **kwargs)¶
-
siringa.
clear_mocks
(*args, **kwargs)¶
-
siringa.
lookup
(*args, **kwargs)¶
-
siringa.
mock
(*args, **kwargs)¶
-
siringa.
unregister
(*args, **kwargs)¶
-
siringa.
unregister_mock
(*args, **kwargs)¶
-
siringa.
is_injectable
(*args, **kwargs)¶
-
siringa.
Annotation
(*args, **kwargs)¶
-
siringa.
A
(*args, **kwargs)¶
-
siringa.
lookup_mock
(*args, **kwargs)¶
-
siringa.
mocks
(*args, **kwargs)¶
-
siringa.
parent
(*args, **kwargs)¶
-
siringa.
container
(*args, **kwargs)¶