def reverse(pipe):
    """ this has the same funcitonality as builtins.reversed(), except this
        doesnt complain about non-reversable things. If you didnt know already,
        a generator needs to fully run in order to be reversed.
    """
    for i in reversed(list(pipe)):
        yield i
