def stage(func):

    def coro(*args):
        task = None
        while True:
            task = yield task
            task = func(*(args + (task,)))
    return coro
Return another AmpBox just like me.
dataset/ETHPy150Open beetbox/beets/beets/util/pipeline.py/stage--crossover with--dataset/ETHPy150Open nlloyd/SubliminalCollaborator/libs/twisted/protocols/amp.py/AmpBox.copy