<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def gather(self, futures, consume_exceptions=True):
 """ This returns a Future that waits for all the Futures in the list ``futures`` :param futures: a list of Futures (or coroutines?) :param consume_exceptions: if True, any errors are eaten and returned in the result list. """


        # from the asyncio docs: "If return_exceptions is True, exceptions
        # in the tasks are treated the same as successful results, and
        # gathered in the result list; otherwise, the first raised
        # exception will be immediately propagated to the returned
        # future."
        return asyncio.gather(*futures, return_exceptions=consume_exceptions)