bluesky.preprocessors.lazily_stage_decorator

bluesky.preprocessors.lazily_stage_decorator(plan)

This is a preprocessor that inserts ‘stage’ messages and appends ‘unstage’.

The first time an object is seen in plan, it is staged. To avoid redundant staging we actually stage the object’s ultimate parent.

At the end, in a finally block, an ‘unstage’ Message issued for every ‘stage’ Message.

Parameters
planiterable or iterator

a generator, list, or similar containing Msg objects

Yields
msgMsg

messages from plan with ‘stage’ messages inserted and ‘unstage’ messages appended