7.2.8.1. add_function

add_function(dsp, inputs_kwargs=False, inputs_defaults=False, **kw)[source]

Decorator to add a function to a dispatcher.

Parameters:
  • dsp (schedula.Dispatcher) – A dispatcher.
  • inputs_kwargs (bool) – Do you want to include kwargs as inputs?
  • inputs_defaults (bool) – Do you want to set default values?
  • kw (dict) – See :func:~`schedula.dispatcher.Dispatcher.add_function`.
Returns:

Decorator.

Return type:

callable

————————————————————————

Example:

>>> import schedula as sh
>>> dsp = sh.Dispatcher(name='Dispatcher')
>>> @sh.add_function(dsp, outputs=['e'])
... @sh.add_function(dsp, False, True, outputs=['i'], inputs='ecah')
... @sh.add_function(dsp, True, outputs=['l'])
... def f(a, b, c, d=1):
...     return (a + b) - c + d
>>> @sh.add_function(dsp, True, outputs=['d'])
... def g(e, i, *args, d=0):
...     return e + i + d
>>> sol = dsp({'a': 1, 'b': 2, 'c': 3}); sol
Solution([('a', 1), ('b', 2), ('c', 3), ('h', 1), ('e', 1), ('i', 4),
          ('d', 5), ('l', 5)])