def write(self, member, data=None): '''Writes a string buffer to the archive as the given entry.''' if isinstance(member, basestring): member = self.entry_class(pathname=member, encoding=self.encoding) if data: member.size = len(data) member.to_archive(self) if data: _libarchive.archive_write_data_from_str(self._a, data) _libarchive.archive_write_finish_entry(self._a)
def close(self): if self.closed: return if self.buffer: self.entry.size = self.buffer.tell() self.entry.to_archive(self.archive) _libarchive.archive_write_data_from_str(self.archive._a, self.buffer.getvalue()) _libarchive.archive_write_finish_entry(self.archive._a) # Call archive.close() with _defer True to let it know we have been # closed and it is now safe to actually close. self.archive.close(_defer=True) self.archive = None self.closed = True
def write(self, member, data=None): '''Writes a string buffer to the archive as the given entry.''' if isinstance(member, str): member = self.entry_class(pathname=member, encoding=self.encoding) if data: member.size = len(data) member.to_archive(self) if data: if PY3: if isinstance(data, bytes): result = _libarchive.archive_write_data_from_str( self._a, data) else: result = _libarchive.archive_write_data_from_str( self._a, data.encode('utf8')) else: result = _libarchive.archive_write_data_from_str(self._a, data) _libarchive.archive_write_finish_entry(self._a)