From a2e06b513221cf58df25ba521ed6cda3bf633ee9 Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Sat, 23 Sep 2023 08:29:14 +0530 Subject: [PATCH] DRYer --- src/calibre/gui2/add.py | 5 ++--- src/calibre/utils/zipfile.py | 5 +++++ 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/src/calibre/gui2/add.py b/src/calibre/gui2/add.py index 84c3755dc4..2327a0334f 100644 --- a/src/calibre/gui2/add.py +++ b/src/calibre/gui2/add.py @@ -197,10 +197,9 @@ class Adder(QObject): def extract(source): tdir = tempfile.mkdtemp(suffix='_archive', dir=self.tdir) if source.lower().endswith('.zip'): - from calibre.utils.zipfile import ZipFile + from calibre.utils.zipfile import extractall try: - with ZipFile(source) as zf: - zf.extractall(tdir) + extractall(source, tdir) except Exception: prints('Corrupt ZIP file, trying to use local headers') from calibre.utils.localunzip import extractall diff --git a/src/calibre/utils/zipfile.py b/src/calibre/utils/zipfile.py index e2ce5cf321..e493b75ccf 100644 --- a/src/calibre/utils/zipfile.py +++ b/src/calibre/utils/zipfile.py @@ -1624,6 +1624,11 @@ class PyZipFile(ZipFile): return (fname, archivename) +def extractall(source, dest): + with ZipFile(source) as zf: + zf.extractall(dest) + + def main(args=None): import textwrap USAGE=textwrap.dedent("""\