(self, fp)
| 470 | self._aware_datime = aware_datetime |
| 471 | |
| 472 | def parse(self, fp): |
| 473 | try: |
| 474 | # The basic file format: |
| 475 | # HEADER |
| 476 | # object... |
| 477 | # refid->offset... |
| 478 | # TRAILER |
| 479 | self._fp = fp |
| 480 | self._fp.seek(-32, os.SEEK_END) |
| 481 | trailer = self._fp.read(32) |
| 482 | if len(trailer) != 32: |
| 483 | raise InvalidFileException() |
| 484 | ( |
| 485 | offset_size, self._ref_size, num_objects, top_object, |
| 486 | offset_table_offset |
| 487 | ) = struct.unpack('>6xBBQQQ', trailer) |
| 488 | self._fp.seek(offset_table_offset) |
| 489 | self._object_offsets = self._read_ints(num_objects, offset_size) |
| 490 | self._objects = [_undefined] * num_objects |
| 491 | return self._read_object(top_object) |
| 492 | |
| 493 | except (OSError, IndexError, struct.error, OverflowError, |
| 494 | ValueError): |
| 495 | raise InvalidFileException() |
| 496 | |
| 497 | def _get_size(self, tokenL): |
| 498 | """ return the size of the next object.""" |
nothing calls this directly
no test coverage detected