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:
objectLayer 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.MutableMappingDependencies container store that support optional parent container hierarchies and inheritance.
-
clear()¶
-
clear_mocks()¶
-
pop(name)¶
-
pop_mock(name)¶
-
-
exception
siringa.SiringaError¶ Bases:
Exception
-
class
siringa.Dependency(obj, mock=False)¶ Bases:
objectDependency 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)¶