params/metrics diff: collect from revisions/workspace twice (bp #5121) (#5129)

(cherry picked from commit 723477ed5a)

Co-authored-by: Saugat Pachhai <[email protected]>
This commit is contained in:
mergify[bot]
2020-12-18 14:22:19 +05:45
committed by GitHub
co-authored by Saugat Pachhai
parent fe0d6ec3e0
commit 1aa7e5dbec
2 changed files with 18 additions and 12 deletions
+9 -7
View File
@@ -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
+9 -5
View File
@@ -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