def gzip_file(self): 'Return the uncompressed raw CPIO data of the RPM archive' if self._gzip_file is None: fileobj = _SubFile(self._fileobj, self.data_offset) if self.headers['archive_compression'] == 'xz': self._gzip_file = lzma.LZMAFile(fileobj) else: self._gzip_file = gzip.GzipFile(fileobj=fileobj) return self._gzip_file
def gzip_file(self): 'Return the uncompressed raw CPIO data of the RPM archive' if self._gzip_file is None: fileobj = _SubFile(self._fileobj, self.data_offset) if self.headers['archive_compression'] in ['xz', 'lzma']: self._gzip_file = lzma.LZMAFile(fileobj) else: self._gzip_file = gzip.GzipFile(fileobj=fileobj) return self._gzip_file
def extractfile(self, member): """Extract a member from the archive as a file object. `member' may be a filename or an RPMInfo object. The file-like object is read-only and provides the following methods: read(), readline(), readlines(), seek() and tell() """ if not isinstance(member, RPMInfo): member = self.getmember(member) return _SubFile(self.data_file, member.file_start, member.size)
def extractfile(self, member): ''' Extract a member from the archive as a file object. `member' may be a filename or an RPMInfo object. The file-like object is read-only and provides the following methods: read(), readline(), readlines(), seek() and tell() ''' if not isinstance(member, RPMInfo): member = self.getmember(member) return _SubFile(self.gzip_file, member.file_start, member.size)
def data_file(self): """Return the uncompressed raw CPIO data of the RPM archive.""" if self._data_file is None: fileobj = _SubFile(self._fileobj, self.data_offset) if self.headers["archive_compression"] == b"xz": self._data_file = lzma.LZMAFile(fileobj) else: self._data_file = gzip.GzipFile(fileobj=fileobj) return self._data_file
def data_file(self): """Return the uncompressed raw CPIO data of the RPM archive.""" if self._data_file is None: fileobj = _SubFile(self._fileobj, self.data_offset) if self.headers["archive_compression"] == b"xz": if not getattr(sys.modules[__name__], 'lzma', False): raise NoLZMAModuleError('lzma module not present') self._data_file = lzma.LZMAFile(fileobj) else: self._data_file = gzip.GzipFile(fileobj=fileobj) return self._data_file
def data_file(self): """Return the uncompressed raw CPIO data of the RPM archive.""" if self._data_file is None: fileobj = _SubFile(self._fileobj, self.data_offset) if self.headers["archive_compression"] == b"xz": if not getattr(sys.modules[__name__], "lzma", False): raise NoLZMAModuleError("lzma module not present") self._data_file = lzma.LZMAFile(fileobj) elif self.headers["archive_compression"] == b"zstd": if not getattr(sys.modules[__name__], "zstandard", False): raise NoZSTANDARDModuleError( "zstandard module not present") if not (sys.version_info.major >= 3 and sys.version_info.minor >= 5): raise NoBytesIOError("Need io.BytesIO (Python >= 3.5)") with zstandard.ZstdDecompressor().stream_reader( fileobj) as zstd_data: self._data_file = io.BytesIO(zstd_data.read()) else: self._data_file = gzip.GzipFile(fileobj=fileobj) return self._data_file
def gzip_file(self): 'Return the uncompressed raw CPIO data of the RPM archive' if self._gzip_file is None: fileobj = _SubFile(self._fileobj, self.data_offset) self._gzip_file = gzip.GzipFile(fileobj=fileobj) return self._gzip_file