autowire.resource package¶
Submodules¶
autowire.resource.function module¶
autowire.resource.function¶
Resource implementation as a function
-
class
autowire.resource.function.FunctionResource(func, *, name=None, namespace=None)[source]¶ Bases:
autowire.base.BaseResource,autowire.impl.types.ImplementableResource class that wraps a function.
-
default_implementation¶
-
autowire.resource.plain module¶
autowire.resource.plain¶
Plain resource implementation
-
class
autowire.resource.plain.Resource(name, namespace)[source]¶ Bases:
autowire.base.BaseResource,autowire.impl.types.ImplementableResource class of some functionalities like default implementation.
-
default_implementation¶
-
autowire.resource.utils module¶
Module contents¶
autowire.resource¶
Resource implementations.
-
class
autowire.resource.Resource(name, namespace)[source]¶ Bases:
autowire.base.BaseResource,autowire.impl.types.ImplementableResource class of some functionalities like default implementation.
-
default_implementation¶
-
-
class
autowire.resource.FunctionResource(func, *, name=None, namespace=None)[source]¶ Bases:
autowire.base.BaseResource,autowire.impl.types.ImplementableResource class that wraps a function.
-
default_implementation¶
-
-
autowire.resource.contextual(*dependencies: autowire.base.BaseResource, decorators=(), name=None, namespace=None)[source]¶ Create a resource with contextual function implementation.
@resource.contextual(dependency1, dependency2) @contextlib.contextmanager def contextual_resource(dependency1, dependency2): yield dependency1.make_resource(dependency2) with context.resolve(contextual_resource) as value: print(value) # ...
The default name and namespace will be resolved from decorated function.
-
autowire.resource.plain(*dependencies: autowire.base.BaseResource, decorators=(), name=None, namespace=None)[source]¶ Create a resource with plain function implementation.
@resource.plain(dependency) def resource_path(dependency): return os.path.join(dependency, 'resource.json') with context.resolve(resource_path) as path: with open(path) as f: # ...
The default name and namespace will be resolved from decorated function.
-
autowire.resource.partial(*positionals, decorators=(), name=None, namespace=None, **keywords)[source]¶ Create a partial resource which is a partial function of decorated function. Arguments will be partially filled with resolved resources.
@resource.partial(user_repository=user_repository): def find_user_by_id(user_id, user_repository): return user_repository.find_by_id(user_id) with context.resolve(find_user_by_id) as func: user = func(100001) # user_repository will be resolved partially. # ...
The default name and namespace will be resolved from decorated function.