def read(self, bytes=-1): if self.closed: return if self.bytes == self.size: # EOF already reached. return if bytes < 0: bytes = self.size - self.bytes elif self.bytes + bytes > self.size: # Limit read to remaining bytes bytes = self.size - self.bytes # Read requested bytes data = _libarchive.archive_read_data_into_str(self.archive._a, bytes) self.bytes += len(data) return data
def read(self, size): '''Read current archive entry contents into string.''' return _libarchive.archive_read_data_into_str(self._a, size)