code: 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
docs: 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.