Комментарии 4
Хороша работа.
Но:
1. "TAR (а так же его версии..." - это не версии. Архив - tar, gzip, bzip[2], xz, zstd - это компрессоры (поверх архива).
2. .enswith('...') - не очень хорошая идея. Не кроссплатформенная. На Windows.TaR.GZ сломается.
3. Угадывать формат архива по расширению - тоже нехорошая идея. Погуглите mimetypes. Оно вам раскопает, что .tgz и tar.gz - это одно и то же (правда с tar.<compressed> пойдут нюансы :-).
На винде проверял, не ломается
Linux, macOS - сломается.
Да, это я знаю, и буду чинить. Сначала разберусь с .endswith((".gz", ".bz2", ".xz")) а потом уже займусь этим
Да ладно, шучу. На самом деле я бы рекомендовал просмотреть код. У меня там сразу под капотом всё приводится к нижнему регистру через pathlib:ext = "".join(archive.suffixes).lower()Так что за регистр на Linux/macOS можно не переживать, он не сломается)

Пишем huntZip - Как я написал библиотеку для архивов на Python