From 1aa7e5dbec9ff11069a57fc955b34a1b5df338c7 Mon Sep 17 00:00:00 2001 From: "mergify[bot]" <37929162+mergify[bot]@users.noreply.github.com> Date: Fri, 18 Dec 2020 14:22:19 +0545 Subject: [PATCH] params/metrics diff: collect from revisions/workspace twice (bp #5121) (#5129) (cherry picked from commit 723477ed5ab06b8935aad227a81dd88160d7824f) Co-authored-by: Saugat Pachhai --- dvc/repo/metrics/diff.py | 16 +++++++++------- dvc/repo/params/diff.py | 14 +++++++++----- 2 files changed, 18 insertions(+), 12 deletions(-) diff --git a/dvc/repo/metrics/diff.py b/dvc/repo/metrics/diff.py index c6c68c67d..329a24272 100644 --- a/dvc/repo/metrics/diff.py +++ b/dvc/repo/metrics/diff.py @@ -3,12 +3,10 @@ from dvc.utils.diff import diff as _diff from dvc.utils.diff import format_dict -def _get_metrics(repo, *args, rev=None, **kwargs): +def _get_metrics(repo, *args, revs=None, **kwargs): try: - metrics = repo.metrics.show( - *args, **kwargs, revs=[rev] if rev else None - ) - return metrics.get(rev or "", {}) + metrics = repo.metrics.show(*args, **kwargs, revs=revs) + return metrics except NoMetricsError: return {} @@ -19,8 +17,12 @@ def diff(repo, *args, a_rev=None, b_rev=None, **kwargs): with_unchanged = kwargs.pop("all", False) - old = _get_metrics(repo, *args, **kwargs, rev=(a_rev or "HEAD")) - new = _get_metrics(repo, *args, **kwargs, rev=b_rev) + a_rev = a_rev or "HEAD" + b_rev = b_rev or "workspace" + + metrics = _get_metrics(repo, *args, **kwargs, revs=[a_rev, b_rev]) + old = metrics.get(a_rev, {}) + new = metrics.get(b_rev, {}) return _diff( format_dict(old), format_dict(new), with_unchanged=with_unchanged diff --git a/dvc/repo/params/diff.py b/dvc/repo/params/diff.py index 35b588130..3423ff6e0 100644 --- a/dvc/repo/params/diff.py +++ b/dvc/repo/params/diff.py @@ -4,10 +4,10 @@ from dvc.utils.diff import format_dict from .show import NoParamsError -def _get_params(repo, *args, rev=None, **kwargs): +def _get_params(repo, *args, revs=None, **kwargs): try: - params = repo.params.show(*args, **kwargs, revs=[rev] if rev else None) - return params.get(rev or "", {}) + params = repo.params.show(*args, **kwargs, revs=revs) + return params except NoParamsError: return {} @@ -18,8 +18,12 @@ def diff(repo, *args, a_rev=None, b_rev=None, **kwargs): with_unchanged = kwargs.pop("all", False) - old = _get_params(repo, *args, **kwargs, rev=(a_rev or "HEAD")) - new = _get_params(repo, *args, **kwargs, rev=b_rev) + a_rev = a_rev or "HEAD" + b_rev = b_rev or "workspace" + + params = _get_params(repo, *args, **kwargs, revs=[a_rev, b_rev]) + old = params.get(a_rev, {}) + new = params.get(b_rev, {}) return _diff( format_dict(old), format_dict(new), with_unchanged=with_unchanged