autowire.impl package

Submodules

autowire.impl.types module

impl.types

Types for implementation.

class autowire.impl.types.Implementable[source]

Bases: object

Some type that implementable

implement(implementation: typing.Callable[[autowire.base.BaseContext], typing.Any])[source]

Implement me

autowire.impl.types.Implementation

Implementation type

alias of Callable

Module contents

impl

Implementers.

autowire.impl.implement(target: autowire.impl.types.Implementable)[source]

Implement it.

@implement(resource)
@contextlib.contextmanager
def implementation(context: Context):
    with open('output.log', 'w') as ouput:
        yield output
autowire.impl.with_decorators(target: autowire.impl.types.Implementable, *decorators)[source]

Set default implementation with decorators. It sets implementation with decorators but returns original function not decorated function so that does not change function’s interface.

autowire.impl.plain(target: autowire.impl.types.Implementable, *dependencies, decorators=())[source]

Implement with plain function.

@impl.plain(resource, dependency)
def get_resource(dependency):
    return os.path.join(dependency, 'resource.json')
autowire.impl.contextual(target: autowire.impl.types.Implementable, *dependencies: autowire.base.BaseResource, decorators=())[source]

Implement with contextual & autowired resources.

@impl.contextual(resource, dependency1, dependency2)
@contextlib.contextmanager
def create_resource(dependency1, dependency2):
    yield dependency1.make_resource(dependency2)

To apply decorators to implementation

@impl.contextual(resource, dependency, decorators=[decorator])
@contextlib.contextmanager
def create_resource(dependency):
    yield dependency.make_resource()
autowire.impl.Implementation

alias of Callable