E4XML/XMLWriterBase.py

changeset 44
fe5cd20cb0eb
parent 42
23b45a742e17
child 45
9a18f4dbb493
equal deleted inserted replaced
43:2fdc635b106a 44:fe5cd20cb0eb
22 """ 22 """
23 self.pf = file 23 self.pf = file
24 24
25 self.basics = { 25 self.basics = {
26 type(None) : self._write_none, 26 type(None) : self._write_none,
27 type(1) : self._write_int, 27 int : self._write_int,
28 type(1.1) : self._write_float, 28 float : self._write_float,
29 type(1+1j) : self._write_complex, 29 complex : self._write_complex,
30 type(True) : self._write_bool, 30 bool : self._write_bool,
31 type("") : self._write_string, 31 str : self._write_string,
32 ## UnicodeType : self._write_unicode, # should be bytes 32 bytes : self._write_bytes,
33 type((1,)) : self._write_tuple, 33 bytearray : self._write_bytearray,
34 type([]) : self._write_list, 34 tuple : self._write_tuple,
35 type({}) : self._write_dictionary, 35 list : self._write_list,
36 dict : self._write_dictionary,
37 set : self._write_set,
38 frozenset : self._write_frozenset,
36 # TODO: add set, frozenset, bytes, bytearray 39 # TODO: add set, frozenset, bytes, bytearray
37 } 40 }
38 41
39 self.NEWPARA = chr(0x2029) 42 self.NEWPARA = chr(0x2029)
40 self.NEWLINE = chr(0x2028) 43 self.NEWLINE = chr(0x2028)
105 """ 108 """
106 self._write('%s<none />' % (" " * indent)) 109 self._write('%s<none />' % (" " * indent))
107 110
108 def _write_int(self, value, indent): 111 def _write_int(self, value, indent):
109 """ 112 """
110 Protected method to dump an IntType object. 113 Protected method to dump an int object.
111 114
112 @param value value to be dumped (integer) 115 @param value value to be dumped (integer)
113 @param indent indentation level for prettier output (integer) 116 @param indent indentation level for prettier output (integer)
114 """ 117 """
115 self._write('%s<int>%s</int>' % (" " * indent, value)) 118 self._write('%s<int>%s</int>' % (" " * indent, value))
116 119
117 def _write_bool(self, value, indent): 120 def _write_bool(self, value, indent):
118 """ 121 """
119 Protected method to dump a BooleanType object. 122 Protected method to dump a bool object.
120 123
121 @param value value to be dumped (boolean) 124 @param value value to be dumped (boolean)
122 @param indent indentation level for prettier output (integer) 125 @param indent indentation level for prettier output (integer)
123 """ 126 """
124 self._write('%s<bool>%s</bool>' % (" " * indent, value)) 127 self._write('%s<bool>%s</bool>' % (" " * indent, value))
125 128
126 def _write_float(self, value, indent): 129 def _write_float(self, value, indent):
127 """ 130 """
128 Protected method to dump a FloatType object. 131 Protected method to dump a float object.
129 132
130 @param value value to be dumped (float) 133 @param value value to be dumped (float)
131 @param indent indentation level for prettier output (integer) 134 @param indent indentation level for prettier output (integer)
132 """ 135 """
133 self._write('%s<float>%s</float>' % (" " * indent, value)) 136 self._write('%s<float>%s</float>' % (" " * indent, value))
134 137
135 def _write_complex(self, value, indent): 138 def _write_complex(self, value, indent):
136 """ 139 """
137 Protected method to dump a ComplexType object. 140 Protected method to dump a complex object.
138 141
139 @param value value to be dumped (complex) 142 @param value value to be dumped (complex)
140 @param indent indentation level for prettier output (integer) 143 @param indent indentation level for prettier output (integer)
141 """ 144 """
142 self._write('%s<complex>%s %s</complex>' % \ 145 self._write('%s<complex>%s %s</complex>' % \
143 (" " * indent, value.real, value.imag)) 146 (" " * indent, value.real, value.imag))
144 147
145 def _write_string(self, value, indent): 148 def _write_string(self, value, indent):
146 """ 149 """
147 Protected method to dump a StringType object. 150 Protected method to dump a str object.
148 151
149 @param value value to be dumped (string) 152 @param value value to be dumped (string)
150 @param indent indentation level for prettier output (integer) 153 @param indent indentation level for prettier output (integer)
151 """ 154 """
152 self._write('%s<string>%s</string>' % (" " * indent, self.escape(value))) 155 self._write('%s<string>%s</string>' % (" " * indent, self.escape(value)))
153 156
157 def _write_bytes(self, value, indent):
158 """
159 Protected method to dump a bytes object.
160
161 @param value value to be dumped (bytes)
162 @param indent indentation level for prettier output (integer)
163 """
164 self._write('%s<bytes>%s</bytes>' % (
165 " " * indent, ",".join(["%d" % b for b in value])))
166
167 def _write_bytearray(self, value, indent):
168 """
169 Protected method to dump a bytearray object.
170
171 @param value value to be dumped (bytearray)
172 @param indent indentation level for prettier output (integer)
173 """
174 self._write('%s<bytearray>%s</bytearray>' % (
175 " " * indent, ",".join(["%d" % b for b in value])))
176
154 def _write_tuple(self, value, indent): 177 def _write_tuple(self, value, indent):
155 """ 178 """
156 Protected method to dump a TupleType object. 179 Protected method to dump a tuple object.
157 180
158 @param value value to be dumped (tuple) 181 @param value value to be dumped (tuple)
159 @param indent indentation level for prettier output (integer) 182 @param indent indentation level for prettier output (integer)
160 """ 183 """
161 self._write('%s<tuple>' % (" " * indent)) 184 self._write('%s<tuple>' % (" " * indent))
164 self._writeBasics(elem, nindent) 187 self._writeBasics(elem, nindent)
165 self._write('%s</tuple>' % (" " * indent)) 188 self._write('%s</tuple>' % (" " * indent))
166 189
167 def _write_list(self, value, indent): 190 def _write_list(self, value, indent):
168 """ 191 """
169 Protected method to dump a ListType object. 192 Protected method to dump a list object.
170 193
171 @param value value to be dumped (list) 194 @param value value to be dumped (list)
172 @param indent indentation level for prettier output (integer) 195 @param indent indentation level for prettier output (integer)
173 """ 196 """
174 self._write('%s<list>' % (" " * indent)) 197 self._write('%s<list>' % (" " * indent))
177 self._writeBasics(elem, nindent) 200 self._writeBasics(elem, nindent)
178 self._write('%s</list>' % (" " * indent)) 201 self._write('%s</list>' % (" " * indent))
179 202
180 def _write_dictionary(self, value, indent): 203 def _write_dictionary(self, value, indent):
181 """ 204 """
182 Protected method to dump a DictType object. 205 Protected method to dump a dict object.
183 206
184 @param value value to be dumped (dictionary) 207 @param value value to be dumped (dictionary)
185 @param indent indentation level for prettier output (integer) 208 @param indent indentation level for prettier output (integer)
186 """ 209 """
187 self._write('%s<dict>' % (" " * indent)) 210 self._write('%s<dict>' % (" " * indent))
195 self._write('%s<value>' % (" " * nindent1)) 218 self._write('%s<value>' % (" " * nindent1))
196 self._writeBasics(value[key], nindent2) 219 self._writeBasics(value[key], nindent2)
197 self._write('%s</value>' % (" " * nindent1)) 220 self._write('%s</value>' % (" " * nindent1))
198 self._write('%s</dict>' % (" " * indent)) 221 self._write('%s</dict>' % (" " * indent))
199 222
223 def _write_set(self, value, indent):
224 """
225 Protected method to dump a set object.
226
227 @param value value to be dumped (set)
228 @param indent indentation level for prettier output (integer)
229 """
230 self._write('%s<set>' % (" " * indent))
231 nindent = indent + 1
232 for elem in value:
233 self._writeBasics(elem, nindent)
234 self._write('%s</set>' % (" " * indent))
235
236 def _write_frozenset(self, value, indent):
237 """
238 Protected method to dump a frozenset object.
239
240 @param value value to be dumped (frozenset)
241 @param indent indentation level for prettier output (integer)
242 """
243 self._write('%s<frozenset>' % (" " * indent))
244 nindent = indent + 1
245 for elem in value:
246 self._writeBasics(elem, nindent)
247 self._write('%s</frozenset>' % (" " * indent))
248
200 def _write_unimplemented(self, value, indent): 249 def _write_unimplemented(self, value, indent):
201 """ 250 """
202 Protected method to dump a type, that has no special method. 251 Protected method to dump a type, that has no special method.
203 252
204 @param value value to be dumped (any pickleable object) 253 @param value value to be dumped (any pickleable object)

eric ide

mercurial