|
5 | 5 | from . import ffi |
6 | 6 | from .entry import ArchiveEntry, new_archive_entry |
7 | 7 | from .ffi import ( |
8 | | - OPEN_CALLBACK, WRITE_CALLBACK, CLOSE_CALLBACK, VOID_CB, REGULAR_FILE, |
9 | | - DEFAULT_UNIX_PERMISSION, ARCHIVE_EOF, |
| 8 | + OPEN_CALLBACK, WRITE_CALLBACK, CLOSE_CALLBACK, NO_OPEN_CB, NO_CLOSE_CB, |
| 9 | + REGULAR_FILE, DEFAULT_UNIX_PERMISSION, ARCHIVE_EOF, |
10 | 10 | page_size, entry_sourcepath, entry_clear, read_disk_new, read_disk_open_w, |
11 | 11 | read_next_header2, read_disk_descend, read_free, write_header, write_data, |
12 | 12 | write_finish_entry, entry_set_size, entry_set_filetype, entry_set_perm, |
@@ -187,17 +187,17 @@ def new_archive_write(format_name, filter_name=None, options='', passphrase=None |
187 | 187 | @contextmanager |
188 | 188 | def custom_writer( |
189 | 189 | write_func, format_name, filter_name=None, |
190 | | - open_func=VOID_CB, close_func=VOID_CB, block_size=page_size, |
| 190 | + open_func=None, close_func=None, block_size=page_size, |
191 | 191 | archive_write_class=ArchiveWrite, options='', passphrase=None, |
192 | 192 | ): |
193 | 193 |
|
194 | 194 | def write_cb_internal(archive_p, context, buffer_, length): |
195 | 195 | data = cast(buffer_, POINTER(c_char * length))[0] |
196 | 196 | return write_func(data) |
197 | 197 |
|
198 | | - open_cb = OPEN_CALLBACK(open_func) |
| 198 | + open_cb = OPEN_CALLBACK(open_func) if open_func else NO_OPEN_CB |
199 | 199 | write_cb = WRITE_CALLBACK(write_cb_internal) |
200 | | - close_cb = CLOSE_CALLBACK(close_func) |
| 200 | + close_cb = CLOSE_CALLBACK(close_func) if close_func else NO_CLOSE_CB |
201 | 201 |
|
202 | 202 | with new_archive_write(format_name, filter_name, options, |
203 | 203 | passphrase) as archive_p: |
|
0 commit comments