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