Commit e99684a4 by Celine Mercier

Fixed --skip-on-error option for embl and genbank files (did not work

because python generators can never resume after raising any exception)
parent f8dcd2f4
......@@ -47,7 +47,7 @@ if __name__ == '__main__':
try:
writer(entry)
except:
print >>stderr,"Skip writing of sequence : %s" % entry.id
print >>stderr,"Skipping an entry"
else:
writer(entry)
......@@ -14,7 +14,6 @@ def skipOnErrorIterator(seqIterator):
seq = si.next()
yield seq
except Exception,e:
print >>sys.stderr,"coucou"
if isinstance(e,StopIteration):
raise e
else:
......
......@@ -29,20 +29,24 @@ def __emblparser(text):
acs = acs.split()
ac = acs[0]
acs = acs[1:]
de = _deMatcher.search(header).group()
de = _cleanDe.sub(' ',de).strip().strip('.')
except AttributeError,e:
print >>sys.stderr,'======================================================='
print >>sys.stderr,text
print >>sys.stderr,'======================================================='
raise e
except Exception as e:
print>>sys.stderr, "\nCould not import sequence id:", text.split()[1], "(error raised:", e, ")"
# Do not raise any Exception if you need the possibility to resume the generator
# (Python generators can't resume after any exception is raised)
return None
return (ac,seq,de,header,ft,acs)
def emblParser(text):
return embl.EmblSequence(*__emblparser(text))
parsed_text = __emblparser(text)
if parsed_text is not None:
return embl.EmblSequence(*parsed_text)
else:
return None
def emblIterator(file):
......
......@@ -25,16 +25,21 @@ def __gbparser(text):
acs = acs[1:]
de = _deMatcher.search(header).group()
de = _cleanDe.sub(' ',de).strip().strip('.')
except AttributeError,e:
print >>sys.stderr,'======================================================='
print >>sys.stderr,text
print >>sys.stderr,'======================================================='
raise e
except Exception as e:
print>>sys.stderr, "\nCould not import sequence id:", text.split()[1], "(error raised:", e, ")"
# Do not raise any Exception if you need the possibility to resume the generator
# (Python generators can't resume after any exception is raised)
return None
return (ac,seq,de,header,ft,acs)
def genbankParser(text):
return gb.GbSequence(*__gbparser(text))
parsed_text = __gbparser(text)
if parsed_text is not None:
return gb.GbSequence(*parsed_text)
else:
return None
def genbankIterator(file):
......@@ -43,7 +48,11 @@ def genbankIterator(file):
def genpepParser(text):
return gb.GpepSequence(*__gbparser(text))
parsed_text = __gbparser(text)
if parsed_text is not None:
return gb.GpepSequence(*parsed_text)
else:
return None
def genpepIterator(file):
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment