diff --git a/dvc/dependency/base.py b/dvc/dependency/base.py index 6151790b6..a1224ac7a 100644 --- a/dvc/dependency/base.py +++ b/dvc/dependency/base.py @@ -20,10 +20,11 @@ class DependencyBase(object): PARAM_PATH = 'path' - def __init__(self, stage, path): + def __init__(self, stage, path, info=None): self.stage = stage self.project = stage.project self.url = path + self.info = info def __repr__(self): return "{class_name}: '{url}'".format( @@ -77,7 +78,9 @@ class DependencyBase(object): raise NotImplementedError def dumpd(self): - return {self.PARAM_PATH: self.url} + ret = self.info.copy() + ret[self.PARAM_PATH] = self.url + return ret def download(self, to_info): self.remote.download([self.path_info], [to_info]) diff --git a/dvc/dependency/gs.py b/dvc/dependency/gs.py index 6f31f3d9e..0bcc14d70 100644 --- a/dvc/dependency/gs.py +++ b/dvc/dependency/gs.py @@ -13,8 +13,7 @@ class DependencyGS(DependencyS3): REGEX = RemoteGS.REGEX def __init__(self, stage, path, info=None, remote=None): - super(DependencyGS, self).__init__(stage, path) - self.info = info + super(DependencyGS, self).__init__(stage, path, info=info) self.remote = remote if remote else RemoteGS(stage.project, {}) bucket = remote.bucket if remote else urlparse(path).netloc path = urlparse(path).path.lstrip('/') diff --git a/dvc/dependency/hdfs.py b/dvc/dependency/hdfs.py index 81506ba97..dc4a7c41a 100644 --- a/dvc/dependency/hdfs.py +++ b/dvc/dependency/hdfs.py @@ -13,8 +13,7 @@ class DependencyHDFS(DependencyBase): REGEX = RemoteHDFS.REGEX def __init__(self, stage, path, info=None, remote=None): - super(DependencyHDFS, self).__init__(stage, path) - self.info = info + super(DependencyHDFS, self).__init__(stage, path, info=info) self.remote = remote if remote else RemoteHDFS(stage.project, {}) if remote: path = posixpath.join(remote.url, urlparse(path).path.lstrip('/')) @@ -31,8 +30,3 @@ class DependencyHDFS(DependencyBase): def save(self): self.info = self.remote.save_info(self.path_info) - - def dumpd(self): - ret = self.info - ret[self.PARAM_PATH] = self.path - return ret diff --git a/dvc/dependency/http.py b/dvc/dependency/http.py index a2cccf454..df2951ae9 100644 --- a/dvc/dependency/http.py +++ b/dvc/dependency/http.py @@ -11,9 +11,8 @@ class DependencyHTTP(DependencyBase): REGEX = RemoteHTTP.REGEX def __init__(self, stage, path, info=None, remote=None): - super(DependencyHTTP, self).__init__(stage, path) + super(DependencyHTTP, self).__init__(stage, path, info=info) - self.info = info self.remote = remote or RemoteHTTP(stage.project, {}) if path.startswith('remote'): @@ -27,11 +26,6 @@ class DependencyHTTP(DependencyBase): def save(self): self.info = self.remote.save_info(self.path_info) - def dumpd(self): - ret = self.info - ret[self.PARAM_PATH] = self.path - return ret - def changed(self): if not self.exists: return True diff --git a/dvc/dependency/local.py b/dvc/dependency/local.py index ef8a09252..4ba7e9bdf 100644 --- a/dvc/dependency/local.py +++ b/dvc/dependency/local.py @@ -19,8 +19,7 @@ class DependencyLOCAL(DependencyBase): IsNotFileOrDirError = DependencyIsNotFileOrDirError def __init__(self, stage, path, info=None, remote=None): - super(DependencyLOCAL, self).__init__(stage, path) - self.info = info + super(DependencyLOCAL, self).__init__(stage, path, info) if remote is not None: self.remote = remote else: diff --git a/dvc/dependency/s3.py b/dvc/dependency/s3.py index d2f0c4eef..62b9330bc 100644 --- a/dvc/dependency/s3.py +++ b/dvc/dependency/s3.py @@ -13,8 +13,7 @@ class DependencyS3(DependencyBase): REGEX = RemoteS3.REGEX def __init__(self, stage, path, info=None, remote=None): - super(DependencyS3, self).__init__(stage, path) - self.info = info + super(DependencyS3, self).__init__(stage, path, info=info) self.remote = remote or RemoteS3(stage.project, {}) bucket = remote.bucket if remote else urlparse(path).netloc @@ -33,8 +32,3 @@ class DependencyS3(DependencyBase): def save(self): self.info = self.remote.save_info(self.path_info) - - def dumpd(self): - ret = self.info - ret[self.PARAM_PATH] = self.path - return ret diff --git a/dvc/dependency/ssh.py b/dvc/dependency/ssh.py index 66a644d01..2f25a9707 100644 --- a/dvc/dependency/ssh.py +++ b/dvc/dependency/ssh.py @@ -13,8 +13,7 @@ class DependencySSH(DependencyBase): REGEX = RemoteSSH.REGEX def __init__(self, stage, path, info=None, remote=None): - super(DependencySSH, self).__init__(stage, path) - self.info = info + super(DependencySSH, self).__init__(stage, path, info=info) self.remote = remote if remote else RemoteSSH(stage.project, {}) host = remote.host if remote else self.group('host') @@ -40,8 +39,3 @@ class DependencySSH(DependencyBase): def save(self): self.info = self.remote.save_info(self.path_info) - - def dumpd(self): - ret = self.info - ret[self.PARAM_PATH] = self.path - return ret