Calls each callable with each item in the stream.
    Use with Buckets. Make a Bucket with a callable
    and then pass a tuple of those buckets
    in as the callables. After iterating over
    this generator, get contents from each Spigot.

    :param callables: collection of callable.
    :param stream: Iterator if values.

def stream_tap(callables, stream):
    """
    Calls each callable with each item in the stream.
    Use with Buckets. Make a Bucket with a callable
    and then pass a tuple of those buckets
    in as the callables. After iterating over
    this generator, get contents from each Spigot.

    :param callables: collection of callable.
    :param stream: Iterator if values.
    """
    for item in stream:
        for caller in callables:
            caller(item)
        yield item