""" Injections module. """ class Injection(object): """ Base injection class. """ def __init__(self, name, injectable): """ Initializer. """ self.name = name self.injectable = injectable @property def value(self): """ Returns injectable value. """ if hasattr(self.injectable, '__is_objects_provider__'): return self.injectable() return self.injectable class InitArg(Injection): """ Init argument injection. """ class Attribute(Injection): """ Attribute injection. """ class Method(Injection): """ Method injection. """