diff options
author | Willem Jan Palenstijn <wjp@usecode.org> | 2016-03-24 13:45:54 +0100 |
---|---|---|
committer | Willem Jan Palenstijn <wjp@usecode.org> | 2016-03-24 13:45:54 +0100 |
commit | 642632fdab58ac45684dc54fcf98a134550a8073 (patch) | |
tree | 080f406c954b0d6e08dbda36893f7a3d765aed62 /python/astra/utils.pyx | |
parent | 37e1c06154362e26acdb4b09c4a251ec2ad0a316 (diff) | |
parent | a3b742fd2dc8ea253addd7342388c73a40f6fd59 (diff) | |
download | astra-642632fdab58ac45684dc54fcf98a134550a8073.tar.gz astra-642632fdab58ac45684dc54fcf98a134550a8073.tar.bz2 astra-642632fdab58ac45684dc54fcf98a134550a8073.tar.xz astra-642632fdab58ac45684dc54fcf98a134550a8073.zip |
Merge pull request #117 from dmpelt/python-bool-fix
Encode Python bool as int in XML instead of str
Diffstat (limited to 'python/astra/utils.pyx')
-rw-r--r-- | python/astra/utils.pyx | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/python/astra/utils.pyx b/python/astra/utils.pyx index 52c2a8d..34d1902 100644 --- a/python/astra/utils.pyx +++ b/python/astra/utils.pyx @@ -32,7 +32,7 @@ import six if six.PY3: import builtins else: - import __builtin__ + import __builtin__ as builtins from libcpp.string cimport string from libcpp.vector cimport vector from libcpp.list cimport list @@ -95,14 +95,14 @@ cdef void readDict(XMLNode root, _dc): dc = convert_item(_dc) for item in dc: val = dc[item] - if isinstance(val, __builtins__.list) or isinstance(val, tuple): + if isinstance(val, builtins.list) or isinstance(val, tuple): val = np.array(val,dtype=np.float64) if isinstance(val, np.ndarray): if val.size == 0: break listbase = root.addChildNode(item) contig_data = np.ascontiguousarray(val,dtype=np.float64) - data = <double*>np.PyArray_DATA(contig_data) + data = <double*>np.PyArray_DATA(contig_data) if val.ndim == 2: listbase.setContent(data, val.shape[1], val.shape[0], False) elif val.ndim == 1: @@ -119,6 +119,8 @@ cdef void readDict(XMLNode root, _dc): if item == six.b('type'): root.addAttribute(< string > six.b('type'), <string> wrap_to_bytes(val)) else: + if isinstance(val, builtins.bool): + val = int(val) itm = root.addChildNode(item, wrap_to_bytes(val)) cdef void readOptions(XMLNode node, dc): @@ -131,7 +133,7 @@ cdef void readOptions(XMLNode node, dc): val = dc[item] if node.hasOption(item): raise Exception('Duplicate Option: %s' % item) - if isinstance(val, __builtins__.list) or isinstance(val, tuple): + if isinstance(val, builtins.list) or isinstance(val, tuple): val = np.array(val,dtype=np.float64) if isinstance(val, np.ndarray): if val.size == 0: @@ -147,6 +149,8 @@ cdef void readOptions(XMLNode node, dc): else: raise Exception("Only 1 or 2 dimensions are allowed") else: + if isinstance(val, builtins.bool): + val = int(val) node.addOption(item, wrap_to_bytes(val)) cdef configToDict(Config *cfg): |