Uh oh!
There was an error while loading.Please reload this page.
- Notifications
You must be signed in to change notification settings - Fork33.7k
Description
Bug report
Bug description:
From the docshttps://docs.python.org/3.11/library/tarfile.html#tarfile.data_filter it sounds like setting errorlevel to 0 and having a filter should logged that the offending member was skipped and continue extraction. It looks like it actually logs the filter error and extracts the offending member. The below code shows the filtererror and the extraction.
From the docs: When a filter refuses to extract a file, it will raise an appropriate exception, a subclass ofFilterError. This will abort the extraction ifTarFile.errorlevel is 1 or more. With errorlevel=0 the error will be logged and the member will be skipped, but extraction will continue.
I was expecting it to tell me the file it skipped and not have any extraction with the given code.
importtarfilewithopen('test.txt','w')asf:f.write('Hello')withtarfile.open('my_archive.tar','w:xz')astar:tar.add('test.txt',arcname='../test.txt')withtarfile.open("my_archive.tar")astar:tar.debug=Truetar.errorlevel=0print(tar.errorlevel)tar.extractall(filter="data")
CPython versions tested on:
3.11
Operating systems tested on:
macOS
Linked PRs
Metadata
Metadata
Assignees
Labels
Projects
Status