Пример #1
0
def _collect_experiment_commit(repo, rev, stash=False, sha_only=True):
    res = defaultdict(dict)
    for rev in repo.brancher(revs=[rev]):
        if rev == "workspace":
            res["timestamp"] = None
        else:
            commit = repo.scm.resolve_commit(rev)
            res["timestamp"] = datetime.fromtimestamp(commit.commit_time)

        configs = _collect_configs(repo, rev=rev)
        params = _read_params(repo, configs, rev)
        if params:
            res["params"] = params

        res["queued"] = stash
        if not stash:
            metrics = _collect_metrics(repo, None, rev, False)
            vals = _read_metrics(repo, metrics, rev)
            res["metrics"] = vals

        if not sha_only and rev != "workspace":
            for refspec in ["refs/tags", "refs/heads"]:
                name = repo.scm.describe(rev, base=refspec)
                if name:
                    break
            if not name:
                if stash:
                    pass
                else:
                    name = repo.experiments.get_exact_name(rev)
            if name:
                name = name.rsplit("/")[-1]
                res["name"] = name

    return res
Пример #2
0
Файл: show.py Проект: rxxg/dvc
def _collect_experiment(repo, rev, stash=False, sha_only=True):
    from git.exc import GitCommandError

    res = defaultdict(dict)
    for rev in repo.brancher(revs=[rev]):
        if rev == "workspace":
            res["timestamp"] = None
        else:
            commit = _resolve_commit(repo, rev)
            res["timestamp"] = datetime.fromtimestamp(commit.committed_date)

        configs = _collect_configs(repo, rev=rev)
        params = _read_params(repo, configs, rev)
        if params:
            res["params"] = params

        res["queued"] = stash
        if not stash:
            metrics = _collect_metrics(repo, None, False)
            vals = _read_metrics(repo, metrics, rev)
            res["metrics"] = vals

        if not sha_only and rev != "workspace":
            try:
                name = repo.scm.repo.git.describe(rev,
                                                  all=True,
                                                  exact_match=True)
                name = name.rsplit("/")[-1]
                res["name"] = name
            except GitCommandError:
                pass

    return res
Пример #3
0
def _collect_experiment(repo, branch):
    res = defaultdict(dict)
    for rev in repo.brancher(revs=[branch]):
        configs = _collect_configs(repo)
        params = _read_params(repo, configs, rev)
        if params:
            res["params"] = params

        metrics = _collect_metrics(repo, None, False)
        vals = _read_metrics(repo, metrics, rev)
        if vals:
            res["metrics"] = vals

    return res
Пример #4
0
def _collect_experiment(repo, branch, stash=False):
    res = defaultdict(dict)
    for rev in repo.brancher(revs=[branch]):
        if rev == "workspace":
            res["timestamp"] = None
        else:
            commit = repo.scm.repo.rev_parse(rev)
            res["timestamp"] = datetime.fromtimestamp(commit.committed_date)

        configs = _collect_configs(repo)
        params = _read_params(repo, configs, rev)
        if params:
            res["params"] = params

        res["queued"] = stash
        if not stash:
            metrics = _collect_metrics(repo, None, False)
            vals = _read_metrics(repo, metrics, rev)
            res["metrics"] = vals

    return res