From 60bfd3ae8dea3ef19e41f40c48eb8861fb9e44b2 Mon Sep 17 00:00:00 2001 From: Celine Mercier Date: Fri, 24 Apr 2020 11:35:20 +0200 Subject: [PATCH] obi annotate: now defaults to setting str if expression is not valid --- python/obitools3/commands/annotate.pyx | 91 ++++++++++++-------------- python/obitools3/version.py | 2 +- 2 files changed, 42 insertions(+), 51 deletions(-) diff --git a/python/obitools3/commands/annotate.pyx b/python/obitools3/commands/annotate.pyx index ce66391..640be94 100755 --- a/python/obitools3/commands/annotate.pyx +++ b/python/obitools3/commands/annotate.pyx @@ -190,58 +190,50 @@ def sequenceTaggerGenerator(config, taxo=None): seq['seq_rank']=counter[0] for i,v in toSet: - #try: - if taxo is not None: - environ = {'taxonomy' : taxo, 'sequence':seq, 'counter':counter[0], 'math':math} - else: - environ = {'sequence':seq, 'counter':counter[0], 'math':math} - val = eval(v, environ, seq) - #except Exception,e: # TODO discuss usefulness of this - # if options.onlyValid: - # raise e - # val = v + try: + if taxo is not None: + environ = {'taxonomy' : taxo, 'sequence':seq, 'counter':counter[0], 'math':math} + else: + environ = {'sequence':seq, 'counter':counter[0], 'math':math} + val = eval(v, environ, seq) + except Exception: # set string if not a valid expression + val = v seq[i]=val if length: seq['seq_length']=len(seq) if newId is not None: -# try: - if taxo is not None: - environ = {'taxonomy' : taxo, 'sequence':seq, 'counter':counter[0], 'math':math} - else: - environ = {'sequence':seq, 'counter':counter[0], 'math':math} - val = eval(newId, environ, seq) -# except Exception,e: -# if options.onlyValid: -# raise e -# val = newId + try: + if taxo is not None: + environ = {'taxonomy' : taxo, 'sequence':seq, 'counter':counter[0], 'math':math} + else: + environ = {'sequence':seq, 'counter':counter[0], 'math':math} + val = eval(newId, environ, seq) + except Exception: # set string if not a valid expression + val = newId seq.id=val if newDef is not None: -# try: - if taxo is not None: - environ = {'taxonomy' : taxo, 'sequence':seq, 'counter':counter[0], 'math':math} - else: - environ = {'sequence':seq, 'counter':counter[0], 'math':math} - val = eval(newDef, environ, seq) -# except Exception,e: -# if options.onlyValid: -# raise e -# val = newDef + try: + if taxo is not None: + environ = {'taxonomy' : taxo, 'sequence':seq, 'counter':counter[0], 'math':math} + else: + environ = {'sequence':seq, 'counter':counter[0], 'math':math} + val = eval(newDef, environ, seq) + except Exception: # set string if not a valid expression + val = newDef seq.definition=val -# + if newSeq is not None: -# try: - if taxo is not None: - environ = {'taxonomy' : taxo, 'sequence':seq, 'counter':counter[0], 'math':math} - else: - environ = {'sequence':seq, 'counter':counter[0], 'math':math} - val = eval(newSeq, environ, seq) -# except Exception,e: -# if options.onlyValid: -# raise e -# val = newSeq + try: + if taxo is not None: + environ = {'taxonomy' : taxo, 'sequence':seq, 'counter':counter[0], 'math':math} + else: + environ = {'sequence':seq, 'counter':counter[0], 'math':math} + val = eval(newSeq, environ, seq) + except Exception: # set string if not a valid expression + val = newSeq seq.seq=val if 'seq_length' in seq: seq['seq_length']=len(seq) @@ -251,15 +243,14 @@ def sequenceTaggerGenerator(config, taxo=None): seq.view.delete_column(QUALITY_COLUMN) if run is not None: -# try: - if taxo is not None: - environ = {'taxonomy' : taxo, 'sequence':seq, 'counter':counter[0], 'math':math} - else: - environ = {'sequence':seq, 'counter':counter[0], 'math':math} - eval(run, environ, seq) -# except Exception,e: -# if options.onlyValid: -# raise e + try: + if taxo is not None: + environ = {'taxonomy' : taxo, 'sequence':seq, 'counter':counter[0], 'math':math} + else: + environ = {'sequence':seq, 'counter':counter[0], 'math':math} + eval(run, environ, seq) + except Exception,e: + raise e return sequenceTagger diff --git a/python/obitools3/version.py b/python/obitools3/version.py index 693bf2e..7fb2630 100755 --- a/python/obitools3/version.py +++ b/python/obitools3/version.py @@ -1,5 +1,5 @@ major = 3 minor = 0 -serial= '0-beta14b' +serial= '0-beta1c' version ="%d.%02d.%s" % (major,minor,serial)