Skip to content

Commit af6b2eb

Browse files
committed
create format_name and filter_names properties
1 parent d80ac30 commit af6b2eb

3 files changed

Lines changed: 12 additions & 0 deletions

File tree

libarchive/entry.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -383,3 +383,7 @@ def rdevminor(self):
383383
@rdevminor.setter
384384
def rdevminor(self, value):
385385
ffi.entry_set_rdevminor(self._entry_p, value)
386+
387+
@property
388+
def format_name(self):
389+
return ffi.format_name(self._pointer)

libarchive/ffi.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -162,6 +162,9 @@ def get_write_filter_function(filter_name):
162162
errno = ffi('errno', [c_archive_p], c_int)
163163
error_string = ffi('error_string', [c_archive_p], c_char_p)
164164
ffi('filter_bytes', [c_archive_p, c_int], c_longlong)
165+
ffi('filter_count', [c_archive_p], c_int)
166+
ffi('filter_name', [c_archive_p, c_int], c_char_p)
167+
ffi('format_name', [c_archive_p], c_char_p)
165168

166169
# archive_entry
167170

libarchive/read.py

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,11 @@ def __iter__(self):
3131
def bytes_read(self):
3232
return ffi.filter_bytes(self._pointer, -1)
3333

34+
@property
35+
def filter_names(self):
36+
count = ffi.filter_count(self._pointer)
37+
return [ffi.filter_name(self._pointer, i) for i in range(count - 1)]
38+
3439

3540
@contextmanager
3641
def new_archive_read(format_name='all', filter_name='all', passphrase=None):

0 commit comments

Comments
 (0)