Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
importer: use tarfile.open to handle compressed archives
Call tarfile.open instead of tarfile.TarFile from the importer so that we can import compressed tar archives. Note that tarfile.TarFile does not handle compressed archives: $ python3 Python 3.8.2 (default, Apr 27 2020, 15:53:34) [GCC 9.3.0] on linux Type "help", "copyright", "credits" or "license" for more information. >>> import tarfile >>> tf = tarfile.TarFile("Lagrimas.tar.bz2") Traceback (most recent call last): [...] tarfile.ReadError: invalid header >>> But tarfile.open does deal with them: $ python3 Python 3.8.2 (default, Apr 27 2020, 15:53:34) [GCC 9.3.0] on linux Type "help", "copyright", "credits" or "license" for more information. >>> import tarfile >>> tf = tarfile.open("Lagrimas.tar.bz2") >>> Tested: $ ls Lagrimas/*.mp3 | wc -l 11 $ tar cjf Lagrimas.tar.bz2 Lagrimas/ - Before: $ beet import Lagrimas.tar.bz2 extraction failed: invalid header No files imported from /tmp/Lagrimas.tar.bz2 - After: $ beet import Lagrimas.tar.bz2 [works] Fixes #3606.
- Loading branch information