Esempio n. 1
0
def test_broken_symlink(tmp_dir, dvc):
    from dvc.fs import system

    tmp_dir.gen("file", "content")
    system.symlink("file", "link")

    os.remove("file")

    entries = Repo.ls(os.fspath(tmp_dir))

    assert entries == [
        {
            "isout": False,
            "isdir": False,
            "isexec": False,
            "path": ".dvcignore",
        },
    ]
Esempio n. 2
0
    def run(self):
        from dvc.repo import Repo

        try:
            entries = Repo.ls(
                self.args.url,
                self.args.target,
                rev=self.args.rev,
                recursive=self.args.recursive,
                outs_only=self.args.outs_only,
            )
            if entries:
                entries = _prettify(entries, sys.stdout.isatty())
                logger.info("\n".join(entries))
            return 0
        except DvcException:
            logger.exception("failed to list '{}'".format(self.args.url))
            return 1
Esempio n. 3
0
def test_ls_remote_repo_with_path_dir(erepo_dir):
    with erepo_dir.chdir():
        erepo_dir.scm_gen(FS_STRUCTURE, commit="init")
        erepo_dir.dvc_gen(DVC_STRUCTURE, commit="dvc")

    url = f"file://{erepo_dir.as_posix()}"
    path = "model"
    files = Repo.ls(url, path)
    match_files(
        files,
        (
            (("script.py", ), False),
            (("train.py", ), False),
            (("people.csv", ), True),
            (("people.csv.dvc", ), False),
            ((".gitignore", ), False),
        ),
    )
Esempio n. 4
0
    def run(self):
        from dvc.repo import Repo

        try:
            entries = Repo.ls(
                self.args.url,
                self.args.path,
                rev=self.args.rev,
                recursive=self.args.recursive,
                dvc_only=self.args.dvc_only,
            )
            if entries:
                entries = _prettify(entries, sys.stdout.isatty())
                logger.info("\n".join(entries))
            return 0
        except DvcException:
            logger.exception(f"failed to list '{self.args.url}'")
            return 1
Esempio n. 5
0
def test_ls_remote_repo(erepo_dir):
    with erepo_dir.chdir():
        erepo_dir.scm_gen(FS_STRUCTURE, commit="init")
        erepo_dir.dvc_gen(DVC_STRUCTURE, commit="dvc")

    url = "file://{}".format(erepo_dir)
    files = Repo.ls(url)
    match_files(
        files,
        (
            ((".gitignore", ), False),
            (("README.md", ), False),
            (("structure.xml.dvc", ), False),
            (("model", ), False),
            (("data", ), False),
            (("structure.xml", ), True),
        ),
    )
Esempio n. 6
0
    def run(self):
        from dvc.repo import Repo

        try:
            entries = Repo.ls(
                self.args.url,
                self.args.path,
                rev=self.args.rev,
                recursive=self.args.recursive,
                dvc_only=self.args.dvc_only,
            )
            if self.args.json:
                ui.write_json(entries)
            elif entries:
                entries = _prettify(entries, with_color=True)
                ui.write("\n".join(entries))
            return 0
        except DvcException:
            logger.exception(f"failed to list '{self.args.url}'")
            return 1
Esempio n. 7
0
def test_ls_remote_repo_with_rev_recursive(erepo_dir):
    with erepo_dir.chdir():
        erepo_dir.dvc_gen(DVC_STRUCTURE, commit="dvc")
        erepo_dir.scm_gen(FS_STRUCTURE, commit="init")

    rev = erepo_dir.scm.list_all_commits()[1]
    url = "file://{}".format(erepo_dir)
    files = Repo.ls(url, rev=rev, recursive=True)
    match_files(
        files,
        (
            ("structure.xml.dvc", ),
            ("model", "people.csv.dvc"),
            ("data", "subcontent", "data.xml.dvc"),
            ("data", "subcontent", "statistics", "data.csv.dvc"),
            ("data", "subcontent", "statistics", "data.csv"),
            ("data", "subcontent", "data.xml"),
            ("model", "people.csv"),
            ("structure.xml", ),
        ),
    )
Esempio n. 8
0
def test_ls_repo_recursive(tmp_dir, dvc, scm):
    tmp_dir.scm_gen(FS_STRUCTURE, commit="init")
    tmp_dir.dvc_gen(DVC_STRUCTURE, commit="dvc")

    files = Repo.ls(fspath(tmp_dir), recursive=True)
    match_files(
        files,
        (
            (".gitignore", ),
            ("README.md", ),
            ("structure.xml.dvc", ),
            ("model", "script.py"),
            ("model", "train.py"),
            ("model", "people.csv.dvc"),
            ("data", "subcontent", "data.xml.dvc"),
            ("data", "subcontent", "statistics", "data.csv.dvc"),
            ("data", "subcontent", "statistics", "data.csv"),
            ("data", "subcontent", "data.xml"),
            ("model", "people.csv"),
            ("structure.xml", ),
        ),
    )
Esempio n. 9
0
def test_ls_remote_repo_recursive(erepo_dir):
    with erepo_dir.chdir():
        erepo_dir.scm_gen(FS_STRUCTURE, commit="init")
        erepo_dir.dvc_gen(DVC_STRUCTURE, commit="dvc")

    url = "file://{}".format(erepo_dir)
    files = Repo.ls(url, recursive=True)
    match_files(
        files,
        (
            (".gitignore", ),
            ("README.md", ),
            ("structure.xml.dvc", ),
            ("model", "script.py"),
            ("model", "train.py"),
            ("model", "people.csv.dvc"),
            ("data", "subcontent", "data.xml.dvc"),
            ("data", "subcontent", "statistics", "data.csv.dvc"),
            ("data", "subcontent", "statistics", "data.csv"),
            ("data", "subcontent", "data.xml"),
            ("model", "people.csv"),
            ("structure.xml", ),
        ),
    )
Esempio n. 10
0
def test_ls_not_existed_url():
    from time import time

    dirname = "__{}_{}".format("not_existed", time())
    with pytest.raises(CloneError):
        Repo.ls(dirname, recursive=True)
Esempio n. 11
0
def test_ls_repo_with_removed_dvc_dir_with_path_file(tmp_dir, dvc, scm):
    create_dvc_pipeline(tmp_dir, dvc)

    path = os.path.join("out", "file")
    files = Repo.ls(os.fspath(tmp_dir), path)
    match_files(files, ((("file",), True),))
Esempio n. 12
0
 def _list_files(repo, path=None):
     return set(map(itemgetter("path"), Repo.ls(os.fspath(repo), path)))
Esempio n. 13
0
 def _ls(path):
     return Repo.ls(os.fspath(erepo_dir), path)
Esempio n. 14
0
def test_ls_repo_with_removed_dvc_dir_with_target_file(tmp_dir, dvc, scm):
    create_dvc_pipeline(tmp_dir, dvc)

    target = os.path.join("out", "file")
    files = Repo.ls(fspath(tmp_dir), target)
    match_files(files, (("file", ), ))
Esempio n. 15
0
def test_ls_repo_with_removed_dvc_dir(tmp_dir, dvc, scm):
    create_dvc_pipeline(tmp_dir, dvc)

    files = Repo.ls(fspath(tmp_dir))
    match_files(files, (("script.py", ), ("dep.dvc", ), ("out.dvc", ),
                        ("dep", ), ("out", )))
Esempio n. 16
0
def test_ls_repo_with_removed_dvc_dir_with_target_dir(tmp_dir, dvc, scm):
    create_dvc_pipeline(tmp_dir, dvc)

    target = "out"
    files = Repo.ls(fspath(tmp_dir), target)
    match_files(files, ((("file", ), True), ))