docs: async def _trigger_event(self, event, namespace, *args):
          """Invoke an application event handler."""
          # first see if we have an explicit handler for the event
          if namespace in self.handlers and event in self.handlers[namespace]:
              if asyncio.iscoroutinefunction(self.handlers[namespace][event]) \
                      is True:
                  try:
                      ret = await self.handlers[namespace][event](*args)
                  except asyncio.CancelledError:  # pragma: no cover
                      ret = None
              else:
                  ret = self.handlers[namespace][event](*args)
              return ret
  
          # or else, forward the event to a namepsace handler if one exists
          elif namespace in self.namespace_handlers:
              return await self.namespace_handlers[namespace].trigger_event(
                  event, *args)