bamignore now prints the exact error

This commit is contained in:
2014-11-28 13:09:50 +01:00
parent 301582e4b7
commit 366204b50c

View File

@@ -161,24 +161,31 @@ class bam_config:
import os import os
bamignore = os.path.join(path, id_) bamignore = os.path.join(path, id_)
if os.path.isfile(bamignore): if os.path.isfile(bamignore):
with open(bamignore, 'r') as f: with open(bamignore, 'r', encoding='utf-8') as f:
patterns = f.read().split("\n") compiled_patterns = []
import re import re
try: for i, l in enumerate(f):
compiled_patterns = [re.compile(p) for p in patterns] l = l.rstrip()
except re.error: if l:
fatal("Your .bamignore file contains invalid regular expressions") try:
p = re.compile(l)
except re.error as e:
fatal("%s:%d file contains an invalid regular expression, %s" %
(bamignore, i + 1, str(e)))
compiled_patterns.append(p)
def filter_ignore(f): if compiled_patterns:
for pattern in filter_ignore.compiled_patterns: def filter_ignore(f):
if re.match(pattern, f): for pattern in filter_ignore.compiled_patterns:
return False if re.match(pattern, f):
return True return False
filter_ignore.compiled_patterns = compiled_patterns return True
filter_ignore.compiled_patterns = compiled_patterns
return filter_ignore return filter_ignore
else:
return None return None
class bam_session: class bam_session: