Beispiel #1
0
 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
Beispiel #2
0
 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)
Beispiel #4
0
 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)
Beispiel #5
0
    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
Beispiel #6
0
    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)
            else:
                self._data_file = gzip.GzipFile(fileobj=fileobj)

        return self._data_file
Beispiel #8
0
    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
Beispiel #9
0
 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
Beispiel #10
0
 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