Sync run stream with caller-driven pumping.
The caller's iteration on any projection (values, messages,
raw events, or output) drives the graph forward. No background
thread is used ā the caller's for loop is the pump.
Projections are single-consumer ā iterating run.values twice
raises. Use projection.tee(n) if you genuinely need fan-out.
All transformer projections live in extensions. Native transformer
projections (those with _native = True) are also set as direct
attributes on this instance (e.g. run.values, run.messages).
Returned by Pregel.stream_events(version="v3"), which is
experimental and may change.
Pull-based iterator over the graph's stream,
or None for nested run streams whose pump is driven
by an outer run (e.g. SubgraphRunStream).
The StreamMux owning projections and the main log.
When True (default), bind _pump_next as the
mux's pump callable. Subclasses that inherit a parent
pump via StreamMux._make_child should pass False to
preserve the parent binding.
Drive the run to completion and return the final state.
Drive the run to completion, then return whether it was interrupted.
Drive the run to completion, then return interrupt payloads.
Stop the run early.
Closes the mux and marks the stream exhausted. The graph iterator is dropped; any in-flight nodes see the closure on their next yield point. Idempotent.
Iterate multiple projections in arrival order, yielding (name, item).
Items are ordered by a monotonic push stamp assigned when each
transformer pushes into its StreamChannel. This gives strict
arrival ordering across projections, unlike round-robin.