code: def make_context(self, info_name, args, parent=None, **extra):
          
          for key, value in iteritems(self.context_settings):
              if key not in extra:
                  extra[key] = value
          ctx = Context(self, info_name=info_name, parent=parent, **extra)
          self.parse_args(ctx, args)
          return ctx
docs: This function when given an info name and arguments will kick
          off the parsing and create a new :class:`Context`.  It does not
          invoke the actual command callback though.
  
          :param info_name: the info name for this invokation.  Generally this
                            is the most descriptive name for the script or
                            command.  For the toplevel script it's usually
                            the name of the script, for commands below it it's
                            the name of the script.
          :param args: the arguments to parse as list of strings.
          :param parent: the parent context if available.
          :param extra: extra keyword arguments forwarded to the context
                        constructor.