Mercurial > public > mercurial-scm > hg-stable
diff mercurial/parser.py @ 43077:687b865b95ad
formatting: byteify all mercurial/ and hgext/ string literals
Done with
python3.7 contrib/byteify-strings.py -i $(hg files 'set:mercurial/**.py - mercurial/thirdparty/** + hgext/**.py - hgext/fsmonitor/pywatchman/** - mercurial/__init__.py')
black -l 80 -t py33 -S $(hg files 'set:**.py - mercurial/thirdparty/** - "contrib/python-zstandard/**" - hgext/fsmonitor/pywatchman/**')
# skip-blame mass-reformatting only
Differential Revision: https://phab.mercurial-scm.org/D6972
author | Augie Fackler <augie@google.com> |
---|---|
date | Sun, 06 Oct 2019 09:48:39 -0400 |
parents | 2372284d9457 |
children | 8ff1ecfadcd1 |
line wrap: on
line diff
--- a/mercurial/parser.py Sun Oct 06 09:45:02 2019 -0400 +++ b/mercurial/parser.py Sun Oct 06 09:48:39 2019 -0400 @@ -34,25 +34,25 @@ self.current = None def _advance(self): - 'advance the tokenizer' + b'advance the tokenizer' t = self.current self.current = next(self._iter, None) return t def _hasnewterm(self): - 'True if next token may start new term' + b'True if next token may start new term' return any(self._elements[self.current[0]][1:3]) def _match(self, m): - 'make sure the tokenizer matches an end condition' + b'make sure the tokenizer matches an end condition' if self.current[0] != m: raise error.ParseError( - _("unexpected token: %s") % self.current[0], self.current[2] + _(b"unexpected token: %s") % self.current[0], self.current[2] ) self._advance() def _parseoperand(self, bind, m=None): - 'gather right-hand-side operand until an end condition or binding met' + b'gather right-hand-side operand until an end condition or binding met' if m and self.current[0] == m: expr = None else: @@ -70,7 +70,7 @@ elif prefix: expr = (prefix[0], self._parseoperand(*prefix[1:])) else: - raise error.ParseError(_("not a prefix: %s") % token, pos) + raise error.ParseError(_(b"not a prefix: %s") % token, pos) # gather tokens until we meet a lower binding strength while bind < self._elements[self.current[0]][0]: token, value, pos = self._advance() @@ -81,11 +81,11 @@ elif infix: expr = (infix[0], expr, self._parseoperand(*infix[1:])) else: - raise error.ParseError(_("not an infix: %s") % token, pos) + raise error.ParseError(_(b"not an infix: %s") % token, pos) return expr def parse(self, tokeniter): - 'generate a parse tree from tokens' + b'generate a parse tree from tokens' self._iter = tokeniter self._advance() res = self._parse() @@ -93,13 +93,13 @@ return res, pos def eval(self, tree): - 'recursively evaluate a parse tree using node methods' + b'recursively evaluate a parse tree using node methods' if not isinstance(tree, tuple): return tree return self._methods[tree[0]](*[self.eval(t) for t in tree[1:]]) def __call__(self, tokeniter): - 'parse tokens into a parse tree and evaluate if methods given' + b'parse tokens into a parse tree and evaluate if methods given' t = self.parse(tokeniter) if self._methods: return self.eval(t) @@ -121,21 +121,21 @@ ([], None, [], 'foo') """ optkey = None - pre, sep, post = spec.partition('**') + pre, sep, post = spec.partition(b'**') if sep: posts = post.split() if not posts: - raise error.ProgrammingError('no **optkey name provided') + raise error.ProgrammingError(b'no **optkey name provided') if len(posts) > 1: - raise error.ProgrammingError('excessive **optkey names provided') + raise error.ProgrammingError(b'excessive **optkey names provided') optkey = posts[0] - pre, sep, post = pre.partition('*') + pre, sep, post = pre.partition(b'*') pres = pre.split() posts = post.split() if sep: if not posts: - raise error.ProgrammingError('no *varkey name provided') + raise error.ProgrammingError(b'no *varkey name provided') return pres, posts[0], posts[1:], optkey return [], None, pres, optkey @@ -163,13 +163,13 @@ ) if kwstart < len(poskeys): raise error.ParseError( - _("%(func)s takes at least %(nargs)d positional " "arguments") - % {'func': funcname, 'nargs': len(poskeys)} + _(b"%(func)s takes at least %(nargs)d positional " b"arguments") + % {b'func': funcname, b'nargs': len(poskeys)} ) if not varkey and kwstart > len(poskeys) + len(keys): raise error.ParseError( - _("%(func)s takes at most %(nargs)d positional " "arguments") - % {'func': funcname, 'nargs': len(poskeys) + len(keys)} + _(b"%(func)s takes at most %(nargs)d positional " b"arguments") + % {b'func': funcname, b'nargs': len(poskeys) + len(keys)} ) args = util.sortdict() # consume positional arguments @@ -186,25 +186,25 @@ for x in trees[kwstart:]: if not x or x[0] != keyvaluenode or x[1][0] != keynode: raise error.ParseError( - _("%(func)s got an invalid argument") % {'func': funcname} + _(b"%(func)s got an invalid argument") % {b'func': funcname} ) k = x[1][1] if k in keys: d = args elif not optkey: raise error.ParseError( - _("%(func)s got an unexpected keyword " "argument '%(key)s'") - % {'func': funcname, 'key': k} + _(b"%(func)s got an unexpected keyword " b"argument '%(key)s'") + % {b'func': funcname, b'key': k} ) else: d = args[optkey] if k in d: raise error.ParseError( _( - "%(func)s got multiple values for keyword " - "argument '%(key)s'" + b"%(func)s got multiple values for keyword " + b"argument '%(key)s'" ) - % {'func': funcname, 'key': k} + % {b'func': funcname, b'key': k} ) d[k] = x[2] return args @@ -223,18 +223,18 @@ lines.append((level, stringutil.pprint(tree))) elif tree[0] in leafnodes: rs = map(stringutil.pprint, tree[1:]) - lines.append((level, '(%s %s)' % (tree[0], ' '.join(rs)))) + lines.append((level, b'(%s %s)' % (tree[0], b' '.join(rs)))) else: - lines.append((level, '(%s' % tree[0])) + lines.append((level, b'(%s' % tree[0])) for s in tree[1:]: _prettyformat(s, leafnodes, level + 1, lines) - lines[-1:] = [(lines[-1][0], lines[-1][1] + ')')] + lines[-1:] = [(lines[-1][0], lines[-1][1] + b')')] def prettyformat(tree, leafnodes): lines = [] _prettyformat(tree, leafnodes, 0, lines) - output = '\n'.join((' ' * l + s) for l, s in lines) + output = b'\n'.join((b' ' * l + s) for l, s in lines) return output @@ -339,11 +339,11 @@ ('and', ('symbol', '1'), ('not', ('symbol', '2'))) """ if not isinstance(placeholder, tuple): - raise error.ProgrammingError('placeholder must be a node tuple') + raise error.ProgrammingError(b'placeholder must be a node tuple') replstack = list(reversed(repls)) r = _buildtree(template, placeholder, replstack) if replstack: - raise error.ProgrammingError('too many replacements') + raise error.ProgrammingError(b'too many replacements') return r @@ -398,7 +398,7 @@ ... (b'func', (b'symbol', b'ancestors'), (b'symbol', b'0'))) """ if placeholder is not None and not isinstance(placeholder, tuple): - raise error.ProgrammingError('placeholder must be a node tuple') + raise error.ProgrammingError(b'placeholder must be a node tuple') matches = [tree] if _matchtree(pattern, tree, placeholder, incompletenodes, matches): return matches @@ -408,7 +408,7 @@ """Compose error message from specified ParseError object """ if len(inst.args) > 1: - return _('at %d: %s') % (inst.args[1], inst.args[0]) + return _(b'at %d: %s') % (inst.args[1], inst.args[0]) else: return inst.args[0] @@ -443,10 +443,10 @@ # typically a config section, which will be included in error messages _section = None # tag of symbol node - _symbolnode = 'symbol' + _symbolnode = b'symbol' def __new__(cls): - raise TypeError("'%s' is not instantiatable" % cls.__name__) + raise TypeError(b"'%s' is not instantiatable" % cls.__name__) @staticmethod def _parse(spec): @@ -543,23 +543,27 @@ if tree[0] == cls._symbolnode: # "name = ...." style name = tree[1] - if name.startswith('$'): - return (decl, None, _("invalid symbol '%s'") % name) + if name.startswith(b'$'): + return (decl, None, _(b"invalid symbol '%s'") % name) return (name, None, None) func = cls._trygetfunc(tree) if func: # "name(arg, ....) = ...." style name, args = func - if name.startswith('$'): - return (decl, None, _("invalid function '%s'") % name) + if name.startswith(b'$'): + return (decl, None, _(b"invalid function '%s'") % name) if any(t[0] != cls._symbolnode for t in args): - return (decl, None, _("invalid argument list")) + return (decl, None, _(b"invalid argument list")) if len(args) != len(set(args)): - return (name, None, _("argument names collide with each other")) + return ( + name, + None, + _(b"argument names collide with each other"), + ) return (name, [t[1] for t in args], None) - return (decl, None, _("invalid format")) + return (decl, None, _(b"invalid format")) @classmethod def _relabelargs(cls, tree, args): @@ -573,9 +577,9 @@ assert len(tree) == 2 sym = tree[1] if sym in args: - op = '_aliasarg' - elif sym.startswith('$'): - raise error.ParseError(_("invalid symbol '%s'") % sym) + op = b'_aliasarg' + elif sym.startswith(b'$'): + raise error.ParseError(_(b"invalid symbol '%s'") % sym) return (op, sym) @classmethod @@ -638,15 +642,19 @@ repl = efmt = None name, args, err = cls._builddecl(decl) if err: - efmt = _('bad declaration of %(section)s "%(name)s": %(error)s') + efmt = _(b'bad declaration of %(section)s "%(name)s": %(error)s') else: try: repl = cls._builddefn(defn, args) except error.ParseError as inst: err = parseerrordetail(inst) - efmt = _('bad definition of %(section)s "%(name)s": %(error)s') + efmt = _(b'bad definition of %(section)s "%(name)s": %(error)s') if err: - err = efmt % {'section': cls._section, 'name': name, 'error': err} + err = efmt % { + b'section': cls._section, + b'name': name, + b'error': err, + } return alias(name, args, err, repl) @classmethod @@ -686,7 +694,7 @@ """ if not isinstance(tree, tuple): return tree - if tree[0] == '_aliasarg': + if tree[0] == b'_aliasarg': sym = tree[1] return args[sym] return tuple(cls._expandargs(t, args) for t in tree) @@ -705,8 +713,8 @@ raise error.Abort(a.error) if a in expanding: raise error.ParseError( - _('infinite expansion of %(section)s ' '"%(name)s" detected') - % {'section': cls._section, 'name': a.name} + _(b'infinite expansion of %(section)s ' b'"%(name)s" detected') + % {b'section': cls._section, b'name': a.name} ) # get cacheable replacement tree by expanding aliases recursively expanding.append(a) @@ -721,7 +729,7 @@ # substitute function arguments in replacement tree if len(l) != len(a.args): raise error.ParseError( - _('invalid number of arguments: %d') % len(l) + _(b'invalid number of arguments: %d') % len(l) ) l = [cls._expand(aliases, t, [], cache) for t in l] return cls._expandargs(result, dict(zip(a.args, l)))