Browse Source

move manifest module from helpers to borg.manifest

Thomas Waldmann 2 years ago
parent
commit
9beaced33c

+ 1 - 1
src/borg/archive.py

@@ -26,7 +26,6 @@ from .compress import Compressor, CompressionSpec
 from .constants import *  # NOQA
 from .constants import *  # NOQA
 from .crypto.low_level import IntegrityError as IntegrityErrorBase
 from .crypto.low_level import IntegrityError as IntegrityErrorBase
 from .hashindex import ChunkIndex, ChunkIndexEntry, CacheSynchronizer
 from .hashindex import ChunkIndex, ChunkIndexEntry, CacheSynchronizer
-from .helpers import Manifest
 from .helpers import HardLinkManager
 from .helpers import HardLinkManager
 from .helpers import ChunkIteratorFileWrapper, open_item
 from .helpers import ChunkIteratorFileWrapper, open_item
 from .helpers import Error, IntegrityError, set_ec
 from .helpers import Error, IntegrityError, set_ec
@@ -43,6 +42,7 @@ from .helpers import os_stat
 from .helpers import msgpack
 from .helpers import msgpack
 from .helpers import sig_int
 from .helpers import sig_int
 from .lrucache import LRUCache
 from .lrucache import LRUCache
+from .manifest import Manifest
 from .patterns import PathPrefixPattern, FnmatchPattern, IECommand
 from .patterns import PathPrefixPattern, FnmatchPattern, IECommand
 from .item import Item, ArchiveItem, ItemDiff
 from .item import Item, ArchiveItem, ItemDiff
 from .platform import acl_get, acl_set, set_flags, get_flags, swidth, hostname
 from .platform import acl_get, acl_set, set_flags, get_flags, swidth, hostname

+ 1 - 1
src/borg/archiver/common.py

@@ -8,8 +8,8 @@ from ..archive import Archive
 from ..constants import *  # NOQA
 from ..constants import *  # NOQA
 from ..cache import Cache, assert_secure
 from ..cache import Cache, assert_secure
 from ..helpers import Error
 from ..helpers import Error
-from ..helpers import Manifest, AI_HUMAN_SORT_KEYS
 from ..helpers import GlobSpec, SortBySpec, positive_int_validator, location_validator, Location
 from ..helpers import GlobSpec, SortBySpec, positive_int_validator, location_validator, Location
+from ..manifest import Manifest, AI_HUMAN_SORT_KEYS
 from ..patterns import PatternMatcher
 from ..patterns import PatternMatcher
 from ..remote import RemoteRepository
 from ..remote import RemoteRepository
 from ..repository import Repository
 from ..repository import Repository

+ 1 - 1
src/borg/archiver/compact.py

@@ -3,7 +3,7 @@ import argparse
 from .common import with_repository
 from .common import with_repository
 from ..constants import *  # NOQA
 from ..constants import *  # NOQA
 from ..helpers import EXIT_SUCCESS
 from ..helpers import EXIT_SUCCESS
-from ..helpers import Manifest
+from ..manifest import Manifest
 
 
 from ..logger import create_logger
 from ..logger import create_logger
 
 

+ 1 - 1
src/borg/archiver/config.py

@@ -10,7 +10,7 @@ from ..helpers import EXIT_SUCCESS, EXIT_WARNING
 from ..helpers import Error
 from ..helpers import Error
 from ..helpers import Location
 from ..helpers import Location
 from ..helpers import parse_file_size
 from ..helpers import parse_file_size
-from ..helpers import Manifest
+from ..manifest import Manifest
 
 
 from ..logger import create_logger
 from ..logger import create_logger
 
 

+ 1 - 1
src/borg/archiver/create.py

@@ -21,13 +21,13 @@ from ..helpers import NameSpec, CommentSpec, FilesCacheMode
 from ..helpers import eval_escapes
 from ..helpers import eval_escapes
 from ..helpers import timestamp
 from ..helpers import timestamp
 from ..helpers import get_cache_dir, os_stat
 from ..helpers import get_cache_dir, os_stat
-from ..helpers import Manifest
 from ..helpers import dir_is_tagged
 from ..helpers import dir_is_tagged
 from ..helpers import log_multi
 from ..helpers import log_multi
 from ..helpers import basic_json_data, json_print
 from ..helpers import basic_json_data, json_print
 from ..helpers import flags_root, flags_dir, flags_special_follow, flags_special
 from ..helpers import flags_root, flags_dir, flags_special_follow, flags_special
 from ..helpers import sig_int, ignore_sigint
 from ..helpers import sig_int, ignore_sigint
 from ..helpers import iter_separated
 from ..helpers import iter_separated
+from ..manifest import Manifest
 from ..patterns import PatternMatcher
 from ..patterns import PatternMatcher
 from ..platform import get_flags
 from ..platform import get_flags
 from ..platform import uid2user, gid2group
 from ..platform import uid2user, gid2group

+ 1 - 1
src/borg/archiver/debug.py

@@ -10,10 +10,10 @@ from ..constants import *  # NOQA
 from ..helpers import msgpack
 from ..helpers import msgpack
 from ..helpers import sysinfo
 from ..helpers import sysinfo
 from ..helpers import bin_to_hex, prepare_dump_dict
 from ..helpers import bin_to_hex, prepare_dump_dict
-from ..helpers import Manifest
 from ..helpers import dash_open
 from ..helpers import dash_open
 from ..helpers import StableDict
 from ..helpers import StableDict
 from ..helpers import positive_int_validator, NameSpec
 from ..helpers import positive_int_validator, NameSpec
+from ..manifest import Manifest
 from ..platform import get_process_id
 from ..platform import get_process_id
 from ..repository import Repository, LIST_SCAN_LIMIT, TAG_PUT, TAG_DELETE, TAG_COMMIT
 from ..repository import Repository, LIST_SCAN_LIMIT, TAG_PUT, TAG_DELETE, TAG_COMMIT
 
 

+ 2 - 2
src/borg/archiver/delete.py

@@ -5,8 +5,8 @@ from .common import with_repository
 from ..archive import Archive, Statistics
 from ..archive import Archive, Statistics
 from ..cache import Cache
 from ..cache import Cache
 from ..constants import *  # NOQA
 from ..constants import *  # NOQA
-from ..helpers import Manifest, sig_int
-from ..helpers import log_multi, format_archive
+from ..helpers import log_multi, format_archive, sig_int
+from ..manifest import Manifest
 
 
 from ..logger import create_logger
 from ..logger import create_logger
 
 

+ 1 - 1
src/borg/archiver/diff.py

@@ -5,7 +5,7 @@ from .common import with_repository, with_archive, build_matcher
 from ..archive import Archive
 from ..archive import Archive
 from ..constants import *  # NOQA
 from ..constants import *  # NOQA
 from ..helpers import archivename_validator
 from ..helpers import archivename_validator
-from ..helpers import Manifest
+from ..manifest import Manifest
 
 
 from ..logger import create_logger
 from ..logger import create_logger
 
 

+ 1 - 1
src/borg/archiver/extract.py

@@ -10,9 +10,9 @@ from ..archive import BackupError, BackupOSError
 from ..constants import *  # NOQA
 from ..constants import *  # NOQA
 from ..helpers import NameSpec
 from ..helpers import NameSpec
 from ..helpers import remove_surrogates
 from ..helpers import remove_surrogates
-from ..helpers import Manifest
 from ..helpers import HardLinkManager
 from ..helpers import HardLinkManager
 from ..helpers import ProgressIndicatorPercent
 from ..helpers import ProgressIndicatorPercent
+from ..manifest import Manifest
 
 
 from ..logger import create_logger
 from ..logger import create_logger
 
 

+ 1 - 1
src/borg/archiver/info.py

@@ -6,8 +6,8 @@ from datetime import timedelta
 from .common import with_repository
 from .common import with_repository
 from ..archive import Archive
 from ..archive import Archive
 from ..constants import *  # NOQA
 from ..constants import *  # NOQA
-from ..helpers import Manifest
 from ..helpers import remove_surrogates, format_timedelta, json_print, basic_json_data
 from ..helpers import remove_surrogates, format_timedelta, json_print, basic_json_data
+from ..manifest import Manifest
 
 
 from ..logger import create_logger
 from ..logger import create_logger
 
 

+ 1 - 1
src/borg/archiver/keys.py

@@ -6,7 +6,7 @@ from ..constants import *  # NOQA
 from ..crypto.key import AESOCBRepoKey, CHPORepoKey, Blake2AESOCBRepoKey, Blake2CHPORepoKey
 from ..crypto.key import AESOCBRepoKey, CHPORepoKey, Blake2AESOCBRepoKey, Blake2CHPORepoKey
 from ..crypto.key import AESOCBKeyfileKey, CHPOKeyfileKey, Blake2AESOCBKeyfileKey, Blake2CHPOKeyfileKey
 from ..crypto.key import AESOCBKeyfileKey, CHPOKeyfileKey, Blake2AESOCBKeyfileKey, Blake2CHPOKeyfileKey
 from ..crypto.keymanager import KeyManager
 from ..crypto.keymanager import KeyManager
-from ..helpers import Manifest
+from ..manifest import Manifest
 
 
 from .common import with_repository
 from .common import with_repository
 
 

+ 1 - 1
src/borg/archiver/list_cmd.py

@@ -6,8 +6,8 @@ from .common import with_repository, build_matcher
 from ..archive import Archive
 from ..archive import Archive
 from ..cache import Cache
 from ..cache import Cache
 from ..constants import *  # NOQA
 from ..constants import *  # NOQA
-from ..helpers import Manifest
 from ..helpers import ItemFormatter, BaseFormatter, NameSpec
 from ..helpers import ItemFormatter, BaseFormatter, NameSpec
+from ..manifest import Manifest
 
 
 from ..logger import create_logger
 from ..logger import create_logger
 
 

+ 1 - 1
src/borg/archiver/locks.py

@@ -4,8 +4,8 @@ import subprocess
 from .common import with_repository
 from .common import with_repository
 from ..cache import Cache
 from ..cache import Cache
 from ..constants import *  # NOQA
 from ..constants import *  # NOQA
-from ..helpers import Manifest
 from ..helpers import prepare_subprocess_env
 from ..helpers import prepare_subprocess_env
+from ..manifest import Manifest
 
 
 from ..logger import create_logger
 from ..logger import create_logger
 
 

+ 1 - 1
src/borg/archiver/mount.py

@@ -4,8 +4,8 @@ import os
 from .common import with_repository, Highlander
 from .common import with_repository, Highlander
 from ..constants import *  # NOQA
 from ..constants import *  # NOQA
 from ..helpers import EXIT_ERROR
 from ..helpers import EXIT_ERROR
-from ..helpers import Manifest
 from ..helpers import umount
 from ..helpers import umount
+from ..manifest import Manifest
 from ..remote import cache_if_remote
 from ..remote import cache_if_remote
 
 
 from ..logger import create_logger
 from ..logger import create_logger

+ 2 - 5
src/borg/archiver/prune.py

@@ -9,11 +9,8 @@ from .common import with_repository
 from ..archive import Archive, Statistics
 from ..archive import Archive, Statistics
 from ..cache import Cache
 from ..cache import Cache
 from ..constants import *  # NOQA
 from ..constants import *  # NOQA
-from ..helpers import format_archive
-from ..helpers import interval
-from ..helpers import Manifest, sig_int
-from ..helpers import log_multi
-from ..helpers import ProgressIndicatorPercent
+from ..helpers import format_archive, interval, sig_int, log_multi, ProgressIndicatorPercent
+from ..manifest import Manifest
 
 
 from ..logger import create_logger
 from ..logger import create_logger
 
 

+ 1 - 1
src/borg/archiver/rcreate.py

@@ -7,7 +7,7 @@ from ..crypto.key import key_creator, key_argument_names, tam_required_file
 from ..helpers import EXIT_WARNING
 from ..helpers import EXIT_WARNING
 from ..helpers import location_validator, Location
 from ..helpers import location_validator, Location
 from ..helpers import parse_storage_quota
 from ..helpers import parse_storage_quota
-from ..helpers import Manifest
+from ..manifest import Manifest
 
 
 from ..logger import create_logger
 from ..logger import create_logger
 
 

+ 1 - 2
src/borg/archiver/rdelete.py

@@ -4,11 +4,10 @@ from .common import with_repository
 from ..cache import Cache, SecurityManager
 from ..cache import Cache, SecurityManager
 from ..constants import *  # NOQA
 from ..constants import *  # NOQA
 from ..helpers import EXIT_ERROR
 from ..helpers import EXIT_ERROR
-from ..helpers import NoManifestError
 from ..helpers import format_archive
 from ..helpers import format_archive
 from ..helpers import bin_to_hex
 from ..helpers import bin_to_hex
-from ..helpers import Manifest
 from ..helpers import yes
 from ..helpers import yes
+from ..manifest import Manifest, NoManifestError
 
 
 from ..logger import create_logger
 from ..logger import create_logger
 
 

+ 1 - 1
src/borg/archiver/recreate.py

@@ -8,7 +8,7 @@ from ..compress import CompressionSpec
 from ..helpers import archivename_validator, ChunkerParams
 from ..helpers import archivename_validator, ChunkerParams
 from ..helpers import CommentSpec
 from ..helpers import CommentSpec
 from ..helpers import timestamp
 from ..helpers import timestamp
-from ..helpers import Manifest
+from ..manifest import Manifest
 
 
 from ..logger import create_logger
 from ..logger import create_logger
 
 

+ 1 - 1
src/borg/archiver/rename.py

@@ -3,7 +3,7 @@ import argparse
 from .common import with_repository, with_archive
 from .common import with_repository, with_archive
 from ..constants import *  # NOQA
 from ..constants import *  # NOQA
 from ..helpers import archivename_validator
 from ..helpers import archivename_validator
-from ..helpers import Manifest
+from ..manifest import Manifest
 
 
 from ..logger import create_logger
 from ..logger import create_logger
 
 

+ 1 - 1
src/borg/archiver/rinfo.py

@@ -3,8 +3,8 @@ import textwrap
 
 
 from .common import with_repository
 from .common import with_repository
 from ..constants import *  # NOQA
 from ..constants import *  # NOQA
-from ..helpers import Manifest
 from ..helpers import bin_to_hex, json_print, basic_json_data
 from ..helpers import bin_to_hex, json_print, basic_json_data
+from ..manifest import Manifest
 
 
 from ..logger import create_logger
 from ..logger import create_logger
 
 

+ 1 - 1
src/borg/archiver/rlist.py

@@ -4,8 +4,8 @@ import sys
 
 
 from .common import with_repository
 from .common import with_repository
 from ..constants import *  # NOQA
 from ..constants import *  # NOQA
-from ..helpers import Manifest
 from ..helpers import BaseFormatter, ArchiveFormatter, json_print, basic_json_data
 from ..helpers import BaseFormatter, ArchiveFormatter, json_print, basic_json_data
+from ..manifest import Manifest
 
 
 from ..logger import create_logger
 from ..logger import create_logger
 
 

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

@@ -10,7 +10,6 @@ import time
 from ..archive import Archive, TarfileObjectProcessors, ChunksProcessor
 from ..archive import Archive, TarfileObjectProcessors, ChunksProcessor
 from ..compress import CompressionSpec
 from ..compress import CompressionSpec
 from ..constants import *  # NOQA
 from ..constants import *  # NOQA
-from ..helpers import Manifest
 from ..helpers import HardLinkManager
 from ..helpers import HardLinkManager
 from ..helpers import ProgressIndicatorPercent
 from ..helpers import ProgressIndicatorPercent
 from ..helpers import dash_open
 from ..helpers import dash_open
@@ -23,6 +22,7 @@ from ..helpers import remove_surrogates
 from ..helpers import timestamp
 from ..helpers import timestamp
 from ..helpers import basic_json_data, json_print
 from ..helpers import basic_json_data, json_print
 from ..helpers import log_multi
 from ..helpers import log_multi
+from ..manifest import Manifest
 
 
 from .common import with_repository, with_archive, Highlander, define_exclusion_group
 from .common import with_repository, with_archive, Highlander, define_exclusion_group
 from .common import build_matcher, build_filter
 from .common import build_matcher, build_filter

+ 1 - 1
src/borg/archiver/transfer.py

@@ -7,7 +7,7 @@ from ..crypto.key import uses_same_id_hash, uses_same_chunker_secret
 from ..helpers import EXIT_SUCCESS, EXIT_ERROR
 from ..helpers import EXIT_SUCCESS, EXIT_ERROR
 from ..helpers import location_validator, Location
 from ..helpers import location_validator, Location
 from ..helpers import format_file_size
 from ..helpers import format_file_size
-from ..helpers import Manifest
+from ..manifest import Manifest
 
 
 from ..logger import create_logger
 from ..logger import create_logger
 
 

+ 1 - 1
src/borg/cache.py

@@ -16,7 +16,6 @@ from .constants import CACHE_README, FILES_CACHE_MODE_DISABLED
 from .hashindex import ChunkIndex, ChunkIndexEntry, CacheSynchronizer
 from .hashindex import ChunkIndex, ChunkIndexEntry, CacheSynchronizer
 from .helpers import Location
 from .helpers import Location
 from .helpers import Error
 from .helpers import Error
-from .helpers import Manifest
 from .helpers import get_cache_dir, get_security_dir
 from .helpers import get_cache_dir, get_security_dir
 from .helpers import bin_to_hex, parse_stringified_list
 from .helpers import bin_to_hex, parse_stringified_list
 from .helpers import format_file_size
 from .helpers import format_file_size
@@ -32,6 +31,7 @@ from .item import ArchiveItem, ChunkListEntry
 from .crypto.key import PlaintextKey
 from .crypto.key import PlaintextKey
 from .crypto.file_integrity import IntegrityCheckedFile, DetachedIntegrityCheckedFile, FileIntegrityError
 from .crypto.file_integrity import IntegrityCheckedFile, DetachedIntegrityCheckedFile, FileIntegrityError
 from .locking import Lock
 from .locking import Lock
+from .manifest import Manifest
 from .platform import SaveFile
 from .platform import SaveFile
 from .remote import cache_if_remote
 from .remote import cache_if_remote
 from .repository import LIST_SCAN_LIMIT
 from .repository import LIST_SCAN_LIMIT

+ 2 - 2
src/borg/crypto/key.py

@@ -3,7 +3,7 @@ import os
 import textwrap
 import textwrap
 from binascii import a2b_base64, b2a_base64, hexlify
 from binascii import a2b_base64, b2a_base64, hexlify
 from hashlib import sha256, pbkdf2_hmac
 from hashlib import sha256, pbkdf2_hmac
-from typing import Literal, Callable, Sequence
+from typing import Literal, Callable
 
 
 from ..logger import create_logger
 from ..logger import create_logger
 
 
@@ -20,8 +20,8 @@ from ..helpers import get_limited_unpacker
 from ..helpers import bin_to_hex
 from ..helpers import bin_to_hex
 from ..helpers.passphrase import Passphrase, PasswordRetriesExceeded, PassphraseWrong
 from ..helpers.passphrase import Passphrase, PasswordRetriesExceeded, PassphraseWrong
 from ..helpers import msgpack
 from ..helpers import msgpack
-from ..helpers.manifest import Manifest
 from ..item import Key, EncryptedKey, want_bytes
 from ..item import Key, EncryptedKey, want_bytes
+from ..manifest import Manifest
 from ..platform import SaveFile
 from ..platform import SaveFile
 
 
 from .nonces import NonceManager
 from .nonces import NonceManager

+ 2 - 1
src/borg/crypto/keymanager.py

@@ -4,7 +4,8 @@ import textwrap
 from binascii import unhexlify, a2b_base64, b2a_base64
 from binascii import unhexlify, a2b_base64, b2a_base64
 from hashlib import sha256
 from hashlib import sha256
 
 
-from ..helpers import Manifest, NoManifestError, Error, yes, bin_to_hex, dash_open
+from ..helpers import Error, yes, bin_to_hex, dash_open
+from ..manifest import Manifest, NoManifestError
 from ..repository import Repository
 from ..repository import Repository
 
 
 from .key import CHPOKeyfileKey, RepoKeyNotFoundError, KeyBlobStorage, identify_key
 from .key import CHPOKeyfileKey, RepoKeyNotFoundError, KeyBlobStorage, identify_key

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

@@ -16,7 +16,6 @@ from .fs import dir_is_tagged, dir_is_cachedir, make_path_safe, scandir_inorder
 from .fs import secure_erase, safe_unlink, dash_open, os_open, os_stat, umount
 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 O_, flags_root, flags_dir, flags_special_follow, flags_special, flags_base, flags_normal, flags_noatime
 from .fs import HardLinkManager
 from .fs import HardLinkManager
-from .manifest import Manifest, NoManifestError, MandatoryFeatureUnsupported, AI_HUMAN_SORT_KEYS
 from .misc import sysinfo, log_multi, consume
 from .misc import sysinfo, log_multi, consume
 from .misc import ChunkIteratorFileWrapper, open_item, chunkit, iter_separated, ErrorIgnoringTextIOWrapper
 from .misc import ChunkIteratorFileWrapper, open_item, chunkit, iter_separated, ErrorIgnoringTextIOWrapper
 from .parseformat import bin_to_hex, safe_encode, safe_decode
 from .parseformat import bin_to_hex, safe_encode, safe_decode

+ 2 - 3
src/borg/helpers/parseformat.py

@@ -5,7 +5,6 @@ import os
 import os.path
 import os.path
 import re
 import re
 import shlex
 import shlex
-import socket
 import stat
 import stat
 import uuid
 import uuid
 from binascii import hexlify
 from binascii import hexlify
@@ -219,7 +218,7 @@ CommentSpec = replace_placeholders
 
 
 
 
 def SortBySpec(text):
 def SortBySpec(text):
-    from .manifest import AI_HUMAN_SORT_KEYS
+    from ..manifest import AI_HUMAN_SORT_KEYS
 
 
     for token in text.split(","):
     for token in text.split(","):
         if token not in AI_HUMAN_SORT_KEYS:
         if token not in AI_HUMAN_SORT_KEYS:
@@ -591,7 +590,7 @@ class ArchiveFormatter(BaseFormatter):
 
 
     @classmethod
     @classmethod
     def available_keys(cls):
     def available_keys(cls):
-        from .manifest import ArchiveInfo
+        from ..manifest import ArchiveInfo
 
 
         fake_archive_info = ArchiveInfo("archivename", b"\1" * 32, datetime(1970, 1, 1, tzinfo=timezone.utc))
         fake_archive_info = ArchiveInfo("archivename", b"\1" * 32, datetime(1970, 1, 1, tzinfo=timezone.utc))
         formatter = cls("", None, None, None)
         formatter = cls("", None, None, None)

+ 11 - 12
src/borg/helpers/manifest.py → src/borg/manifest.py

@@ -7,17 +7,16 @@ from datetime import datetime, timedelta, timezone
 from operator import attrgetter
 from operator import attrgetter
 from typing import Sequence, FrozenSet
 from typing import Sequence, FrozenSet
 
 
-from .errors import Error
-
-from ..logger import create_logger
+from .logger import create_logger
 
 
 logger = create_logger()
 logger = create_logger()
 
 
-from .datastruct import StableDict
-from .parseformat import bin_to_hex
-from .time import parse_timestamp
-from .. import shellpattern
-from ..constants import *  # NOQA
+from . import shellpattern
+from .constants import *  # NOQA
+from .helpers.datastruct import StableDict
+from .helpers.parseformat import bin_to_hex
+from .helpers.time import parse_timestamp
+from .helpers.errors import Error
 
 
 
 
 class NoManifestError(Error):
 class NoManifestError(Error):
@@ -184,9 +183,9 @@ class Manifest:
 
 
     @classmethod
     @classmethod
     def load(cls, repository, operations, key=None, force_tam_not_required=False):
     def load(cls, repository, operations, key=None, force_tam_not_required=False):
-        from ..item import ManifestItem
-        from ..crypto.key import key_factory, tam_required_file, tam_required
-        from ..repository import Repository
+        from .item import ManifestItem
+        from .crypto.key import key_factory, tam_required_file, tam_required
+        from .repository import Repository
 
 
         try:
         try:
             cdata = repository.get(cls.MANIFEST_ID)
             cdata = repository.get(cls.MANIFEST_ID)
@@ -248,7 +247,7 @@ class Manifest:
         return result
         return result
 
 
     def write(self):
     def write(self):
-        from ..item import ManifestItem
+        from .item import ManifestItem
 
 
         if self.key.tam_required:
         if self.key.tam_required:
             self.config["tam_required"] = True
             self.config["tam_required"] = True

+ 1 - 1
src/borg/repository.py

@@ -19,11 +19,11 @@ from .helpers import Location
 from .helpers import ProgressIndicatorPercent
 from .helpers import ProgressIndicatorPercent
 from .helpers import bin_to_hex
 from .helpers import bin_to_hex
 from .helpers import secure_erase, safe_unlink
 from .helpers import secure_erase, safe_unlink
-from .helpers import Manifest
 from .helpers import msgpack
 from .helpers import msgpack
 from .locking import Lock, LockError, LockErrorT
 from .locking import Lock, LockError, LockErrorT
 from .logger import create_logger
 from .logger import create_logger
 from .lrucache import LRUCache
 from .lrucache import LRUCache
+from .manifest import Manifest
 from .platform import SaveFile, SyncFile, sync_dir, safe_fadvise
 from .platform import SaveFile, SyncFile, sync_dir, safe_fadvise
 from .checksums import crc32, StreamingXXH64
 from .checksums import crc32, StreamingXXH64
 from .crypto.file_integrity import IntegrityCheckedFile, FileIntegrityError
 from .crypto.file_integrity import IntegrityCheckedFile, FileIntegrityError

+ 1 - 1
src/borg/testsuite/archive.py

@@ -10,9 +10,9 @@ from . import BaseTestCase
 from ..crypto.key import PlaintextKey
 from ..crypto.key import PlaintextKey
 from ..archive import Archive, CacheChunkBuffer, RobustUnpacker, valid_msgpacked_dict, ITEM_KEYS, Statistics
 from ..archive import Archive, CacheChunkBuffer, RobustUnpacker, valid_msgpacked_dict, ITEM_KEYS, Statistics
 from ..archive import BackupOSError, backup_io, backup_io_iter, get_item_uid_gid
 from ..archive import BackupOSError, backup_io, backup_io_iter, get_item_uid_gid
-from ..helpers import Manifest
 from ..helpers import msgpack
 from ..helpers import msgpack
 from ..item import Item, ArchiveItem
 from ..item import Item, ArchiveItem
+from ..manifest import Manifest
 from ..platform import uid2user, gid2group
 from ..platform import uid2user, gid2group
 
 
 
 

+ 1 - 1
src/borg/testsuite/archiver.py

@@ -37,12 +37,12 @@ from ..crypto.key import FlexiKey, AESOCBRepoKey, AESOCBKeyfileKey, CHPOKeyfileK
 from ..crypto.keymanager import RepoIdMismatch, NotABorgKeyFile
 from ..crypto.keymanager import RepoIdMismatch, NotABorgKeyFile
 from ..crypto.file_integrity import FileIntegrityError
 from ..crypto.file_integrity import FileIntegrityError
 from ..helpers import Location, get_security_dir
 from ..helpers import Location, get_security_dir
-from ..helpers import Manifest, MandatoryFeatureUnsupported
 from ..helpers import EXIT_SUCCESS, EXIT_WARNING, EXIT_ERROR
 from ..helpers import EXIT_SUCCESS, EXIT_WARNING, EXIT_ERROR
 from ..helpers import bin_to_hex
 from ..helpers import bin_to_hex
 from ..helpers import msgpack
 from ..helpers import msgpack
 from ..helpers import parse_storage_quota
 from ..helpers import parse_storage_quota
 from ..helpers import flags_noatime, flags_normal
 from ..helpers import flags_noatime, flags_normal
+from ..manifest import Manifest, MandatoryFeatureUnsupported
 from ..nanorst import RstToTextLazy, rst_to_terminal
 from ..nanorst import RstToTextLazy, rst_to_terminal
 from ..patterns import IECommand, PatternMatcher, parse_pattern
 from ..patterns import IECommand, PatternMatcher, parse_pattern
 from ..item import Item, ItemDiff, chunks_contents_equal
 from ..item import Item, ItemDiff, chunks_contents_equal

+ 1 - 1
src/borg/testsuite/cache.py

@@ -12,7 +12,7 @@ from ..cache import AdHocCache
 from ..compress import CompressionSpec
 from ..compress import CompressionSpec
 from ..crypto.key import AESOCBRepoKey
 from ..crypto.key import AESOCBRepoKey
 from ..hashindex import ChunkIndex, CacheSynchronizer
 from ..hashindex import ChunkIndex, CacheSynchronizer
-from ..helpers import Manifest
+from ..manifest import Manifest
 from ..repository import Repository
 from ..repository import Repository