示例#1
0
文件: params.py 项目: rpatil524/dvc
    def run(self):
        try:
            diff = self.repo.params.diff(
                a_rev=self.args.a_rev,
                b_rev=self.args.b_rev,
                targets=self.args.targets,
                all=self.args.all,
                deps=self.args.deps,
            )
        except DvcException:
            logger.exception("failed to show params diff")
            return 1

        if self.args.json:
            ui.write_json(diff)
        else:
            from dvc.compare import show_diff

            show_diff(
                diff,
                title="Param",
                markdown=self.args.markdown,
                no_path=self.args.no_path,
                show_changes=False,
            )

        return 0
示例#2
0
    def run(self):
        try:
            diff = self.repo.metrics.diff(
                a_rev=self.args.a_rev,
                b_rev=self.args.b_rev,
                targets=self.args.targets,
                recursive=self.args.recursive,
                all=self.args.all,
            )
        except DvcException:
            logger.exception("failed to show metrics diff")
            return 1

        if self.args.json:
            ui.write_json(diff)
        else:
            from dvc.compare import show_diff

            show_diff(
                diff,
                title="Metric",
                markdown=self.args.markdown,
                no_path=self.args.no_path,
                precision=self.args.precision or DEFAULT_PRECISION,
                round_digits=True,
                a_rev=self.args.a_rev,
                b_rev=self.args.b_rev,
            )

        return 0
示例#3
0
def test_metrics_diff_md(capsys):
    show_diff(
        {
            "metrics.yaml": {
                "x.b": {
                    "old": 5,
                    "new": 6
                },
                "a.d.e": {
                    "old": 3,
                    "new": 4,
                    "diff": 1
                },
                "a.b.c": {
                    "old": 1,
                    "new": 2,
                    "diff": 1
                },
            }
        },
        "Metric",
        markdown=True,
    )
    out, _ = capsys.readouterr()
    assert out == textwrap.dedent("""\
        | Path         | Metric   | Old   | New   | Change   |
        |--------------|----------|-------|-------|----------|
        | metrics.yaml | a.b.c    | 1     | 2     | 1        |
        | metrics.yaml | a.d.e    | 3     | 4     | 1        |
        | metrics.yaml | x.b      | 5     | 6     | -        |

        """)
示例#4
0
def test_diff_default(capsys):
    show_diff(
        {
            "metrics.yaml": {
                "x.b": {
                    "old": 5,
                    "new": 6
                },
                "a.d.e": {
                    "old": 3,
                    "new": 4,
                    "diff": 1
                },
                "a.b.c": {
                    "old": 1,
                    "new": 2,
                    "diff": 1
                },
            }
        },
        "Metric",
    )
    out, _ = capsys.readouterr()
    assert out == textwrap.dedent("""\
        Path          Metric    Old    New    Change
        metrics.yaml  a.b.c     1      2      1
        metrics.yaml  a.d.e     3      4      1
        metrics.yaml  x.b       5      6      -
        """)
示例#5
0
文件: metrics.py 项目: slel/dvc
    def run(self):
        try:
            diff = self.repo.metrics.diff(
                a_rev=self.args.a_rev,
                b_rev=self.args.b_rev,
                targets=self.args.targets,
                recursive=self.args.recursive,
                all=self.args.all,
            )
        except DvcException:
            logger.exception("failed to show metrics diff")
            return 1

        if self.args.show_json:
            import json

            logger.info(json.dumps(diff))
        else:
            from dvc.compare import show_diff

            show_diff(
                diff,
                title="Metric",
                markdown=self.args.show_md,
                no_path=self.args.no_path,
                precision=self.args.precision or DEFAULT_PRECISION,
            )

        return 0
示例#6
0
def test_diff_mocked(mocker, markdown):
    ret = mocker.MagicMock()
    m = mocker.patch("dvc.compare.diff_table", return_value=ret)

    show_diff({}, "metrics", markdown=markdown)

    m.assert_called_once_with(
        {},
        title="metrics",
        old=True,
        no_path=False,
        precision=None,
        on_empty_diff=None,
        show_changes=True,
        round_digits=False,
    )
    ret.render.assert_called_once_with(markdown=markdown)
示例#7
0
    def run(self):

        try:
            diff = self.repo.experiments.diff(
                a_rev=self.args.a_rev,
                b_rev=self.args.b_rev,
                all=self.args.all,
                param_deps=self.args.param_deps,
            )
        except DvcException:
            logger.exception("failed to show experiments diff")
            return 1

        if self.args.show_json:
            import json

            logger.info(json.dumps(diff))
        else:
            from dvc.compare import show_diff

            precision = self.args.precision or DEFAULT_PRECISION
            diffs = [("metrics", "Metric"), ("params", "Param")]
            for idx, (key, title) in enumerate(diffs):
                if idx:
                    from dvc.ui import ui

                    # we are printing tables even in `--quiet` mode
                    # so we should also be printing the "table" separator
                    ui.write(force=True)

                show_diff(
                    diff[key],
                    title=title,
                    markdown=self.args.show_md,
                    no_path=self.args.no_path,
                    old=self.args.old,
                    on_empty_diff="diff not supported",
                    precision=precision if key == "metrics" else None,
                )

        return 0