def open_file(self, name, *args, **kwargs): offset, length = self.range(name) if self._source: # Create a memoryview/buffer from the mmap buf = memoryview_(self._source, offset, length) f = BufferFile(buf, name=name) elif hasattr(self._file, "subset"): f = self._file.subset(offset, length, name=name) else: f = StructFile(SubFile(self._file, offset, length), name=name) return f
def open_file(self, name, *args, **kwargs): info = self.dir[name] offset = info["offset"] length = info["length"] if self.source: # Create a memoryview/buffer from the mmap buf = memoryview_(self.source, offset, length) f = BytesIO(buf) else: # If mmap is not available, use the slower sub-file implementation f = SubFile(self.file, offset, length) return StructFile(f, name=name)
def open_file(self, name, **kwargs): if name not in self.files: raise NameError(name) buf = memoryview_(self.files[name]) return BufferFile(buf, name=name, **kwargs)