mirror of
https://github.com/borgbackup/borg.git
synced 2026-06-09 17:00:11 -04:00
legacy: lazy-import legacy classes inside v1 branches only, refs #9556
This commit is contained in:
parent
e2a651c684
commit
9fa3b5f61d
3 changed files with 27 additions and 11 deletions
|
|
@ -13,12 +13,9 @@ from ..helpers.argparsing import SUPPRESS, PositiveInt
|
|||
from ..helpers.nanorst import rst_to_terminal
|
||||
from ..manifest import Manifest, AI_HUMAN_SORT_KEYS
|
||||
from ..patterns import PatternMatcher
|
||||
from ..legacy.remote import LegacyRemoteRepository
|
||||
from ..remote import RemoteRepository
|
||||
from ..legacy.repository import LegacyRepository
|
||||
from ..repository import Repository
|
||||
from ..repoobj import RepoObj
|
||||
from ..legacy.repoobj import RepoObj1
|
||||
from ..patterns import (
|
||||
ArgparsePatternAction,
|
||||
ArgparseExcludeFileAction,
|
||||
|
|
@ -34,7 +31,12 @@ logger = create_logger(__name__)
|
|||
|
||||
def get_repository(location, *, create, exclusive, lock_wait, lock, args, v1_or_v2):
|
||||
if location.proto in ("ssh", "socket"):
|
||||
RemoteRepoCls = LegacyRemoteRepository if v1_or_v2 else RemoteRepository
|
||||
if v1_or_v2:
|
||||
from ..legacy.remote import LegacyRemoteRepository
|
||||
|
||||
RemoteRepoCls = LegacyRemoteRepository
|
||||
else:
|
||||
RemoteRepoCls = RemoteRepository
|
||||
repository = RemoteRepoCls(
|
||||
location, create=create, exclusive=exclusive, lock_wait=lock_wait, lock=lock, args=args
|
||||
)
|
||||
|
|
@ -45,7 +47,12 @@ def get_repository(location, *, create, exclusive, lock_wait, lock, args, v1_or_
|
|||
repository = Repository(location, create=create, exclusive=exclusive, lock_wait=lock_wait, lock=lock)
|
||||
|
||||
else:
|
||||
RepoCls = LegacyRepository if v1_or_v2 else Repository
|
||||
if v1_or_v2:
|
||||
from ..legacy.repository import LegacyRepository
|
||||
|
||||
RepoCls = LegacyRepository
|
||||
else:
|
||||
RepoCls = Repository
|
||||
repository = RepoCls(location.path, create=create, exclusive=exclusive, lock_wait=lock_wait, lock=lock)
|
||||
return repository
|
||||
|
||||
|
|
@ -195,9 +202,13 @@ def with_other_repository(manifest=False, cache=False, compatibility=None):
|
|||
)
|
||||
kwargs["other_repository"] = repository
|
||||
if manifest or cache:
|
||||
manifest_ = Manifest.load(
|
||||
repository, compatibility, other=True, ro_cls=RepoObj if repository.version > 1 else RepoObj1
|
||||
)
|
||||
if repository.version > 1:
|
||||
ro_cls = RepoObj
|
||||
else:
|
||||
from ..legacy.repoobj import RepoObj1
|
||||
|
||||
ro_cls = RepoObj1
|
||||
manifest_ = Manifest.load(repository, compatibility, other=True, ro_cls=ro_cls)
|
||||
assert_secure(repository, manifest_)
|
||||
if manifest:
|
||||
kwargs["other_manifest"] = manifest_
|
||||
|
|
|
|||
|
|
@ -10,7 +10,6 @@ from ..helpers import ChunkerParams, ChunkIteratorFileWrapper, CompressionSpec
|
|||
from ..helpers.argparsing import ArgumentParser, ArgumentTypeError
|
||||
from ..item import ChunkListEntry
|
||||
from ..manifest import Manifest
|
||||
from ..legacy.repository import LegacyRepository
|
||||
from ..repository import Repository
|
||||
|
||||
from ..logger import create_logger
|
||||
|
|
@ -35,6 +34,8 @@ def transfer_chunks(
|
|||
|
||||
If chunker_params is provided, the chunks will be re-chunked using the specified parameters.
|
||||
"""
|
||||
from ..legacy.repository import LegacyRepository
|
||||
|
||||
transfer = 0
|
||||
present = 0
|
||||
chunks = []
|
||||
|
|
|
|||
|
|
@ -36,7 +36,6 @@ from .fslocking import LockTimeout, NotLocked, NotMyLock, LockFailed
|
|||
from .logger import create_logger, borg_serve_log_queue
|
||||
from .manifest import NoManifestError
|
||||
from .helpers import msgpack
|
||||
from .legacy.repository import LegacyRepository
|
||||
from .repository import Repository, StoreObjectNotFound
|
||||
from .version import parse_version, format_version
|
||||
from .helpers.datastruct import EfficientCollectionQueue
|
||||
|
|
@ -358,7 +357,12 @@ class RepositoryServer: # pragma: no cover
|
|||
return path
|
||||
|
||||
def open(self, path, create=False, lock_wait=None, lock=True, exclusive=None, v1_or_v2=False):
|
||||
self.RepoCls = LegacyRepository if v1_or_v2 else Repository
|
||||
if v1_or_v2:
|
||||
from .legacy.repository import LegacyRepository
|
||||
|
||||
self.RepoCls = LegacyRepository
|
||||
else:
|
||||
self.RepoCls = Repository
|
||||
self.rpc_methods = self._legacy_rpc_methods if v1_or_v2 else self._rpc_methods
|
||||
logging.debug("Resolving repository path %r", path)
|
||||
path = self._resolve_path(path)
|
||||
|
|
|
|||
Loading…
Reference in a new issue