asphalt.core.component

class asphalt.core.component.Component

This is the base class for all Asphalt components.

coroutine start(self, ctx)

Perform any necessary tasks to start the services provided by this component.

Components typically use the context to:

It is advisable for Components to first publish all the resources they can before requesting any. This will speed up the dependency resolution and prevent deadlocks.

Parameters:ctx (Context) – the containing context for this component
class asphalt.core.component.ContainerComponent(components=None)

A component that can contain other components.

Parameters:

components (Optional[Dict[str, Dict[str, Any]]]) – dictionary of component alias ⭢ component configuration dictionary

Variables:
  • child_components (Dict[str, Component]) – dictionary of component alias ⭢ Component instance (of child components added with add_component())
  • component_configs (Dict[str, Dict[str, Any]]) – dictionary of component alias ⭢ externally provided component configuration
add_component(alias, type=None, **config)

Add a child component.

This will instantiate a component class, as specified by the type argument.

If the second argument is omitted, the value of alias is used as its value.

The locally given configuration can be overridden by component configuration parameters supplied to the constructor (via the components argument).

When configuration values are provided both as keyword arguments to this method and component configuration through the components constructor argument, the configurations are merged together using merge_config() in a way that the configuration values from the components argument override the keyword arguments to this method.

Parameters:
  • alias (str) – a name for the component instance, unique within this container
  • type (Union[str, type, None]) – entry point name or Component subclass or a module:varname reference to one
  • config – keyword arguments passed to the component’s constructor
coroutine start(self, ctx)

Create child components that have been configured but not yet created and then calls their start() methods in separate tasks and waits until they have completed.

class asphalt.core.component.CLIApplicationComponent(components=None)

Specialized subclass of ContainerComponent for command line tools.

Command line tools and similar applications should use this as their root component and implement their main code in the run() method.

When all the subcomponents have been started, run() is started as a new task. When the task is finished, the application will exit using the return value as its exit code.

If run() raises an exception, a stack trace is printed and the exit code will be set to 1. If the returned exit code is out of range or of the wrong data type, it is set to 1 and a warning is emitted.

coroutine run(self, ctx)

Run the business logic of the command line tool.

Do not call this method yourself.

Return type:Optional[int]
Returns:the application’s exit code (0-127; None = 0)