def cat(*wizards):
    """A higher-order wizard which is the concatenation of a number of other
    wizards.

    The resulting data is the union of all wizard outputs.
    """
    data = {}

    for wizard in wizards:
        try:
            response = None
            while True:
                response = yield wizard.send(response)
        except Success as s:
            data.update(s.data)

    raise Success(data)
def cat ( * wizards ) : data = { } for wizard in wizards : try : response = None while True : response = yield wizard . send ( response ) except Success as s : data . update ( s . data ) raise Success ( data )
A higher-order wizard which is the concatenation of a number of other
    wizards.

    The resulting data is the union of all wizard outputs.