summaryrefslogtreecommitdiffstats
path: root/python/astra
diff options
context:
space:
mode:
Diffstat (limited to 'python/astra')
-rw-r--r--python/astra/utils.pxd2
-rw-r--r--python/astra/utils.pyx15
2 files changed, 10 insertions, 7 deletions
diff --git a/python/astra/utils.pxd b/python/astra/utils.pxd
index e91ed98..ea3da86 100644
--- a/python/astra/utils.pxd
+++ b/python/astra/utils.pxd
@@ -32,4 +32,4 @@ from .PyXMLDocument cimport XMLNode
from .PyIncludes cimport *
cdef configToDict(Config *)
-cdef Config * dictToConfig(string rootname, dc)
+cdef Config * dictToConfig(string rootname, dc) except NULL
diff --git a/python/astra/utils.pyx b/python/astra/utils.pyx
index 46be462..b534d72 100644
--- a/python/astra/utils.pyx
+++ b/python/astra/utils.pyx
@@ -26,6 +26,7 @@
# distutils: language = c++
# distutils: libraries = astra
+import sys
cimport numpy as np
import numpy as np
import six
@@ -45,15 +46,15 @@ from .PyXMLDocument cimport XMLNode
from .PyIncludes cimport *
-cdef Config * dictToConfig(string rootname, dc):
+cdef Config * dictToConfig(string rootname, dc) except NULL:
cdef Config * cfg = new Config()
cfg.initialize(rootname)
try:
readDict(cfg.self, dc)
- except Exception as e:
+ except Exception:
del cfg
- six.print_(e.strerror)
- return NULL
+ exc = sys.exc_info()
+ raise exc[0], exc[1], exc[2]
return cfg
def convert_item(item):
@@ -85,7 +86,7 @@ def wrap_from_bytes(value):
return s
-cdef void readDict(XMLNode root, _dc):
+cdef bool readDict(XMLNode root, _dc) except False:
cdef XMLNode listbase
cdef XMLNode itm
cdef int i
@@ -122,8 +123,9 @@ cdef void readDict(XMLNode root, _dc):
if isinstance(val, builtins.bool):
val = int(val)
itm = root.addChildNode(item, wrap_to_bytes(val))
+ return True
-cdef void readOptions(XMLNode node, dc):
+cdef bool readOptions(XMLNode node, dc) except False:
cdef XMLNode listbase
cdef XMLNode itm
cdef int i
@@ -152,6 +154,7 @@ cdef void readOptions(XMLNode node, dc):
if isinstance(val, builtins.bool):
val = int(val)
node.addOption(item, wrap_to_bytes(val))
+ return True
cdef configToDict(Config *cfg):
return XMLNode2dict(cfg.self)