def coroutine(func):
    """ Decorator for priming co-routines that use (yield) """
    def wrapper(*args, **kwargs):
        c = func(*args, **kwargs)
        c.next() # prime it for iteration
        return c
    return wrapper
Decorator for priming co-routines that use (yield)