autowire.context package

Submodules

autowire.context.provider module

context.provider

Interface for providing resource’s implementations.

class autowire.context.provider.ImplementationConsumer[source]

Bases: object

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

Bases: autowire.impl.types.Implementable

implement(implementation: typing.Callable[[autowire.base.BaseContext], typing.Any])[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)[source]

Resource resource’s implementation provider which is Implementable

@autowired(context.provide(resource), dependency1, dependency2)
@contextlib.contextmanager
def create_resource(dependency1, dependency2):
    yield dependency1.make_resource(dependency2)

__call__ method is alias for this method

@autowired(context(resource), dependency1, dependency2)
@contextlib.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: typing.Callable[[autowire.base.BaseContext], typing.Any])[source]