repo: consolidate Repo.open logic

This commit is contained in:
Ruslan Kuprieiev
2023-05-07 04:14:25 +03:00
parent 2db07b047e
commit eb592e7e33
8 changed files with 22 additions and 19 deletions
+1 -1
View File
@@ -245,7 +245,7 @@ def main(argv=None): # noqa: C901, PLR0912, PLR0915
finally:
logger.setLevel(outer_log_level)
from dvc.external_repo import clean_repos
from dvc.repo.open_repo import clean_repos
# Remove cached repos in the end of the call, these are anonymous
# so won't be reused by any other subsequent run anyway.
+2 -11
View File
@@ -287,18 +287,9 @@ class Repo:
@staticmethod
def open(url, *args, **kwargs): # noqa: A003
if url is None:
url = os.getcwd()
from .open_repo import open_repo
if os.path.exists(url):
try:
return Repo(url, *args, **kwargs)
except NotDvcRepoError:
pass # fallthrough to external_repo
from dvc.external_repo import external_repo
return external_repo(url, *args, **kwargs)
return open_repo(url, *args, **kwargs)
@cached_property
def scm(self) -> Union["Git", "NoSCM"]:
+1 -1
View File
@@ -24,8 +24,8 @@ def get(url, path, out=None, rev=None, jobs=None, force=False):
import shortuuid
from dvc.dvcfile import is_valid_filename
from dvc.external_repo import external_repo
from dvc.fs.callbacks import Callback
from dvc.repo.open_repo import external_repo
out = resolve_output(path, out, force=force)
+14 -2
View File
@@ -13,10 +13,9 @@ from dvc.scm import CloneError, map_scm_exception
from dvc.utils import relpath
if TYPE_CHECKING:
from dvc.scm import Git
from dvc.types import StrPath
from .scm import Git
logger = logging.getLogger(__name__)
@@ -70,6 +69,19 @@ def external_repo(
_remove(path)
def open_repo(url, *args, **kwargs):
if url is None:
url = os.getcwd()
if os.path.exists(url):
try:
return Repo(url, *args, **kwargs)
except NotDvcRepoError:
pass # fallthrough to external_repo
return external_repo(url, *args, **kwargs)
def erepo_factory(url, root_dir, cache_config):
from dvc.fs import localfs
+1 -1
View File
@@ -60,7 +60,7 @@ def enable_ui():
@pytest.fixture(autouse=True)
def clean_repos():
from dvc.external_repo import clean_repos
from dvc.repo.open_repo import clean_repos
clean_repos()
+1 -1
View File
@@ -8,7 +8,7 @@ from flaky.flaky_decorator import flaky
import dvc_data
from dvc.cli import main
from dvc.exceptions import CheckoutError
from dvc.external_repo import clean_repos
from dvc.repo.open_repo import clean_repos
from dvc.stage.exceptions import StageNotFound
from dvc.testing.remote_tests import TestRemote # noqa, pylint: disable=unused-import
from dvc.utils.fs import remove
+1 -1
View File
@@ -1,7 +1,7 @@
import os
from unittest.mock import ANY
from dvc.external_repo import CLONES, external_repo
from dvc.repo.open_repo import CLONES, external_repo
from dvc.scm import Git
from dvc.testing.tmp_dir import make_subrepo
from dvc.utils import relpath
@@ -3,7 +3,7 @@ from unittest.mock import call
import pytest
from dvc.external_repo import external_repo
from dvc.repo.open_repo import external_repo
from dvc.testing.tmp_dir import make_subrepo