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 | |
| 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
| -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):  | 
