From f03ea7a9159d53297ddf49fec97657850db8eef9 Mon Sep 17 00:00:00 2001 From: Ruslan Kuprieiev Date: Thu, 31 May 2018 03:52:29 +0300 Subject: [PATCH] dvc: move link_state from Cache to Project Signed-off-by: Ruslan Kuprieiev --- dvc/cache.py | 6 +++--- dvc/project.py | 12 +++++++----- dvc/remote/base.py | 3 +++ dvc/transport/__init__.py | 21 +++++++++++++++++++++ 4 files changed, 34 insertions(+), 8 deletions(-) create mode 100644 dvc/remote/base.py create mode 100644 dvc/transport/__init__.py diff --git a/dvc/cache.py b/dvc/cache.py index a3c2a17f2..fa6711150 100644 --- a/dvc/cache.py +++ b/dvc/cache.py @@ -2,7 +2,7 @@ import os import json import shutil -from dvc.state import State, LinkState +from dvc.state import State from dvc.system import System from dvc.logger import Logger from dvc.utils import move, remove @@ -21,7 +21,7 @@ class Cache(object): 'reflink': System.reflink, } - def __init__(self, root_dir, dvc_dir, cache_dir=None, cache_type=None): + def __init__(self, root_dir, dvc_dir, link_state=None, cache_dir=None, cache_type=None): self.cache_type = cache_type cache_dir = cache_dir if cache_dir else self.CACHE_DIR @@ -34,7 +34,7 @@ class Cache(object): os.mkdir(self.cache_dir) self.state = State(self.cache_dir) - self.link_state = LinkState(root_dir, dvc_dir) + self.link_state = link_state self.lock = Lock(self.cache_dir, name=self.CACHE_DIR_LOCK) @staticmethod diff --git a/dvc/project.py b/dvc/project.py index eda8851f6..7708c6e2b 100644 --- a/dvc/project.py +++ b/dvc/project.py @@ -11,7 +11,7 @@ from dvc.logger import Logger from dvc.exceptions import DvcException from dvc.stage import Stage from dvc.config import Config -from dvc.state import State +from dvc.state import State, LinkState from dvc.lock import Lock from dvc.scm import SCM, Base from dvc.cache import Cache @@ -47,8 +47,10 @@ class Project(object): self.config = Config(self.dvc_dir) self.scm = SCM(self.root_dir) self.lock = Lock(self.dvc_dir) - self.cache = Cache(self.root_dir, self.dvc_dir, cache_dir=self.config._config[Config.SECTION_CACHE].get(Config.SECTION_CACHE_DIR, None), - cache_type=self.config._config[Config.SECTION_CACHE].get(Config.SECTION_CACHE_TYPE, None)) + self.link_state = LinkState(self.root_dir, self.dvc_dir) + self.cache = Cache(self.root_dir, self.dvc_dir, link_state=self.link_state, + cache_dir=self.config._config[Config.SECTION_CACHE].get(Config.SECTION_CACHE_DIR, None), + cache_type=self.config._config[Config.SECTION_CACHE].get(Config.SECTION_CACHE_TYPE, None)) self.state = State(self.dvc_dir) self.logger = Logger(self.config._config[Config.SECTION_CORE].get(Config.SECTION_CORE_LOGLEVEL, None)) self.cloud = DataCloud(cache=self.cache, config=self.config._config) @@ -94,7 +96,7 @@ class Project(object): return proj def _ignore(self): - l = [self.cache.link_state.state_file, + l = [self.link_state.state_file, self.cache.link_state._lock_file.lock_file, self.state.state_file, self.state._lock_file.lock_file, @@ -191,7 +193,7 @@ class Project(object): raise StageNotFoundError(target) stages = [Stage.load(self, target)] else: - self.cache.link_state.remove_all() + self.link_state.remove_all() stages = self.stages() for stage in stages: diff --git a/dvc/remote/base.py b/dvc/remote/base.py new file mode 100644 index 000000000..31a7bf96e --- /dev/null +++ b/dvc/remote/base.py @@ -0,0 +1,3 @@ +class Remote(object): + def __init__(self + pass diff --git a/dvc/transport/__init__.py b/dvc/transport/__init__.py new file mode 100644 index 000000000..08b401df7 --- /dev/null +++ b/dvc/transport/__init__.py @@ -0,0 +1,21 @@ +def Transport(path): + pass + +def exists(path): + return Transport(path).exists(path) + + +def copy(inp, outp): + return Transport(inp).copy(inp, outp) + + +def is_file(path): + return Transport(path).is_file(path) + + +def is_dir(path): + return Transport(path).is_dir(path) + + +def is_empty(path): + return Transport(path).is_empty(path)