--- a/mercurial/minifileset.py Fri Oct 04 15:53:45 2019 -0400
+++ b/mercurial/minifileset.py Sat Oct 05 10:29:34 2019 -0400
@@ -15,11 +15,13 @@
pycompat,
)
+
def _sizep(x):
# i18n: "size" is a keyword
expr = filesetlang.getstring(x, _("size requires an expression"))
return fileset.sizematcher(expr)
+
def _compile(tree):
if not tree:
raise error.ParseError(_("missing argument"))
@@ -28,20 +30,23 @@
return _compile(tree[1])
elif op in {'symbol', 'string', 'kindpat'}:
name = filesetlang.getpattern(tree, {'path'}, _('invalid file pattern'))
- if name.startswith('**'): # file extension test, ex. "**.tar.gz"
+ if name.startswith('**'): # file extension test, ex. "**.tar.gz"
ext = name[2:]
for c in pycompat.bytestr(ext):
if c in '*{}[]?/\\':
raise error.ParseError(_('reserved character: %s') % c)
return lambda n, s: n.endswith(ext)
- elif name.startswith('path:'): # directory or full path test
- p = name[5:] # prefix
+ elif name.startswith('path:'): # directory or full path test
+ p = name[5:] # prefix
pl = len(p)
- f = lambda n, s: n.startswith(p) and (len(n) == pl
- or n[pl:pl + 1] == '/')
+ f = lambda n, s: n.startswith(p) and (
+ len(n) == pl or n[pl : pl + 1] == '/'
+ )
return f
- raise error.ParseError(_("unsupported file pattern: %s") % name,
- hint=_('paths must be prefixed with "path:"'))
+ raise error.ParseError(
+ _("unsupported file pattern: %s") % name,
+ hint=_('paths must be prefixed with "path:"'),
+ )
elif op in {'or', 'patterns'}:
funcs = [_compile(x) for x in tree[1:]]
return lambda n, s: any(f(n, s) for f in funcs)
@@ -63,15 +68,18 @@
return symbols[name]
raise error.UnknownIdentifier(name, symbols.keys())
- elif op == 'minus': # equivalent to 'x and not y'
+ elif op == 'minus': # equivalent to 'x and not y'
func1 = _compile(tree[1])
func2 = _compile(tree[2])
return lambda n, s: func1(n, s) and not func2(n, s)
elif op == 'list':
- raise error.ParseError(_("can't use a list in this context"),
- hint=_('see \'hg help "filesets.x or y"\''))
+ raise error.ParseError(
+ _("can't use a list in this context"),
+ hint=_('see \'hg help "filesets.x or y"\''),
+ )
raise error.ProgrammingError('illegal tree: %r' % (tree,))
+
def compile(text):
"""generate a function (path, size) -> bool from filter specification.