def silent_reporter(res):
    """
    A generic reporter for asyncio tasks that doesn't log errors.

    For example:

    .. code-block:: python

        t = loop.create_task(coroutine())
        t.add_done_callback(hp.silent_reporter)

    This means that exceptions are *not* logged to the terminal and you won't
    get warnings about tasks not being looked at when they finish.

    This method will return True if there was no exception and None otherwise.

    It also handles and silences CancelledError.
    """
    if not res.cancelled():
        exc = res.exception()
        if not exc:
            res.result()
            return True
