pescador.mux.RoundRobinMux¶
-
class
pescador.mux.
RoundRobinMux
(streamers, mode='exhaustive', random_state=None)¶ A Mux which iterates over all streamers in strict order.
Based on the roundrobin() example in python itertools: https://docs.python.org/3/library/itertools.html#itertools-recipes
Examples
>>> a = pescador.Streamer("a") >>> b = pescador.Streamer("b") >>> c = pescador.Streamer("c") >>> mux = pescador.RoundRobinMux([a, b, c]) >>> print("".join(mux(max_iter=9))) "abc"
>>> mux = pescador.RoundRobinMux([a, b, c], mode="cycle") >>> print("".join(mux(max_iter=9))) "abcabcabc"
>>> mux = pescador.RoundRobinMux([a, b, c], mode="permuted_cycle") >>> print("".join(mux(max_iter=20))) "abcacbacbacbbcabacac"
-
__init__
(streamers, mode='exhaustive', random_state=None)¶ Parameters: - streamers : list of pescador.Streamers
- mode : [“exhaustive”, “cycle”, “permuted_cycle”]
- exhaustive
RoundRobinMux will exit after each stream has been exhausted.
- cycle
Restart streamer once all streams are exhausted.
- permuted_cycle
Restart streamer once streams are exhausted, and permute the order of the streams.
- random_state : None, int, or np.random.RandomState
If int, random_state is the seed used by the random number generator;
If RandomState instance, random_state is the random number generator;
If None, the random number generator is the RandomState instance used by np.random.
Methods
__init__
(streamers[, mode, random_state])Parameters: cycle
([max_iter])Iterate from the streamer infinitely. iterate
([max_iter])Yields items from the mux, and handles stream exhaustion and replacement. Attributes
active
Returns true if the stream is active (ie there are still open / existing streams) is_activated_copy
is_activated_copy is true if this object is a copy of the original Streamer and has been activated. n_streams
Return the number of streamers. -