code: def get(self, msg, stack):
          
          via = None
          for spec in stack:
              try:
                  result = self._wait_or_start(spec, via=via).get()
                  if isinstance(result, tuple):  # exc_info()
                      reraise(*result)
                  via = result['context']
              except mitogen.core.ChannelError:
                  return {
                      'context': None,
                      'init_child_result': None,
                      'method_name': spec['method'],
                      'msg': self.disconnect_msg,
                  }
              except mitogen.core.StreamError as e:
                  return {
                      'context': None,
                      'init_child_result': None,
                      'method_name': spec['method'],
                      'msg': str(e),
                  }
  
          return result
docs: Return a Context referring to an established connection with the given
          configuration, establishing new connections as necessary.
  
          :param list stack:
              Connection descriptions. Each element is a dict containing 'method'
              and 'kwargs' keys describing the Router method and arguments.
              Subsequent elements are proxied via the previous.
  
          :returns dict:
              * context: mitogen.parent.Context or None.
              * init_child_result: Result of :func:`init_child`.
              * msg: StreamError exception text or None.
              * method_name: string failing method name.