refactor: dvc/output class names unification (#3695)

This commit is contained in:
nik123
2020-04-28 22:29:32 +03:00
committed by GitHub
parent 4fdf7ca7fd
commit 1e65098819
24 changed files with 103 additions and 103 deletions
+5 -5
View File
@@ -10,7 +10,7 @@ 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.output.base import BaseOutput
from dvc.remote import Remote
from dvc.scheme import Schemes
from .repo import RepoDependency
@@ -42,8 +42,8 @@ DEP_MAP = {
# cached, see -o and -O flags for `dvc run`) and 'metric' (whether or not
# output is a metric file and how to parse it, see `-M` flag for `dvc run`).
SCHEMA = output.SCHEMA.copy()
del SCHEMA[OutputBase.PARAM_CACHE]
del SCHEMA[OutputBase.PARAM_METRIC]
del SCHEMA[BaseOutput.PARAM_CACHE]
del SCHEMA[BaseOutput.PARAM_METRIC]
SCHEMA.update(RepoDependency.REPO_SCHEMA)
SCHEMA.update(ParamsDependency.PARAM_SCHEMA)
@@ -71,7 +71,7 @@ def _get(stage, p, info):
def loadd_from(stage, d_list):
ret = []
for d in d_list:
p = d.pop(OutputBase.PARAM_PATH, None)
p = d.pop(BaseOutput.PARAM_PATH, None)
ret.append(_get(stage, p, d))
return ret
@@ -101,7 +101,7 @@ def loads_params(stage, s_list):
for path, params in params_by_path.items():
d_list.append(
{
OutputBase.PARAM_PATH: path,
BaseOutput.PARAM_PATH: path,
ParamsDependency.PARAM_PARAMS: params,
}
)
+2 -2
View File
@@ -1,6 +1,6 @@
from dvc.dependency.base import BaseDependency
from dvc.output.gs import OutputGS
from dvc.output.gs import GSOutput
class GSDependency(BaseDependency, OutputGS):
class GSDependency(BaseDependency, GSOutput):
pass
+2 -2
View File
@@ -1,6 +1,6 @@
from dvc.dependency.base import BaseDependency
from dvc.output.hdfs import OutputHDFS
from dvc.output.hdfs import HDFSOutput
class HDFSDependency(BaseDependency, OutputHDFS):
class HDFSDependency(BaseDependency, HDFSOutput):
pass
+2 -2
View File
@@ -1,7 +1,7 @@
from dvc.dependency.base import BaseDependency
from dvc.output.base import OutputBase
from dvc.output.base import BaseOutput
from dvc.remote.http import HTTPRemote
class HTTPDependency(BaseDependency, OutputBase):
class HTTPDependency(BaseDependency, BaseOutput):
REMOTE = HTTPRemote
+2 -2
View File
@@ -1,6 +1,6 @@
from dvc.dependency.base import BaseDependency
from dvc.output.local import OutputLOCAL
from dvc.output.local import LocalOutput
class LocalDependency(BaseDependency, OutputLOCAL):
class LocalDependency(BaseDependency, LocalOutput):
pass
+2 -2
View File
@@ -1,6 +1,6 @@
from dvc.dependency.base import BaseDependency
from dvc.output.s3 import OutputS3
from dvc.output.s3 import S3Output
class S3Dependency(BaseDependency, OutputS3):
class S3Dependency(BaseDependency, S3Output):
pass
+2 -2
View File
@@ -1,6 +1,6 @@
from dvc.dependency.base import BaseDependency
from dvc.output.ssh import OutputSSH
from dvc.output.ssh import SSHOutput
class SSHDependency(BaseDependency, OutputSSH):
class SSHDependency(BaseDependency, SSHOutput):
pass
+27 -27
View File
@@ -1,12 +1,12 @@
from urllib.parse import urlparse
from voluptuous import Any, Required, Lower, Length, Coerce, And, SetTo
from dvc.output.base import OutputBase
from dvc.output.gs import OutputGS
from dvc.output.hdfs import OutputHDFS
from dvc.output.local import OutputLOCAL
from dvc.output.s3 import OutputS3
from dvc.output.ssh import OutputSSH
from dvc.output.base import BaseOutput
from dvc.output.gs import GSOutput
from dvc.output.hdfs import HDFSOutput
from dvc.output.local import LocalOutput
from dvc.output.s3 import S3Output
from dvc.output.ssh import SSHOutput
from dvc.remote import Remote
from dvc.remote.hdfs import HDFSRemote
from dvc.remote.local import LocalRemote
@@ -14,19 +14,19 @@ from dvc.remote.s3 import S3Remote
from dvc.scheme import Schemes
OUTS = [
OutputHDFS,
OutputS3,
OutputGS,
OutputSSH,
# NOTE: OutputLOCAL is the default choice
HDFSOutput,
S3Output,
GSOutput,
SSHOutput,
# NOTE: LocalOutput is the default choice
]
OUTS_MAP = {
Schemes.HDFS: OutputHDFS,
Schemes.S3: OutputS3,
Schemes.GS: OutputGS,
Schemes.SSH: OutputSSH,
Schemes.LOCAL: OutputLOCAL,
Schemes.HDFS: HDFSOutput,
Schemes.S3: S3Output,
Schemes.GS: GSOutput,
Schemes.SSH: SSHOutput,
Schemes.LOCAL: LocalOutput,
}
CHECKSUM_SCHEMA = Any(
@@ -52,11 +52,11 @@ CHECKSUMS_SCHEMA = {
TAGS_SCHEMA = {str: CHECKSUMS_SCHEMA}
SCHEMA = CHECKSUMS_SCHEMA.copy()
SCHEMA[Required(OutputBase.PARAM_PATH)] = str
SCHEMA[OutputBase.PARAM_CACHE] = bool
SCHEMA[OutputBase.PARAM_METRIC] = OutputBase.METRIC_SCHEMA
SCHEMA[OutputBase.PARAM_TAGS] = TAGS_SCHEMA
SCHEMA[OutputBase.PARAM_PERSIST] = bool
SCHEMA[Required(BaseOutput.PARAM_PATH)] = str
SCHEMA[BaseOutput.PARAM_CACHE] = bool
SCHEMA[BaseOutput.PARAM_METRIC] = BaseOutput.METRIC_SCHEMA
SCHEMA[BaseOutput.PARAM_TAGS] = TAGS_SCHEMA
SCHEMA[BaseOutput.PARAM_PERSIST] = bool
def _get(stage, p, info, cache, metric, persist=False, tags=None):
@@ -87,7 +87,7 @@ def _get(stage, p, info, cache, metric, persist=False, tags=None):
persist=persist,
tags=tags,
)
return OutputLOCAL(
return LocalOutput(
stage,
p,
info,
@@ -102,11 +102,11 @@ def _get(stage, p, info, cache, metric, persist=False, tags=None):
def loadd_from(stage, d_list):
ret = []
for d in d_list:
p = d.pop(OutputBase.PARAM_PATH)
cache = d.pop(OutputBase.PARAM_CACHE, True)
metric = d.pop(OutputBase.PARAM_METRIC, False)
persist = d.pop(OutputBase.PARAM_PERSIST, False)
tags = d.pop(OutputBase.PARAM_TAGS, None)
p = d.pop(BaseOutput.PARAM_PATH)
cache = d.pop(BaseOutput.PARAM_CACHE, True)
metric = d.pop(BaseOutput.PARAM_METRIC, False)
persist = d.pop(BaseOutput.PARAM_PERSIST, False)
tags = d.pop(BaseOutput.PARAM_TAGS, None)
ret.append(
_get(
stage,
+1 -1
View File
@@ -38,7 +38,7 @@ class OutputIsStageFileError(DvcException):
super().__init__("Stage file '{}' cannot be an output.".format(path))
class OutputBase(object):
class BaseOutput(object):
IS_DEPENDENCY = False
REMOTE = BaseRemote
+2 -2
View File
@@ -1,6 +1,6 @@
from dvc.output.s3 import OutputS3
from dvc.output.s3 import S3Output
from dvc.remote.gs import GSRemote
class OutputGS(OutputS3):
class GSOutput(S3Output):
REMOTE = GSRemote
+2 -2
View File
@@ -1,6 +1,6 @@
from dvc.output.base import OutputBase
from dvc.output.base import BaseOutput
from dvc.remote.hdfs import HDFSRemote
class OutputHDFS(OutputBase):
class HDFSOutput(BaseOutput):
REMOTE = HDFSRemote
+2 -2
View File
@@ -4,7 +4,7 @@ from urllib.parse import urlparse
from dvc.exceptions import DvcException
from dvc.istextfile import istextfile
from dvc.output.base import OutputBase
from dvc.output.base import BaseOutput
from dvc.remote.local import LocalRemote
from dvc.utils import relpath
from dvc.compat import fspath_py35
@@ -14,7 +14,7 @@ from dvc.utils.fs import path_isin
logger = logging.getLogger(__name__)
class OutputLOCAL(OutputBase):
class LocalOutput(BaseOutput):
REMOTE = LocalRemote
sep = os.sep
+2 -2
View File
@@ -1,6 +1,6 @@
from dvc.output.base import OutputBase
from dvc.output.base import BaseOutput
from dvc.remote.s3 import S3Remote
class OutputS3(OutputBase):
class S3Output(BaseOutput):
REMOTE = S3Remote
+2 -2
View File
@@ -1,6 +1,6 @@
from dvc.output.base import OutputBase
from dvc.output.base import BaseOutput
from dvc.remote.ssh import SSHRemote
class OutputSSH(OutputBase):
class SSHOutput(BaseOutput):
REMOTE = SSHRemote
+5 -5
View File
@@ -455,7 +455,7 @@ class Stage(params.StageParams):
}
def _compute_md5(self):
from dvc.output.base import OutputBase
from dvc.output.base import BaseOutput
d = self.dumpd()
@@ -471,15 +471,15 @@ class Stage(params.StageParams):
del d[self.PARAM_WDIR]
# NOTE: excluding parameters that don't affect the state of the
# pipeline. Not excluding `OutputLOCAL.PARAM_CACHE`, because if
# pipeline. Not excluding `LocalOutput.PARAM_CACHE`, because if
# it has changed, we might not have that output in our cache.
m = dict_md5(
d,
exclude=[
self.PARAM_LOCKED,
OutputBase.PARAM_METRIC,
OutputBase.PARAM_TAGS,
OutputBase.PARAM_PERSIST,
BaseOutput.PARAM_METRIC,
BaseOutput.PARAM_TAGS,
BaseOutput.PARAM_PERSIST,
],
)
logger.debug("Computed {} md5: '{}'".format(self, m))
+3 -3
View File
@@ -23,7 +23,7 @@ from dvc.exceptions import CyclicGraphError
from dvc.exceptions import ReproductionError
from dvc.exceptions import StagePathAsOutputError
from dvc.main import main
from dvc.output.base import OutputBase
from dvc.output.base import BaseOutput
from dvc.path_info import URLInfo
from dvc.remote.local import LocalRemote
from dvc.repo import Repo as DvcRepo
@@ -1341,9 +1341,9 @@ class TestReproAlreadyCached(TestRepro):
)
patch_checkout = patch.object(
OutputBase,
BaseOutput,
"checkout",
side_effect=OutputBase.checkout,
side_effect=BaseOutput.checkout,
autospec=True,
)
+2 -2
View File
@@ -16,7 +16,7 @@ from dvc.exceptions import OverlappingOutputPathsError
from dvc.exceptions import StagePathAsOutputError
from dvc.dvcfile import DVC_FILE_SUFFIX
from dvc.main import main
from dvc.output import OutputBase
from dvc.output import BaseOutput
from dvc.output.base import OutputIsStageFileError
from dvc.repo import Repo as DvcRepo
from dvc.stage import Stage
@@ -667,7 +667,7 @@ class TestRunPersist(TestDvc):
def stage_should_contain_persist_flag(self, stage_file):
stage_file_content = load_stage_file(stage_file)
self.assertEqual(
True, stage_file_content["outs"][0][OutputBase.PARAM_PERSIST]
True, stage_file_content["outs"][0][BaseOutput.PARAM_PERSIST]
)
def should_append_upon_repro(self, file, stage_file):
+6 -6
View File
@@ -3,7 +3,7 @@ import tempfile
import pytest
from dvc.main import main
from dvc.output.local import OutputLOCAL
from dvc.output.local import LocalOutput
from dvc.remote.local import LocalRemote
from dvc.repo import Repo
from dvc.stage import Stage
@@ -54,15 +54,15 @@ def test_empty_list():
def test_list():
lst = [
{OutputLOCAL.PARAM_PATH: "foo", LocalRemote.PARAM_CHECKSUM: "123"},
{OutputLOCAL.PARAM_PATH: "bar", LocalRemote.PARAM_CHECKSUM: None},
{OutputLOCAL.PARAM_PATH: "baz"},
{LocalOutput.PARAM_PATH: "foo", LocalRemote.PARAM_CHECKSUM: "123"},
{LocalOutput.PARAM_PATH: "bar", LocalRemote.PARAM_CHECKSUM: None},
{LocalOutput.PARAM_PATH: "baz"},
]
d = {Stage.PARAM_DEPS: lst}
SingleStageFile.validate(d)
lst[0][OutputLOCAL.PARAM_CACHE] = True
lst[1][OutputLOCAL.PARAM_CACHE] = False
lst[0][LocalOutput.PARAM_CACHE] = True
lst[1][LocalOutput.PARAM_CACHE] = False
d = {Stage.PARAM_OUTS: lst}
SingleStageFile.validate(d)
+4 -4
View File
@@ -1,7 +1,7 @@
from dvc.output.gs import OutputGS
from tests.unit.output.test_local import TestOutputLOCAL
from dvc.output.gs import GSOutput
from tests.unit.output.test_local import TestLocalOutput
class TestOutputGS(TestOutputLOCAL):
class TestGSOutput(TestLocalOutput):
def _get_cls(self):
return OutputGS
return GSOutput
+4 -4
View File
@@ -1,7 +1,7 @@
from dvc.output.hdfs import OutputHDFS
from tests.unit.output.test_local import TestOutputLOCAL
from dvc.output.hdfs import HDFSOutput
from tests.unit.output.test_local import TestLocalOutput
class TestOutputHDFS(TestOutputLOCAL):
class TestHDFSOutput(TestLocalOutput):
def _get_cls(self):
return OutputHDFS
return HDFSOutput
+12 -12
View File
@@ -1,16 +1,16 @@
import os
from mock import patch
from dvc.output import OutputLOCAL
from dvc.output import LocalOutput
from dvc.remote.local import LocalRemote
from dvc.stage import Stage
from dvc.utils import relpath
from tests.basic_env import TestDvc
class TestOutputLOCAL(TestDvc):
class TestLocalOutput(TestDvc):
def _get_cls(self):
return OutputLOCAL
return LocalOutput
def _get_output(self):
stage = Stage(self.dvc)
@@ -25,19 +25,19 @@ class TestOutputLOCAL(TestDvc):
def test_str_workdir_outside_repo(erepo_dir):
stage = Stage(erepo_dir.dvc)
output = OutputLOCAL(stage, "path", cache=False)
output = LocalOutput(stage, "path", cache=False)
assert relpath("path", erepo_dir.dvc.root_dir) == str(output)
def test_str_workdir_inside_repo(dvc):
stage = Stage(dvc)
output = OutputLOCAL(stage, "path", cache=False)
output = LocalOutput(stage, "path", cache=False)
assert "path" == str(output)
stage = Stage(dvc, wdir="some_folder")
output = OutputLOCAL(stage, "path", cache=False)
output = LocalOutput(stage, "path", cache=False)
assert os.path.join("some_folder", "path") == str(output)
@@ -47,7 +47,7 @@ def test_str_on_local_absolute_path(dvc):
rel_path = os.path.join("path", "to", "file")
abs_path = os.path.abspath(rel_path)
output = OutputLOCAL(stage, abs_path, cache=False)
output = LocalOutput(stage, abs_path, cache=False)
assert output.def_path == rel_path
assert output.path_info.fspath == abs_path
@@ -59,7 +59,7 @@ def test_str_on_external_absolute_path(dvc):
rel_path = os.path.join("..", "path", "to", "file")
abs_path = os.path.abspath(rel_path)
output = OutputLOCAL(stage, abs_path, cache=False)
output = LocalOutput(stage, abs_path, cache=False)
assert output.def_path == abs_path
assert output.path_info.fspath == abs_path
@@ -69,14 +69,14 @@ def test_str_on_external_absolute_path(dvc):
class TestGetFilesNumber(TestDvc):
def _get_output(self):
stage = Stage(self.dvc)
return OutputLOCAL(stage, "path")
return LocalOutput(stage, "path")
def test_return_0_on_no_cache(self):
o = self._get_output()
o.use_cache = False
self.assertEqual(0, o.get_files_number())
@patch.object(OutputLOCAL, "checksum", "12345678.dir")
@patch.object(LocalOutput, "checksum", "12345678.dir")
@patch.object(
LocalRemote,
"get_dir_cache",
@@ -87,8 +87,8 @@ class TestGetFilesNumber(TestDvc):
self.assertEqual(2, o.get_files_number())
@patch.object(OutputLOCAL, "checksum", "12345678")
@patch.object(OutputLOCAL, "is_dir_checksum", False)
@patch.object(LocalOutput, "checksum", "12345678")
@patch.object(LocalOutput, "is_dir_checksum", False)
def test_return_1_on_single_file_cache(self):
o = self._get_output()
+4 -4
View File
@@ -6,7 +6,7 @@ from funcy import first
from voluptuous import Schema, MultipleInvalid
from dvc.cache import NamedCache
from dvc.output import CHECKSUM_SCHEMA, OutputBase
from dvc.output import CHECKSUM_SCHEMA, BaseOutput
@pytest.mark.parametrize(
@@ -74,15 +74,15 @@ def test_get_used_cache(exists, expected_message, mocker, caplog):
mocker.patch.object(stage, "__str__", return_value="stage: 'stage.dvc'")
mocker.patch.object(stage, "addressing", "stage.dvc")
output = OutputBase(stage, "path")
output = BaseOutput(stage, "path")
mocker.patch.object(output, "use_cache", True)
mocker.patch.object(stage, "is_repo_import", False)
mocker.patch.object(
OutputBase, "checksum", new_callable=mocker.PropertyMock
BaseOutput, "checksum", new_callable=mocker.PropertyMock
).return_value = None
mocker.patch.object(
OutputBase, "exists", new_callable=mocker.PropertyMock
BaseOutput, "exists", new_callable=mocker.PropertyMock
).return_value = exists
with caplog.at_level(logging.WARNING, logger="dvc"):
+4 -4
View File
@@ -1,7 +1,7 @@
from dvc.output.s3 import OutputS3
from tests.unit.output.test_local import TestOutputLOCAL
from dvc.output.s3 import S3Output
from tests.unit.output.test_local import TestLocalOutput
class TestOutputS3(TestOutputLOCAL):
class TestS3Output(TestLocalOutput):
def _get_cls(self):
return OutputS3
return S3Output
+4 -4
View File
@@ -1,7 +1,7 @@
from dvc.output.ssh import OutputSSH
from tests.unit.output.test_local import TestOutputLOCAL
from dvc.output.ssh import SSHOutput
from tests.unit.output.test_local import TestLocalOutput
class TestOutputSSH(TestOutputLOCAL):
class TestSSHOutput(TestLocalOutput):
def _get_cls(self):
return OutputSSH
return SSHOutput