def open_resource(self, name): q = '/'.join(self.resource_prefix) + '/' + name idx = index_for_name(q) if idx < 0: raise FileNotFoundError(f'{name} is not present in {self.name}') import io offset, size = offsets_for_index(idx) return io.BytesIO(get_data_at(offset, size))
def read_memoryview(self): if self.is_dir(): raise IsADirectoryError(f'Is a directory: {self.name}') q = '/'.join(self._path_entries) idx = index_for_name(q) if idx < 0: raise FileNotFoundError(f'{q} not found') offset, size = offsets_for_index(idx) return get_data_at(offset, size)
def get_module_code(offset, size): data = get_data_at(offset, size) return marshal.loads(data)