bluesky.plan_stubs.repeat#

bluesky.plan_stubs.repeat(plan: Callable[[], Generator[Msg, Any, P]], num: int | None = 1, delay: float | Iterable[float] = 0.0) Generator[Msg, Any, Any][source]#

Repeat a plan num times with delay and checkpoint between each repeat.

This is different from repeater and caching_repeater in that it adds checkpoint and optionally sleep messages if delay is provided. This is intended for users who need the structure of count but do not want to reimplement the control flow.

Parameters:
plan: callable

Callable that returns an iterable of Msg objects

numinteger, optional

number of readings to take; default is 1

If None, capture data until canceled

delayiterable or scalar, optional

time delay between successive readings; default is 0

Returns:
anyoutput of original plan
Yields:
msgMsg

Notes

If delay is an iterable, it must have at least num - 1 entries or the plan will raise a ValueError during iteration.