mirror of
https://github.com/Stone-Red-Code/dvc.git
synced 2026-11-09 15:28:26 +01:00
params: diff: sort table (#3617)
This commit is contained in:
@@ -1,6 +1,8 @@
|
||||
import argparse
|
||||
import logging
|
||||
|
||||
from collections import OrderedDict
|
||||
|
||||
from dvc.command.base import append_doc_link
|
||||
from dvc.command.base import CmdBase
|
||||
from dvc.command.base import fix_subparsers
|
||||
@@ -14,8 +16,9 @@ def _show_diff(diff):
|
||||
from dvc.utils.diff import table
|
||||
|
||||
rows = []
|
||||
for fname, mdiff in diff.items():
|
||||
for param, change in mdiff.items():
|
||||
for fname, pdiff in diff.items():
|
||||
sorted_pdiff = OrderedDict(sorted(pdiff.items()))
|
||||
for param, change in sorted_pdiff.items():
|
||||
rows.append([fname, param, change["old"], change["new"]])
|
||||
|
||||
return table(["Path", "Param", "Old", "New"], rows)
|
||||
|
||||
@@ -83,3 +83,20 @@ def test_params_diff_show_json(dvc, mocker, caplog):
|
||||
with caplog.at_level(logging.INFO, logger="dvc"):
|
||||
assert cmd.run() == 0
|
||||
assert '{"params.yaml": {"a": "b"}}\n' in caplog.text
|
||||
|
||||
|
||||
def test_params_diff_sorted():
|
||||
assert _show_diff(
|
||||
{
|
||||
"params.yaml": {
|
||||
"x.b": {"old": 5, "new": 6},
|
||||
"a.d.e": {"old": 3, "new": 4},
|
||||
"a.b.c": {"old": 1, "new": 2},
|
||||
}
|
||||
}
|
||||
) == (
|
||||
" Path Param Old New\n"
|
||||
"params.yaml a.b.c 1 2 \n"
|
||||
"params.yaml a.d.e 3 4 \n"
|
||||
"params.yaml x.b 5 6 "
|
||||
)
|
||||
|
||||
Reference in New Issue
Block a user