def match(item, patterns):
matched = not patterns
for pattern in filter(None, patterns):
negate = False
if pattern.startswith('-') or pattern.startswith('!'):
negate = True
pattern = pattern[1:]
if pattern.startswith('+'):
pattern = pattern[1:]
local_matched = fnmatch.fnmatch(item, pattern)
if negate:
matched = matched and not local_matched
else:
matched = matched or local_matched
return matched
评论列表
文章目录