autowire.context package

Submodules

autowire.context.provider module

context.provider

Interface for providing resource’s implementations.

class autowire.context.provider.ImplementationConsumer[source]

Bases: object

Declarative base type for objects that can bind resources with implementation.

set_implementation(resource: autowire.base.BaseResource, implementation: autowire.base.Implementation)[source]
class autowire.context.provider.Provider(resource: autowire.base.BaseResource, consumer: autowire.context.provider.ImplementationConsumer)[source]

Bases: autowire.impl.implementable.Implementable

Type that can provide implementation to specific resource.

implement(implementation: autowire.base.Implementation)[source]

Set implementation of implementable.

autowire.context.root module

autowire.context.root

Root context.

autowire.context.root.root_context = <autowire.context.root._RootContext object>

Parent of all contexts

Module contents

autowire.context.impl

Context’s implementations

class autowire.context.Context(parent: autowire.base.BaseContext = <autowire.context.root._RootContext object>)[source]

Bases: autowire.base.BaseContext, autowire.context.provider.ImplementationConsumer

Context implementation.

get_implementation(resource: autowire.base.BaseResource)[source]

Get resource implementation from this context.

provide(resource: autowire.base.BaseResource, implementation: autowire.base.Implementation = None)[source]

Provide an implementaion for resource in this context.

context.provide(resource, implementation)

Or as a decorator

@context.provide(resource)
@impl.autowired('dependency1', dependency1)
@impl.autowired('dependency2', dependency2)
@impl.contextmanager
def create_resource(dependency1, dependency2):
    yield dependency1.make_resource(dependency2)
provided_by(resource: autowire.base.BaseResource)[source]

Find context that provides resource.

set_implementation(resource: autowire.base.BaseResource, implementation: autowire.base.Implementation)[source]