7.2.8.19. SubDispatch

class SubDispatch(dsp=None, *args, **kwargs)[source]

It dispatches a given Dispatcher like a function.

This function takes a sequence of dictionaries as input that will be combined before the dispatching.

Returns:

A function that executes the dispatch of the given Dispatcher.

Return type:

callable

Example:

>>> from schedula import Dispatcher
>>> sub_dsp = Dispatcher(name='Sub-dispatcher')
...
>>> def fun(a):
...     return a + 1, a - 1
...
>>> sub_dsp.add_function('fun', fun, ['a'], ['b', 'c'])
'fun'
>>> dispatch = SubDispatch(sub_dsp, ['a', 'b', 'c'], output_type='dict')
>>> dsp = Dispatcher(name='Dispatcher')
>>> dsp.add_function('Sub-dispatch', dispatch, ['d'], ['e'])
'Sub-dispatch'

The Dispatcher output is:

>>> o = dsp.dispatch(inputs={'d': {'a': 3}})

while, the Sub-dispatch is:

>>> sol = o.workflow.nodes['Sub-dispatch']['solution']
>>> sol
Solution([('a', 3), ('b', 4), ('c', 2)])
>>> sol == o['e']
True

Methods

__init__

Initializes the Sub-dispatch.

blue

Constructs a Blueprint out of the current object.

copy

form

Creates a dispatcher Form Flask app.

get_node

Returns a sub node of a dispatcher.

plot

Plots the Dispatcher with a graph in the DOT language with Graphviz.

web

Creates a dispatcher Flask app.

__init__(dsp, outputs=None, inputs_dist=None, wildcard=False, no_call=False, shrink=False, rm_unused_nds=False, output_type='all', function_id=None, output_type_kw=None)[source]

Initializes the Sub-dispatch.

Parameters:
  • dsp (schedula.Dispatcher | schedula.utils.blue.BlueDispatcher) – A dispatcher that identifies the model adopted.

  • outputs (list[str], iterable) – Ending data nodes.

  • inputs_dist (dict[str, int | float], optional) – Initial distances of input data nodes.

  • wildcard (bool, optional) – If True, when the data node is used as input and target in the ArciDispatch algorithm, the input value will be used as input for the connected functions, but not as output.

  • no_call (bool, optional) – If True data node estimation function is not used.

  • shrink (bool, optional) – If True the dispatcher is shrink before the dispatch.

  • rm_unused_nds (bool, optional) – If True unused function and sub-dispatcher nodes are removed from workflow.

  • output_type (str, optional) –

    Type of function output:

    • ’all’: a dictionary with all dispatch outputs.

    • ’list’: a list with all outputs listed in outputs.

    • ’dict’: a dictionary with any outputs listed in outputs.

  • output_type_kw (dict, optional) – Extra kwargs to pass to the selector function.

  • function_id (str, optional) – Function name.

blue(memo=None, depth=-1)[source]

Constructs a Blueprint out of the current object.

Parameters:
Returns:

A Blueprint of the current object.

Return type:

schedula.utils.blue.Blueprint