Răsfoiți Sursa

move manifest module from helpers to borg.manifest

Thomas Waldmann 2 ani în urmă
părinte
comite
9beaced33c

+ 1 - 1
src/borg/archive.py

@@ -26,7 +26,6 @@ from .compress import Compressor, CompressionSpec
 from .constants import *  # NOQA
 from .crypto.low_level import IntegrityError as IntegrityErrorBase
 from .hashindex import ChunkIndex, ChunkIndexEntry, CacheSynchronizer
-from .helpers import Manifest
 from .helpers import HardLinkManager
 from .helpers import ChunkIteratorFileWrapper, open_item
 from .helpers import Error, IntegrityError, set_ec
@@ -43,6 +42,7 @@ from .helpers import os_stat
 from .helpers import msgpack
 from .helpers import sig_int
 from .lrucache import LRUCache
+from .manifest import Manifest
 from .patterns import PathPrefixPattern, FnmatchPattern, IECommand
 from .item import Item, ArchiveItem, ItemDiff
 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 ..cache import Cache, assert_secure
 from ..helpers import Error
-from ..helpers import Manifest, AI_HUMAN_SORT_KEYS
 from ..helpers import GlobSpec, SortBySpec, positive_int_validator, location_validator, Location
+from ..manifest import Manifest, AI_HUMAN_SORT_KEYS
 from ..patterns import PatternMatcher
 from ..remote import RemoteRepository
 from ..repository import Repository

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

@@ -3,7 +3,7 @@ import argparse
 from .common import with_repository
 from ..constants import *  # NOQA
 from ..helpers import EXIT_SUCCESS
-from ..helpers import Manifest
+from ..manifest import Manifest
 
 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 Location
 from ..helpers import parse_file_size
-from ..helpers import Manifest
+from ..manifest import Manifest
 
 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 timestamp
 from ..helpers import get_cache_dir, os_stat
-from ..helpers import Manifest
 from ..helpers import dir_is_tagged
 from ..helpers import log_multi
 from ..helpers import basic_json_data, json_print
 from ..helpers import flags_root, flags_dir, flags_special_follow, flags_special
 from ..helpers import sig_int, ignore_sigint
 from ..helpers import iter_separated
+from ..manifest import Manifest
 from ..patterns import PatternMatcher
 from ..platform import get_flags
 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 sysinfo
 from ..helpers import bin_to_hex, prepare_dump_dict
-from ..helpers import Manifest
 from ..helpers import dash_open
 from ..helpers import StableDict
 from ..helpers import positive_int_validator, NameSpec
+from ..manifest import Manifest
 from ..platform import get_process_id
 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 ..cache import Cache
 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
 

+ 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 ..constants import *  # NOQA
 from ..helpers import archivename_validator
-from ..helpers import Manifest
+from ..manifest import Manifest
 
 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 ..helpers import NameSpec
 from ..helpers import remove_surrogates
-from ..helpers import Manifest
 from ..helpers import HardLinkManager
 from ..helpers import ProgressIndicatorPercent
+from ..manifest import Manifest
 
 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 ..archive import Archive
 from ..constants import *  # NOQA
-from ..helpers import Manifest
 from ..helpers import remove_surrogates, format_timedelta, json_print, basic_json_data
+from ..manifest import Manifest
 
 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 AESOCBKeyfileKey, CHPOKeyfileKey, Blake2AESOCBKeyfileKey, Blake2CHPOKeyfileKey
 from ..crypto.keymanager import KeyManager
-from ..helpers import Manifest
+from ..manifest import Manifest
 
 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 ..cache import Cache
 from ..constants import *  # NOQA
-from ..helpers import Manifest
 from ..helpers import ItemFormatter, BaseFormatter, NameSpec
+from ..manifest import Manifest
 
 from ..logger import create_logger
 

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

@@ -4,8 +4,8 @@ import subprocess
 from .common import with_repository
 from ..cache import Cache
 from ..constants import *  # NOQA
-from ..helpers import Manifest
 from ..helpers import prepare_subprocess_env
+from ..manifest import Manifest
 
 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 ..constants import *  # NOQA
 from ..helpers import EXIT_ERROR
-from ..helpers import Manifest
 from ..helpers import umount
+from ..manifest import Manifest
 from ..remote import cache_if_remote
 
 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 ..cache import Cache
 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
 

+ 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 location_validator, Location
 from ..helpers import parse_storage_quota
-from ..helpers import Manifest
+from ..manifest import Manifest
 
 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 ..constants import *  # NOQA
 from ..helpers import EXIT_ERROR
-from ..helpers import NoManifestError
 from ..helpers import format_archive
 from ..helpers import bin_to_hex
-from ..helpers import Manifest
 from ..helpers import yes
+from ..manifest import Manifest, NoManifestError
 
 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 CommentSpec
 from ..helpers import timestamp
-from ..helpers import Manifest
+from ..manifest import Manifest
 
 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 ..constants import *  # NOQA
 from ..helpers import archivename_validator
-from ..helpers import Manifest
+from ..manifest import Manifest
 
 from ..logger import create_logger
 

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

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

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

@@ -4,8 +4,8 @@ import sys
 
 from .common import with_repository
 from ..constants import *  # NOQA
-from ..helpers import Manifest
 from ..helpers import BaseFormatter, ArchiveFormatter, json_print, basic_json_data
+from ..manifest import Manifest
 
 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 ..compress import CompressionSpec
 from ..constants import *  # NOQA
-from ..helpers import Manifest
 from ..helpers import HardLinkManager
 from ..helpers import ProgressIndicatorPercent
 from ..helpers import dash_open
@@ -23,6 +22,7 @@ from ..helpers import remove_surrogates
 from ..helpers import timestamp
 from ..helpers import basic_json_data, json_print
 from ..helpers import log_multi
+from ..manifest import Manifest
 
 from .common import with_repository, with_archive, Highlander, define_exclusion_group
 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 location_validator, Location
 from ..helpers import format_file_size
-from ..helpers import Manifest
+from ..manifest import Manifest
 
 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 .helpers import Location
 from .helpers import Error
-from .helpers import Manifest
 from .helpers import get_cache_dir, get_security_dir
 from .helpers import bin_to_hex, parse_stringified_list
 from .helpers import format_file_size
@@ -32,6 +31,7 @@ from .item import ArchiveItem, ChunkListEntry
 from .crypto.key import PlaintextKey
 from .crypto.file_integrity import IntegrityCheckedFile, DetachedIntegrityCheckedFile, FileIntegrityError
 from .locking import Lock
+from .manifest import Manifest
 from .platform import SaveFile
 from .remote import cache_if_remote
 from .repository import LIST_SCAN_LIMIT

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

@@ -3,7 +3,7 @@ import os
 import textwrap
 from binascii import a2b_base64, b2a_base64, hexlify
 from hashlib import sha256, pbkdf2_hmac
-from typing import Literal, Callable, Sequence
+from typing import Literal, Callable
 
 from ..logger import create_logger
 
@@ -20,8 +20,8 @@ from ..helpers import get_limited_unpacker
 from ..helpers import bin_to_hex
 from ..helpers.passphrase import Passphrase, PasswordRetriesExceeded, PassphraseWrong
 from ..helpers import msgpack
-from ..helpers.manifest import Manifest
 from ..item import Key, EncryptedKey, want_bytes
+from ..manifest import Manifest
 from ..platform import SaveFile
 
 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 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 .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 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
 from .misc import ChunkIteratorFileWrapper, open_item, chunkit, iter_separated, ErrorIgnoringTextIOWrapper
 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 re
 import shlex
-import socket
 import stat
 import uuid
 from binascii import hexlify
@@ -219,7 +218,7 @@ CommentSpec = replace_placeholders
 
 
 def SortBySpec(text):
-    from .manifest import AI_HUMAN_SORT_KEYS
+    from ..manifest import AI_HUMAN_SORT_KEYS
 
     for token in text.split(","):
         if token not in AI_HUMAN_SORT_KEYS:
@@ -591,7 +590,7 @@ class ArchiveFormatter(BaseFormatter):
 
     @classmethod
     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))
         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 typing import Sequence, FrozenSet
 
-from .errors import Error
-
-from ..logger import create_logger
+from .logger import 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):
@@ -184,9 +183,9 @@ class Manifest:
 
     @classmethod
     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:
             cdata = repository.get(cls.MANIFEST_ID)
@@ -248,7 +247,7 @@ class Manifest:
         return result
 
     def write(self):
-        from ..item import ManifestItem
+        from .item import ManifestItem
 
         if self.key.tam_required:
             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 bin_to_hex
 from .helpers import secure_erase, safe_unlink
-from .helpers import Manifest
 from .helpers import msgpack
 from .locking import Lock, LockError, LockErrorT
 from .logger import create_logger
 from .lrucache import LRUCache
+from .manifest import Manifest
 from .platform import SaveFile, SyncFile, sync_dir, safe_fadvise
 from .checksums import crc32, StreamingXXH64
 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 ..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 ..helpers import Manifest
 from ..helpers import msgpack
 from ..item import Item, ArchiveItem
+from ..manifest import Manifest
 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.file_integrity import FileIntegrityError
 from ..helpers import Location, get_security_dir
-from ..helpers import Manifest, MandatoryFeatureUnsupported
 from ..helpers import EXIT_SUCCESS, EXIT_WARNING, EXIT_ERROR
 from ..helpers import bin_to_hex
 from ..helpers import msgpack
 from ..helpers import parse_storage_quota
 from ..helpers import flags_noatime, flags_normal
+from ..manifest import Manifest, MandatoryFeatureUnsupported
 from ..nanorst import RstToTextLazy, rst_to_terminal
 from ..patterns import IECommand, PatternMatcher, parse_pattern
 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 ..crypto.key import AESOCBRepoKey
 from ..hashindex import ChunkIndex, CacheSynchronizer
-from ..helpers import Manifest
+from ..manifest import Manifest
 from ..repository import Repository