CDAT / cdtime

climate calendar manipulation tools
0 stars 2 forks source link

cdtime issue exception that seem to have no base class (python2 maybe 3) #10

Closed doutriaux1 closed 6 years ago

doutriaux1 commented 6 years ago

In python 2 for sure, didn't test in python3

import cdtime
try:
   b = cdtime.reltime(4,"days since YYY-XX))")
except:
    print "Failed"

catches the exception properly

BUT

import cdtime
try:
   b = cdtime.reltime(4,"days since YYY-XX))")
except Exception:
    print "Failed"

does not capture the exception

I "think" this is because the exception is raised at the C level and does not inherit from Exception.

This is not a big deal once you know it, but flake8 will complain that you cannot use an except statement w/o an Exception type

dnadeau4 commented 6 years ago

Does not work in python 2 either. There is no exception triggered. The results is wrong. https://github.com/UV-CDAT/libcdms/blob/master/src/db_util/cdTimeConv.c#L299-L302

doutriaux1 commented 6 years ago

In vcs and python 2 had to leave it at except alone and it works, except Exception fails

doutriaux1 commented 6 years ago

It is not urgent still there is a work around, but I would like to figure out the correct way to raise exceptions from C

dnadeau4 commented 6 years ago

I forgot to check in libcdms. will push now. We will need conda-forge to update it.

dnadeau4 commented 6 years ago

https://github.com/UV-CDAT/libcdms/pull/9