tree: move CleanTree to ignore

This commit is contained in:
pawel
2019-12-30 14:19:43 +01:00
parent 56ed5351ef
commit cf2d349bd7
7 changed files with 46 additions and 44 deletions
+38
View File
@@ -3,9 +3,11 @@ from __future__ import unicode_literals
import logging
import os
from funcy import cached_property
from pathspec import PathSpec
from pathspec.patterns import GitWildMatchPattern
from dvc.scm.tree import BaseTree
from dvc.utils import relpath
logger = logging.getLogger(__name__)
@@ -90,3 +92,39 @@ class DvcIgnoreFilter(object):
dirs, files = ignore(root, dirs, files)
return dirs, files
class CleanTree(BaseTree):
def __init__(self, tree):
self.tree = tree
@cached_property
def dvcignore(self):
return DvcIgnoreFilter(self.tree)
@property
def tree_root(self):
return self.tree.tree_root
def open(self, path, mode="r", encoding="utf-8"):
return self.tree.open(path, mode, encoding)
def exists(self, path):
return self.tree.exists(path)
def isdir(self, path):
return self.tree.isdir(path)
def isfile(self, path):
return self.tree.isfile(path)
def walk(self, top, topdown=True):
for r, d, fs in self.tree.walk(top, topdown):
d[:], fs[:] = self.dvcignore(r, d, fs)
yield r, d, fs
def walk_files(self, top):
for root, _, files in self.walk(top):
for file in files:
yield os.path.join(root, file)
+2 -1
View File
@@ -1,6 +1,7 @@
from funcy import group_by
from dvc.scm.tree import WorkingTree, CleanTree
from dvc.ignore import CleanTree
from dvc.scm.tree import WorkingTree
def brancher( # noqa: E302
+1 -1
View File
@@ -8,13 +8,13 @@ from funcy import cached_property
from pathspec.patterns import GitWildMatchPattern
from dvc.exceptions import GitHookAlreadyExistsError
from dvc.ignore import CleanTree
from dvc.scm.base import Base
from dvc.scm.base import CloneError
from dvc.scm.base import FileNotInRepoError
from dvc.scm.base import RevError
from dvc.scm.base import SCMError
from dvc.scm.git.tree import GitTree
from dvc.scm.tree import CleanTree
from dvc.utils import fix_env
from dvc.utils import is_binary
from dvc.utils import relpath
-39
View File
@@ -1,8 +1,5 @@
import os
from funcy import cached_property
from dvc.ignore import DvcIgnoreFilter
from dvc.utils.compat import open
@@ -75,39 +72,3 @@ class WorkingTree(BaseTree):
top, topdown=topdown, onerror=onerror
):
yield os.path.normpath(root), dirs, files
class CleanTree(BaseTree):
def __init__(self, tree):
self.tree = tree
@cached_property
def dvcignore(self):
return DvcIgnoreFilter(self.tree)
@property
def tree_root(self):
return self.tree.tree_root
def open(self, path, mode="r", encoding="utf-8"):
return self.tree.open(path, mode, encoding)
def exists(self, path):
return self.tree.exists(path)
def isdir(self, path):
return self.tree.isdir(path)
def isfile(self, path):
return self.tree.isfile(path)
def walk(self, top, topdown=True, **kwargs):
for r, d, fs in self.tree.walk(top, topdown):
d[:], fs[:] = self.dvcignore(r, d, fs)
yield r, d, fs
def walk_files(self, top):
for root, _, files in self.walk(top):
for file in files:
yield os.path.join(root, file)
+1 -1
View File
@@ -1,9 +1,9 @@
import os
from dvc.ignore import CleanTree
from dvc.scm.git.tree import GitTree
from dvc.cache import Cache
from dvc.repo import Repo
from dvc.scm.tree import CleanTree
from dvc.system import System
from dvc.utils.compat import fspath
+2 -1
View File
@@ -3,9 +3,10 @@ from __future__ import unicode_literals
from os.path import join
from dvc.ignore import CleanTree
from dvc.scm import SCM
from dvc.scm.git import GitTree
from dvc.scm.tree import WorkingTree, CleanTree
from dvc.scm.tree import WorkingTree
from tests.basic_env import TestDir
from tests.basic_env import TestGit
from tests.basic_env import TestGitSubmodule
+2 -1
View File
@@ -5,8 +5,9 @@ import pytest
from mock import patch
import dvc
from dvc.ignore import CleanTree
from dvc.path_info import PathInfo
from dvc.scm.tree import WorkingTree, CleanTree
from dvc.scm.tree import WorkingTree
from dvc.system import System
from dvc.utils import relpath
from dvc.utils.compat import str