E4XML/XMLWriterBase.py

changeset 45
9a18f4dbb493
parent 44
fe5cd20cb0eb
equal deleted inserted replaced
44:fe5cd20cb0eb 45:9a18f4dbb493
7 Module implementing a base class for all of eric5s XML writers. 7 Module implementing a base class for all of eric5s XML writers.
8 """ 8 """
9 9
10 import os 10 import os
11 import pickle 11 import pickle
12 import base64
12 13
13 class XMLWriterBase(object): 14 class XMLWriterBase(object):
14 """ 15 """
15 Class implementing a base class for all of eric5s XML writers. 16 Class implementing a base class for all of eric5s XML writers.
16 """ 17 """
34 tuple : self._write_tuple, 35 tuple : self._write_tuple,
35 list : self._write_list, 36 list : self._write_list,
36 dict : self._write_dictionary, 37 dict : self._write_dictionary,
37 set : self._write_set, 38 set : self._write_set,
38 frozenset : self._write_frozenset, 39 frozenset : self._write_frozenset,
39 # TODO: add set, frozenset, bytes, bytearray
40 } 40 }
41 41
42 self.NEWPARA = chr(0x2029) 42 self.NEWPARA = chr(0x2029)
43 self.NEWLINE = chr(0x2028) 43 self.NEWLINE = chr(0x2028)
44 44
47 Protected method used to do the real write operation. 47 Protected method used to do the real write operation.
48 48
49 @param s string to be written to the XML file 49 @param s string to be written to the XML file
50 @param newline flag indicating a linebreak 50 @param newline flag indicating a linebreak
51 """ 51 """
52 ## self.pf.write("%s%s" % (s.encode('utf-8'),
53 self.pf.write("%s%s" % (s, 52 self.pf.write("%s%s" % (s,
54 newline and os.linesep or "")) 53 newline and os.linesep or ""))
55 54
56 def writeXML(self): 55 def writeXML(self):
57 """ 56 """
252 251
253 @param value value to be dumped (any pickleable object) 252 @param value value to be dumped (any pickleable object)
254 @param indent indentation level for prettier output (integer) 253 @param indent indentation level for prettier output (integer)
255 """ 254 """
256 self._write('%s<pickle method="pickle" encoding="base64">%s</pickle>' % \ 255 self._write('%s<pickle method="pickle" encoding="base64">%s</pickle>' % \
257 (" " * indent, pickle.dumps(value).encode('base64'))) 256 (" " * indent, str(base64.b64encode(pickle.dumps(value)), "ASCII")))

eric ide

mercurial