mercurial/parser.py
changeset 31922 0f41f1e3c75c
parent 31921 2156934b7917
child 34043 90896b61fe26
equal deleted inserted replaced
31921:2156934b7917 31922:0f41f1e3c75c
   152     if not varkey and kwstart > len(poskeys) + len(keys):
   152     if not varkey and kwstart > len(poskeys) + len(keys):
   153         raise error.ParseError(_("%(func)s takes at most %(nargs)d positional "
   153         raise error.ParseError(_("%(func)s takes at most %(nargs)d positional "
   154                                  "arguments")
   154                                  "arguments")
   155                                % {'func': funcname,
   155                                % {'func': funcname,
   156                                   'nargs': len(poskeys) + len(keys)})
   156                                   'nargs': len(poskeys) + len(keys)})
   157     args = {}
   157     args = util.sortdict()
   158     # consume positional arguments
   158     # consume positional arguments
   159     for k, x in zip(poskeys, trees[:kwstart]):
   159     for k, x in zip(poskeys, trees[:kwstart]):
   160         args[k] = x
   160         args[k] = x
   161     if varkey:
   161     if varkey:
   162         args[varkey] = trees[len(args):kwstart]
   162         args[varkey] = trees[len(args):kwstart]
   163     else:
   163     else:
   164         for k, x in zip(keys, trees[len(args):kwstart]):
   164         for k, x in zip(keys, trees[len(args):kwstart]):
   165             args[k] = x
   165             args[k] = x
   166     # remainder should be keyword arguments
   166     # remainder should be keyword arguments
   167     if optkey:
   167     if optkey:
   168         args[optkey] = {}
   168         args[optkey] = util.sortdict()
   169     for x in trees[kwstart:]:
   169     for x in trees[kwstart:]:
   170         if x[0] != keyvaluenode or x[1][0] != keynode:
   170         if x[0] != keyvaluenode or x[1][0] != keynode:
   171             raise error.ParseError(_("%(func)s got an invalid argument")
   171             raise error.ParseError(_("%(func)s got an invalid argument")
   172                                    % {'func': funcname})
   172                                    % {'func': funcname})
   173         k = x[1][1]
   173         k = x[1][1]