Types#

This module defines type aliases used throughout the Core.Service module.

The classes and special types in this module can include data models, data structures, and other types that are defined for type hinting.

class PipelineRunnerFunction(*args, **kwargs)[source]#

Bases: Protocol

Protocol for pipeline running.

__call__(message, ctx_id=None, update_ctx_misc=None)[source]#
Parameters:
  • message (Message) – User request for pipeline to process.

  • ctx_id (Optional[Hashable]) – ID of the context that the new request belongs to. Optional, None by default. If set to None, a new context will be created with message being the first request.

  • update_ctx_misc (Optional[dict]) – Dictionary to be passed as an argument to ctx.misc.update. This argument can be used to store values in the misc dictionary before anything else runs. Optional; None by default. If set to None, ctx.misc.update will not be called.

Return type:

Awaitable[Context]

Returns:

Context instance that pipeline processed. The context instance has the id of ctx_id. If ctx_id is None, context instance has an id generated with uuid.uuid4.

_is_protocol = True#
class ComponentExecutionState(value)[source]#

Bases: str, Enum

Enum, representing pipeline component execution state. These states are stored in service_states, that should always be requested with NOT_RUN being default fallback. Following states are supported:

  • NOT_RUN: component has not been executed yet (the default one),

  • RUNNING: component is currently being executed,

  • FINISHED: component executed successfully,

  • FAILED: component execution failed.

NOT_RUN = 'NOT_RUN'#
RUNNING = 'RUNNING'#
FINISHED = 'FINISHED'#
FAILED = 'FAILED'#
_generate_next_value_(start, count, last_values)#

Generate the next value when not given.

name: the name of the member start: the initial start value or None count: the number of existing members last_value: the last value assigned or None

_member_names_ = ['NOT_RUN', 'RUNNING', 'FINISHED', 'FAILED']#
_member_map_ = {'FAILED': ComponentExecutionState.FAILED, 'FINISHED': ComponentExecutionState.FINISHED, 'NOT_RUN': ComponentExecutionState.NOT_RUN, 'RUNNING': ComponentExecutionState.RUNNING}#
_member_type_#

alias of str

_value2member_map_ = {'FAILED': ComponentExecutionState.FAILED, 'FINISHED': ComponentExecutionState.FINISHED, 'NOT_RUN': ComponentExecutionState.NOT_RUN, 'RUNNING': ComponentExecutionState.RUNNING}#
class GlobalExtraHandlerType(value)[source]#

Bases: str, Enum

Enum, representing types of global extra handlers, that can be set applied for a pipeline. The following types are supported:

  • BEFORE_ALL: function called before each pipeline call,

  • BEFORE: function called before each component,

  • AFTER: function called after each component,

  • AFTER_ALL: function called after each pipeline call.

BEFORE_ALL = 'BEFORE_ALL'#
BEFORE = 'BEFORE'#
AFTER = 'AFTER'#
AFTER_ALL = 'AFTER_ALL'#
_generate_next_value_(start, count, last_values)#

Generate the next value when not given.

name: the name of the member start: the initial start value or None count: the number of existing members last_value: the last value assigned or None

_member_names_ = ['BEFORE_ALL', 'BEFORE', 'AFTER', 'AFTER_ALL']#
_member_map_ = {'AFTER': GlobalExtraHandlerType.AFTER, 'AFTER_ALL': GlobalExtraHandlerType.AFTER_ALL, 'BEFORE': GlobalExtraHandlerType.BEFORE, 'BEFORE_ALL': GlobalExtraHandlerType.BEFORE_ALL}#
_member_type_#

alias of str

_value2member_map_ = {'AFTER': GlobalExtraHandlerType.AFTER, 'AFTER_ALL': GlobalExtraHandlerType.AFTER_ALL, 'BEFORE': GlobalExtraHandlerType.BEFORE, 'BEFORE_ALL': GlobalExtraHandlerType.BEFORE_ALL}#
class ExtraHandlerType(value)[source]#

Bases: str, Enum

Enum, representing wrapper execution stage: before or after the wrapped function. The following types are supported:

  • UNDEFINED: extra handler function with undetermined execution stage,

  • BEFORE: extra handler function called before component,

  • AFTER: extra handler function called after component.

UNDEFINED = 'UNDEFINED'#
BEFORE = 'BEFORE'#
AFTER = 'AFTER'#
_generate_next_value_(start, count, last_values)#

Generate the next value when not given.

name: the name of the member start: the initial start value or None count: the number of existing members last_value: the last value assigned or None

_member_names_ = ['UNDEFINED', 'BEFORE', 'AFTER']#
_member_map_ = {'AFTER': ExtraHandlerType.AFTER, 'BEFORE': ExtraHandlerType.BEFORE, 'UNDEFINED': ExtraHandlerType.UNDEFINED}#
_member_type_#

alias of str

_value2member_map_ = {'AFTER': ExtraHandlerType.AFTER, 'BEFORE': ExtraHandlerType.BEFORE, 'UNDEFINED': ExtraHandlerType.UNDEFINED}#
StartConditionCheckerFunction#

A function type for components start_conditions. Accepts context and pipeline, returns boolean (whether service can be launched).

alias of Callable[[Context, Pipeline], bool]

StartConditionCheckerAggregationFunction#

A function type for creating aggregation start_conditions for components. Accepts list of functions (other start_conditions to aggregate), returns boolean (whether service can be launched).

alias of Callable[[Iterable[bool]], bool]

ExtraHandlerConditionFunction#

A function type used during global extra handler initialization to determine whether extra handler should be applied to component with given path or not. Checks components path to be in whitelist (if defined) and not to be in blacklist (if defined). Accepts str (component path), returns boolean (whether extra handler should be applied).

alias of Callable[[str], bool]

class ServiceRuntimeInfo(**data)[source]#

Bases: BaseModel

Type of object, that is passed to components in runtime. Contains current component info (name, path, timeout, asynchronous). Also contains execution_state - a dictionary, containing execution states of other components mapped to their paths.

name: str#
path: str#
timeout: Optional[float]#
asynchronous: bool#
execution_state: Dict[str, ComponentExecutionState]#
ExtraHandlerFunction#

A function type for creating extra handler (before and after functions). Can accept current dialog context, pipeline, and current extra handler info.

alias of Union[Callable[[Context], Any], Callable[[Context, Pipeline], Any], Callable[[Context, Pipeline, ExtraHandlerRuntimeInfo], Any]]

class ExtraHandlerRuntimeInfo(**data)[source]#

Bases: BaseModel

func: ExtraHandlerFunction#
stage: ExtraHandlerType#
component: ServiceRuntimeInfo#
ServiceFunction#

A function type for creating service handlers. Can accept current dialog context, pipeline, and current service info. Can be both synchronous and asynchronous.

alias of Union[Callable[[Context], None], Callable[[Context], Awaitable[None]], Callable[[Context, Pipeline], None], Callable[[Context, Pipeline], Awaitable[None]], Callable[[Context, Pipeline, ServiceRuntimeInfo], None], Callable[[Context, Pipeline, ServiceRuntimeInfo], Awaitable[None]]]