Composite event manager

General-purpose composite event manager that combines multiple event managers into one, and triggers the callback whenever any of its sub-managers triggers.

class src.data_acquisition.event_manager.CompositeEventManager(*, event_managers: Sequence[EventManager[T]], logger: Logger | None = None)[source]

Bases: EventManager[T], Generic[T]

Usage example

event_manager = CompositeEventManager(
    event_managers=[
        FixedTimeoutEventManager(gui=gui, timeout_millis=1000),
        KeyPressEventManager(gui=gui, key=Key.LEFT_SHIFT),
    ]
)

This event manager will trigger when either the left Shift key is pressed or when 1 second passes.