(self, value)
| 339 | self.writeln("</plist>") |
| 340 | |
| 341 | def write_value(self, value): |
| 342 | if isinstance(value, str): |
| 343 | self.simple_element("string", value) |
| 344 | |
| 345 | elif value is True: |
| 346 | self.simple_element("true") |
| 347 | |
| 348 | elif value is False: |
| 349 | self.simple_element("false") |
| 350 | |
| 351 | elif isinstance(value, int): |
| 352 | if -1 << 63 <= value < 1 << 64: |
| 353 | self.simple_element("integer", "%d" % value) |
| 354 | else: |
| 355 | raise OverflowError(value) |
| 356 | |
| 357 | elif isinstance(value, float): |
| 358 | self.simple_element("real", repr(value)) |
| 359 | |
| 360 | elif isinstance(value, (dict, frozendict)): |
| 361 | self.write_dict(value) |
| 362 | |
| 363 | elif isinstance(value, (bytes, bytearray)): |
| 364 | self.write_bytes(value) |
| 365 | |
| 366 | elif isinstance(value, datetime.datetime): |
| 367 | self.simple_element("date", |
| 368 | _date_to_string(value, self._aware_datetime)) |
| 369 | |
| 370 | elif isinstance(value, (tuple, list)): |
| 371 | self.write_array(value) |
| 372 | |
| 373 | else: |
| 374 | raise TypeError("unsupported type: %s" % type(value)) |
| 375 | |
| 376 | def write_bytes(self, data): |
| 377 | self.begin_element("data") |
no test coverage detected