@@ -52,7 +52,7 @@ def metadata(self):
5252
5353 def to_xml (self ):
5454 if len (self .data ) == 0 :
55- return "<MetaData/>\n "
55+ return b "<MetaData/>\n "
5656 res = "<MetaData>\n "
5757 for ele in self .data :
5858 nvpair = """<MD>
@@ -61,7 +61,7 @@ def to_xml(self):
6161</MD>\n """ % (ele .name , ele .value )
6262 res = res + nvpair
6363 res = res + "</MetaData>\n "
64- return res
64+ return res . encode ( 'utf-8' )
6565
6666 def print_summary (self ):
6767 print (self .metadata )
@@ -90,7 +90,7 @@ def get_labels_as_dict(self):
9090
9191 def to_xml (self ):
9292 if len (self .labels ) == 0 :
93- return "<LabelTable/>\n "
93+ return b "<LabelTable/>\n "
9494 res = "<LabelTable>\n "
9595 for ele in self .labels :
9696 col = ''
@@ -106,7 +106,7 @@ def to_xml(self):
106106 (str (ele .key ), col , ele .label )
107107 res = res + lab
108108 res = res + "</LabelTable>\n "
109- return res
109+ return res . encode ( 'utf-8' )
110110
111111 def print_summary (self ):
112112 print (self .get_labels_as_dict ())
@@ -181,7 +181,7 @@ def __init__(self, dataspace=0, xformspace=0, xform=None):
181181
182182 def to_xml (self ):
183183 if self .xform is None :
184- return "<CoordinateSystemTransformMatrix/>\n "
184+ return b "<CoordinateSystemTransformMatrix/>\n "
185185 res = ("""<CoordinateSystemTransformMatrix>
186186\t <DataSpace><![CDATA[%s]]></DataSpace>
187187\t <TransformedSpace><![CDATA[%s]]></TransformedSpace>\n """
@@ -191,7 +191,7 @@ def to_xml(self):
191191 res += _arr2txt (self .xform , '%10.6f' )
192192 res = res + "</MatrixData>\n "
193193 res = res + "</CoordinateSystemTransformMatrix>\n "
194- return res
194+ return res . encode ( 'utf-8' )
195195
196196 def print_summary (self ):
197197 print ('Dataspace: ' , xform_codes .niistring [self .dataspace ])
@@ -200,7 +200,8 @@ def print_summary(self):
200200
201201
202202def data_tag (dataarray , encoding , datatype , ordering ):
203- """ Creates the data tag depending on the required encoding """
203+ """ Creates the data tag depending on the required encoding,
204+ returns as bytes"""
204205 import zlib
205206 ord = array_index_order_codes .npcode [ordering ]
206207 enclabel = gifti_encoding_codes .label [encoding ]
@@ -215,7 +216,7 @@ def data_tag(dataarray, encoding, datatype, ordering):
215216 raise NotImplementedError ("In what format are the external files?" )
216217 else :
217218 da = ''
218- return "<Data>" + da + "</Data>\n "
219+ return ( "<Data>" + da + "</Data>\n " ). encode ( 'utf-8' )
219220
220221
221222class GiftiDataArray (object ):
@@ -303,21 +304,21 @@ def to_xml(self):
303304 # fix endianness to machine endianness
304305 self .endian = gifti_endian_codes .code [sys .byteorder ]
305306 result = ""
306- result += self .to_xml_open ()
307+ result += self .to_xml_open (). decode ( 'utf-8' )
307308 # write metadata
308309 if not self .meta is None :
309- result += self .meta .to_xml ()
310+ result += self .meta .to_xml (). decode ( 'utf-8' )
310311 # write coord sys
311312 if not self .coordsys is None :
312- result += self .coordsys .to_xml ()
313+ result += self .coordsys .to_xml (). decode ( 'utf-8' )
313314 # write data array depending on the encoding
314315 dt_kind = data_type_codes .dtype [self .datatype ].kind
315316 result += data_tag (self .data ,
316317 gifti_encoding_codes .specs [self .encoding ],
317318 KIND2FMT [dt_kind ],
318- self .ind_ord )
319- result = result + self .to_xml_close ()
320- return result
319+ self .ind_ord ). decode ( 'utf-8' )
320+ result = result + self .to_xml_close (). decode ( 'utf-8' )
321+ return result . encode ( 'utf-8' )
321322
322323 def to_xml_open (self ):
323324 out = """<DataArray Intent="%s"
@@ -331,7 +332,7 @@ def to_xml_open(self):
331332 di = ""
332333 for i , n in enumerate (self .dims ):
333334 di = di + '\t Dim%s=\" %s\" \n ' % (str (i ), str (n ))
334- return out % (intent_codes .niistring [self .intent ],
335+ return ( out % (intent_codes .niistring [self .intent ],
335336 data_type_codes .niistring [self .datatype ],
336337 array_index_order_codes .label [self .ind_ord ],
337338 str (self .num_dim ),
@@ -340,10 +341,10 @@ def to_xml_open(self):
340341 gifti_endian_codes .specs [self .endian ],
341342 self .ext_fname ,
342343 self .ext_offset ,
343- )
344+ )). encode ( 'utf-8' )
344345
345346 def to_xml_close (self ):
346- return "</DataArray>\n "
347+ return b "</DataArray>\n "
347348
348349 def print_summary (self ):
349350 print ('Intent: ' , intent_codes .niistring [self .intent ])
@@ -504,10 +505,10 @@ def to_xml(self):
504505<GIFTI Version="%s" NumberOfDataArrays="%s">\n """ % (self .version ,
505506 str (self .numDA ))
506507 if not self .meta is None :
507- res += self .meta .to_xml ()
508+ res += self .meta .to_xml (). decode ( 'utf-8' )
508509 if not self .labeltable is None :
509- res += self .labeltable .to_xml ()
510+ res += self .labeltable .to_xml (). decode ( 'utf-8' )
510511 for dar in self .darrays :
511- res += dar .to_xml ()
512+ res += dar .to_xml (). decode ( 'utf-8' )
512513 res += "</GIFTI>"
513- return res
514+ return res . encode ( 'utf-8' )
0 commit comments