bluesky.preprocessors.subs_decorator(plan, subs)

Subscribe callbacks to the document stream; finally, unsubscribe.

planiterable or iterator

a generator, list, or similar containing Msg objects

subscallable, list of callables, or dict of lists of callables

Documents of each type are routed to a list of functions. Input is normalized to a dict of lists of functions, like so:

None -> {‘all’: [], ‘start’: [], ‘stop’: [], ‘event’: [],

‘descriptor’: []}

func -> {‘all’: [func], ‘start’: [], ‘stop’: [], ‘event’: [],

‘descriptor’: []}

[f1, f2] -> {‘all’: [f1, f2], ‘start’: [], ‘stop’: [], ‘event’: [],

‘descriptor’: []}

{‘event’: [func]} -> {‘all’: [], ‘start’: [], ‘stop’: [],

‘event’: [func], ‘descriptor’: []}

Signature of functions must conform to f(name, doc) where name is one of {‘all’, ‘start’, ‘stop’, ‘event’, ‘descriptor’} and doc is a dictionary.


messages from plan, with ‘subscribe’ and ‘unsubscribe’ messages inserted and appended