'Publish a event and return a list of values returned by its
subscribers.
:param event: The event to publish.
:param args: The positional arguments to pass to the event\'s
subscribers.
:param kwargs: The keyword arguments to pass to the event\'s
subscribers.'

def publish(self, event, *args, **kwargs):

    result = []
    for subscriber in self.get_subscribers(event):
        try:
            value = subscriber(event, *args, **kwargs)
        except Exception:
            logger.exception('Exception    during    event    publication')
            value = None
        result.append(value)
    logger.debug('publish    %s:    args    =    %s,    kwargs    =    %s,    result    =    %s', event, args, kwargs, result)
    return result
