refactor: dvc/dependency class names unification (#3688)

This commit is contained in:
nik123
2020-04-28 12:49:09 +03:00
committed by GitHub
parent fefbcc0b4c
commit e03128a8de
22 changed files with 98 additions and 98 deletions
+34 -34
View File
@@ -2,38 +2,38 @@ from urllib.parse import urlparse
from collections import defaultdict
import dvc.output as output
from dvc.dependency.gs import DependencyGS
from dvc.dependency.hdfs import DependencyHDFS
from dvc.dependency.http import DependencyHTTP
from dvc.dependency.https import DependencyHTTPS
from dvc.dependency.local import DependencyLOCAL
from dvc.dependency.s3 import DependencyS3
from dvc.dependency.ssh import DependencySSH
from dvc.dependency.param import DependencyPARAMS
from dvc.dependency.gs import GSDependency
from dvc.dependency.hdfs import HDFSDependency
from dvc.dependency.http import HTTPDependency
from dvc.dependency.https import HTTPSDependency
from dvc.dependency.local import LocalDependency
from dvc.dependency.s3 import S3Dependency
from dvc.dependency.ssh import SSHDependency
from dvc.dependency.param import ParamsDependency
from dvc.output.base import OutputBase
from dvc.remote import Remote
from dvc.scheme import Schemes
from .repo import DependencyREPO
from .repo import RepoDependency
DEPS = [
DependencyGS,
DependencyHDFS,
DependencyHTTP,
DependencyHTTPS,
DependencyS3,
DependencySSH,
# NOTE: DependencyLOCAL is the default choice
GSDependency,
HDFSDependency,
HTTPDependency,
HTTPSDependency,
S3Dependency,
SSHDependency,
# NOTE: LocalDependency is the default choice
]
DEP_MAP = {
Schemes.LOCAL: DependencyLOCAL,
Schemes.SSH: DependencySSH,
Schemes.S3: DependencyS3,
Schemes.GS: DependencyGS,
Schemes.HDFS: DependencyHDFS,
Schemes.HTTP: DependencyHTTP,
Schemes.HTTPS: DependencyHTTPS,
Schemes.LOCAL: LocalDependency,
Schemes.SSH: SSHDependency,
Schemes.S3: S3Dependency,
Schemes.GS: GSDependency,
Schemes.HDFS: HDFSDependency,
Schemes.HTTP: HTTPDependency,
Schemes.HTTPS: HTTPSDependency,
}
@@ -44,8 +44,8 @@ DEP_MAP = {
SCHEMA = output.SCHEMA.copy()
del SCHEMA[OutputBase.PARAM_CACHE]
del SCHEMA[OutputBase.PARAM_METRIC]
SCHEMA.update(DependencyREPO.REPO_SCHEMA)
SCHEMA.update(DependencyPARAMS.PARAM_SCHEMA)
SCHEMA.update(RepoDependency.REPO_SCHEMA)
SCHEMA.update(ParamsDependency.PARAM_SCHEMA)
def _get(stage, p, info):
@@ -54,18 +54,18 @@ def _get(stage, p, info):
remote = Remote(stage.repo, name=parsed.netloc)
return DEP_MAP[remote.scheme](stage, p, info, remote=remote)
if info and info.get(DependencyREPO.PARAM_REPO):
repo = info.pop(DependencyREPO.PARAM_REPO)
return DependencyREPO(repo, stage, p, info)
if info and info.get(RepoDependency.PARAM_REPO):
repo = info.pop(RepoDependency.PARAM_REPO)
return RepoDependency(repo, stage, p, info)
if info and info.get(DependencyPARAMS.PARAM_PARAMS):
params = info.pop(DependencyPARAMS.PARAM_PARAMS)
return DependencyPARAMS(stage, p, params)
if info and info.get(ParamsDependency.PARAM_PARAMS):
params = info.pop(ParamsDependency.PARAM_PARAMS)
return ParamsDependency(stage, p, params)
for d in DEPS:
if d.supported(p):
return d(stage, p, info)
return DependencyLOCAL(stage, p, info)
return LocalDependency(stage, p, info)
def loadd_from(stage, d_list):
@@ -79,7 +79,7 @@ def loadd_from(stage, d_list):
def loads_from(stage, s_list, erepo=None):
ret = []
for s in s_list:
info = {DependencyREPO.PARAM_REPO: erepo} if erepo else {}
info = {RepoDependency.PARAM_REPO: erepo} if erepo else {}
ret.append(_get(stage, s, info))
return ret
@@ -102,7 +102,7 @@ def loads_params(stage, s_list):
d_list.append(
{
OutputBase.PARAM_PATH: path,
DependencyPARAMS.PARAM_PARAMS: params,
ParamsDependency.PARAM_PARAMS: params,
}
)
+1 -1
View File
@@ -20,7 +20,7 @@ class DependencyIsStageFileError(DvcException):
)
class DependencyBase(object):
class BaseDependency(object):
IS_DEPENDENCY = True
DoesNotExistError = DependencyDoesNotExistError
+2 -2
View File
@@ -1,6 +1,6 @@
from dvc.dependency.base import DependencyBase
from dvc.dependency.base import BaseDependency
from dvc.output.gs import OutputGS
class DependencyGS(DependencyBase, OutputGS):
class GSDependency(BaseDependency, OutputGS):
pass
+2 -2
View File
@@ -1,6 +1,6 @@
from dvc.dependency.base import DependencyBase
from dvc.dependency.base import BaseDependency
from dvc.output.hdfs import OutputHDFS
class DependencyHDFS(DependencyBase, OutputHDFS):
class HDFSDependency(BaseDependency, OutputHDFS):
pass
+2 -2
View File
@@ -1,7 +1,7 @@
from dvc.dependency.base import DependencyBase
from dvc.dependency.base import BaseDependency
from dvc.output.base import OutputBase
from dvc.remote.http import HTTPRemote
class DependencyHTTP(DependencyBase, OutputBase):
class HTTPDependency(BaseDependency, OutputBase):
REMOTE = HTTPRemote
+2 -2
View File
@@ -1,6 +1,6 @@
from .http import DependencyHTTP
from .http import HTTPDependency
from dvc.remote.https import HTTPSRemote
class DependencyHTTPS(DependencyHTTP):
class HTTPSDependency(HTTPDependency):
REMOTE = HTTPSRemote
+2 -2
View File
@@ -1,6 +1,6 @@
from dvc.dependency.base import DependencyBase
from dvc.dependency.base import BaseDependency
from dvc.output.local import OutputLOCAL
class DependencyLOCAL(DependencyBase, OutputLOCAL):
class LocalDependency(BaseDependency, OutputLOCAL):
pass
+2 -2
View File
@@ -6,7 +6,7 @@ import dpath.util
from voluptuous import Any
from dvc.compat import fspath_py35
from dvc.dependency.local import DependencyLOCAL
from dvc.dependency.local import LocalDependency
from dvc.exceptions import DvcException
@@ -18,7 +18,7 @@ class BadParamFileError(DvcException):
pass
class DependencyPARAMS(DependencyLOCAL):
class ParamsDependency(LocalDependency):
PARAM_PARAMS = "params"
PARAM_SCHEMA = {PARAM_PARAMS: Any(dict, list, None)}
DEFAULT_PARAMS_FILE = "params.yaml"
+2 -2
View File
@@ -2,12 +2,12 @@ import os
from voluptuous import Required
from .local import DependencyLOCAL
from .local import LocalDependency
from dvc.exceptions import OutputNotFoundError
from dvc.path_info import PathInfo
class DependencyREPO(DependencyLOCAL):
class RepoDependency(LocalDependency):
PARAM_REPO = "repo"
PARAM_URL = "url"
PARAM_REV = "rev"
+2 -2
View File
@@ -1,6 +1,6 @@
from dvc.dependency.base import DependencyBase
from dvc.dependency.base import BaseDependency
from dvc.output.s3 import OutputS3
class DependencyS3(DependencyBase, OutputS3):
class S3Dependency(BaseDependency, OutputS3):
pass
+2 -2
View File
@@ -1,6 +1,6 @@
from dvc.dependency.base import DependencyBase
from dvc.dependency.base import BaseDependency
from dvc.output.ssh import OutputSSH
class DependencySSH(DependencyBase, OutputSSH):
class SSHDependency(BaseDependency, OutputSSH):
pass
+3 -3
View File
@@ -5,7 +5,7 @@ from dvc.repo import locked
from dvc.path_info import PathInfo
from dvc.compat import fspath_py35
from dvc.exceptions import DvcException
from dvc.dependency.param import DependencyPARAMS
from dvc.dependency.param import ParamsDependency
logger = logging.getLogger(__name__)
@@ -17,10 +17,10 @@ class NoParamsError(DvcException):
def _collect_configs(repo):
configs = set()
configs.add(PathInfo(repo.root_dir) / DependencyPARAMS.DEFAULT_PARAMS_FILE)
configs.add(PathInfo(repo.root_dir) / ParamsDependency.DEFAULT_PARAMS_FILE)
for stage in repo.stages:
for dep in stage.deps:
if not isinstance(dep, DependencyPARAMS):
if not isinstance(dep, ParamsDependency):
continue
configs.add(dep.path_info)
+1 -1
View File
@@ -194,7 +194,7 @@ class Stage(params.StageParams):
if not self.is_import:
return False
return isinstance(self.deps[0], dependency.DependencyREPO)
return isinstance(self.deps[0], dependency.RepoDependency)
def _changed_deps(self):
if self.locked:
+3 -3
View File
@@ -6,7 +6,7 @@ from functools import wraps
def rwlocked(call, read=None, write=None):
import sys
from dvc.rwlock import rwlock
from dvc.dependency.repo import DependencyREPO
from dvc.dependency.repo import RepoDependency
if read is None:
read = []
@@ -23,9 +23,9 @@ def rwlocked(call, read=None, write=None):
item.path_info
for attr in names
for item in getattr(stage, attr)
# There is no need to lock DependencyREPO deps, as there is no
# There is no need to lock RepoDependency deps, as there is no
# corresponding OutputREPO, so we can't even write it.
if not isinstance(item, DependencyREPO)
if not isinstance(item, RepoDependency)
]
cmd = " ".join(sys.argv)
+4 -4
View File
@@ -1,7 +1,7 @@
from dvc.dependency.gs import DependencyGS
from tests.unit.dependency.test_local import TestDependencyLOCAL
from dvc.dependency.gs import GSDependency
from tests.unit.dependency.test_local import TestLocalDependency
class TestDependencyGS(TestDependencyLOCAL):
class TestGSDependency(TestLocalDependency):
def _get_cls(self):
return DependencyGS
return GSDependency
+4 -4
View File
@@ -1,7 +1,7 @@
from dvc.dependency.hdfs import DependencyHDFS
from tests.unit.dependency.test_local import TestDependencyLOCAL
from dvc.dependency.hdfs import HDFSDependency
from tests.unit.dependency.test_local import TestLocalDependency
class TestDependencyHDFS(TestDependencyLOCAL):
class TestHDFSDependency(TestLocalDependency):
def _get_cls(self):
return DependencyHDFS
return HDFSDependency
+4 -4
View File
@@ -1,7 +1,7 @@
from dvc.dependency.http import DependencyHTTP
from tests.unit.dependency.test_local import TestDependencyLOCAL
from dvc.dependency.http import HTTPDependency
from tests.unit.dependency.test_local import TestLocalDependency
class TestDependencyHTTP(TestDependencyLOCAL):
class TestHTTPDependency(TestLocalDependency):
def _get_cls(self):
return DependencyHTTP
return HTTPDependency
+3 -3
View File
@@ -1,13 +1,13 @@
import mock
from dvc.dependency import DependencyLOCAL
from dvc.dependency import LocalDependency
from dvc.stage import Stage
from tests.basic_env import TestDvc
class TestDependencyLOCAL(TestDvc):
class TestLocalDependency(TestDvc):
def _get_cls(self):
return DependencyLOCAL
return LocalDependency
def _get_dependency(self):
stage = Stage(self.dvc)
+13 -13
View File
@@ -2,7 +2,7 @@ import yaml
import pytest
from dvc.dependency import DependencyPARAMS, loads_params, loadd_from
from dvc.dependency import ParamsDependency, loads_params, loadd_from
from dvc.dependency.param import BadParamFileError, MissingParamsError
from dvc.stage import Stage
@@ -20,12 +20,12 @@ def test_loads_params(dvc):
deps = loads_params(stage, ["foo", "bar,baz", "a_file:qux"])
assert len(deps) == 2
assert isinstance(deps[0], DependencyPARAMS)
assert deps[0].def_path == DependencyPARAMS.DEFAULT_PARAMS_FILE
assert isinstance(deps[0], ParamsDependency)
assert deps[0].def_path == ParamsDependency.DEFAULT_PARAMS_FILE
assert deps[0].params == ["foo", "bar", "baz"]
assert deps[0].info == {}
assert isinstance(deps[1], DependencyPARAMS)
assert isinstance(deps[1], ParamsDependency)
assert deps[1].def_path == "a_file"
assert deps[1].params == ["qux"]
assert deps[1].info == {}
@@ -35,14 +35,14 @@ def test_loadd_from(dvc):
stage = Stage(dvc)
deps = loadd_from(stage, [{"params": PARAMS}])
assert len(deps) == 1
assert isinstance(deps[0], DependencyPARAMS)
assert deps[0].def_path == DependencyPARAMS.DEFAULT_PARAMS_FILE
assert isinstance(deps[0], ParamsDependency)
assert deps[0].def_path == ParamsDependency.DEFAULT_PARAMS_FILE
assert deps[0].params == list(PARAMS.keys())
assert deps[0].info == PARAMS
def test_dumpd_with_info(dvc):
dep = DependencyPARAMS(Stage(dvc), None, PARAMS)
dep = ParamsDependency(Stage(dvc), None, PARAMS)
assert dep.dumpd() == {
"path": "params.yaml",
"params": PARAMS,
@@ -50,7 +50,7 @@ def test_dumpd_with_info(dvc):
def test_dumpd_without_info(dvc):
dep = DependencyPARAMS(Stage(dvc), None, list(PARAMS.keys()))
dep = ParamsDependency(Stage(dvc), None, list(PARAMS.keys()))
assert dep.dumpd() == {
"path": "params.yaml",
"params": list(PARAMS.keys()),
@@ -58,13 +58,13 @@ def test_dumpd_without_info(dvc):
def test_read_params_nonexistent_file(dvc):
dep = DependencyPARAMS(Stage(dvc), None, ["foo"])
dep = ParamsDependency(Stage(dvc), None, ["foo"])
assert dep.read_params() == {}
def test_read_params_unsupported_format(tmp_dir, dvc):
tmp_dir.gen("params.yaml", b"\0\1\2\3\4\5\6\7")
dep = DependencyPARAMS(Stage(dvc), None, ["foo"])
dep = ParamsDependency(Stage(dvc), None, ["foo"])
with pytest.raises(BadParamFileError):
dep.read_params()
@@ -73,18 +73,18 @@ def test_read_params_nested(tmp_dir, dvc):
tmp_dir.gen(
"params.yaml", yaml.dump({"some": {"path": {"foo": ["val1", "val2"]}}})
)
dep = DependencyPARAMS(Stage(dvc), None, ["some.path.foo"])
dep = ParamsDependency(Stage(dvc), None, ["some.path.foo"])
assert dep.read_params() == {"some.path.foo": ["val1", "val2"]}
def test_save_info_missing_config(dvc):
dep = DependencyPARAMS(Stage(dvc), None, ["foo"])
dep = ParamsDependency(Stage(dvc), None, ["foo"])
with pytest.raises(MissingParamsError):
dep.save_info()
def test_save_info_missing_param(tmp_dir, dvc):
tmp_dir.gen("params.yaml", "bar: baz")
dep = DependencyPARAMS(Stage(dvc), None, ["foo"])
dep = ParamsDependency(Stage(dvc), None, ["foo"])
with pytest.raises(MissingParamsError):
dep.save_info()
+4 -4
View File
@@ -1,7 +1,7 @@
from dvc.dependency.s3 import DependencyS3
from tests.unit.dependency.test_local import TestDependencyLOCAL
from dvc.dependency.s3 import S3Dependency
from tests.unit.dependency.test_local import TestLocalDependency
class TestDependencyS3(TestDependencyLOCAL):
class TestS3Dependency(TestLocalDependency):
def _get_cls(self):
return DependencyS3
return S3Dependency
+4 -4
View File
@@ -1,7 +1,7 @@
from dvc.dependency.ssh import DependencySSH
from tests.unit.dependency.test_local import TestDependencyLOCAL
from dvc.dependency.ssh import SSHDependency
from tests.unit.dependency.test_local import TestLocalDependency
class TestDependencySSH(TestDependencyLOCAL):
class TestSSHDependency(TestLocalDependency):
def _get_cls(self):
return DependencySSH
return SSHDependency
+2 -2
View File
@@ -6,7 +6,7 @@ from unittest import TestCase
import mock
import pytest
from dvc.dependency.repo import DependencyREPO
from dvc.dependency.repo import RepoDependency
from dvc.stage import Stage
from dvc.stage.exceptions import StageUpdateError
@@ -60,7 +60,7 @@ class TestPathConversion(TestCase):
def test_stage_update(mocker):
dep = DependencyREPO({"url": "example.com"}, None, "dep_path")
dep = RepoDependency({"url": "example.com"}, None, "dep_path")
mocker.patch.object(dep, "update", return_value=None)
stage = Stage(None, "path", deps=[dep])