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