ソースを参照

move tar related code to borg.archiver.tar

Thomas Waldmann 2 年 前
コミット
ded384929d
3 ファイル変更19 行追加20 行削除
  1. 18 1
      src/borg/archiver/tar.py
  2. 1 1
      src/borg/helpers/__init__.py
  3. 0 18
      src/borg/helpers/misc.py

+ 18 - 1
src/borg/archiver/tar.py

@@ -13,7 +13,6 @@ from ..constants import *  # NOQA
 from ..helpers import Manifest
 from ..helpers import HardLinkManager
 from ..helpers import ProgressIndicatorPercent
-from ..helpers import get_tar_filter
 from ..helpers import dash_open
 from ..helpers import msgpack
 from ..helpers import create_filter_process
@@ -33,6 +32,24 @@ from ..logger import create_logger
 logger = create_logger(__name__)
 
 
+def get_tar_filter(fname, decompress):
+    # Note that filter is None if fname is '-'.
+    if fname.endswith((".tar.gz", ".tgz")):
+        filter = "gzip -d" if decompress else "gzip"
+    elif fname.endswith((".tar.bz2", ".tbz")):
+        filter = "bzip2 -d" if decompress else "bzip2"
+    elif fname.endswith((".tar.xz", ".txz")):
+        filter = "xz -d" if decompress else "xz"
+    elif fname.endswith((".tar.lz4",)):
+        filter = "lz4 -d" if decompress else "lz4"
+    elif fname.endswith((".tar.zstd",)):
+        filter = "zstd -d" if decompress else "zstd"
+    else:
+        filter = None
+    logger.debug("Automatically determined tar filter: %s", filter)
+    return filter
+
+
 class TarMixIn:
     @with_repository(compatibility=(Manifest.Operation.READ,))
     @with_archive

+ 1 - 1
src/borg/helpers/__init__.py

@@ -17,7 +17,7 @@ from .fs import secure_erase, safe_unlink, dash_open, os_open, os_stat, umount
 from .fs import O_, flags_root, flags_dir, flags_special_follow, flags_special, flags_base, flags_normal, flags_noatime
 from .fs import HardLinkManager
 from .manifest import Manifest, NoManifestError, MandatoryFeatureUnsupported, AI_HUMAN_SORT_KEYS
-from .misc import sysinfo, log_multi, consume, get_tar_filter
+from .misc import sysinfo, log_multi, consume
 from .misc import ChunkIteratorFileWrapper, open_item, chunkit, iter_separated, ErrorIgnoringTextIOWrapper
 from .parseformat import bin_to_hex, safe_encode, safe_decode
 from .parseformat import remove_surrogates, eval_escapes, decode_dict, positive_int_validator, interval

+ 0 - 18
src/borg/helpers/misc.py

@@ -189,21 +189,3 @@ def iter_separated(fd, sep=None, read_size=4096):
     # or if there was no data before EOF
     if len(part) > 0:  # type: ignore[arg-type]
         yield part
-
-
-def get_tar_filter(fname, decompress):
-    # Note that filter is None if fname is '-'.
-    if fname.endswith((".tar.gz", ".tgz")):
-        filter = "gzip -d" if decompress else "gzip"
-    elif fname.endswith((".tar.bz2", ".tbz")):
-        filter = "bzip2 -d" if decompress else "bzip2"
-    elif fname.endswith((".tar.xz", ".txz")):
-        filter = "xz -d" if decompress else "xz"
-    elif fname.endswith((".tar.lz4",)):
-        filter = "lz4 -d" if decompress else "lz4"
-    elif fname.endswith((".tar.zstd",)):
-        filter = "zstd -d" if decompress else "zstd"
-    else:
-        filter = None
-    logger.debug("Automatically determined tar filter: %s", filter)
-    return filter