def run(self): from rich.console import Console from dvc.utils.pager import pager if not self.repo.experiments: return 0 try: all_experiments = self.repo.experiments.show( all_branches=self.args.all_branches, all_tags=self.args.all_tags, all_commits=self.args.all_commits, ) # Note: rich does not currently include a native way to force # infinite width for use with a pager console = Console(file=io.StringIO(), force_terminal=True, width=9999) _show_experiments(all_experiments, console) pager(console.file.getvalue()) except DvcException: logger.exception("failed to show experiments") return 1 return 0
def run(self): try: target = None if self.args.target: stages = self.repo.collect(self.args.target) if len(stages) > 1: logger.error( f"'{self.args.target}' contains more than one stage " "{stages}, please specify one stage" ) return 1 target = stages[0] G = _build(self.repo.graph, target=target, full=self.args.full,) if self.args.dot: logger.info(_show_dot(G)) else: from dvc.utils.pager import pager pager(_show_ascii(G)) return 0 except DvcException: msg = "failed to show " if self.args.target: msg += f"a pipeline for '{target}'" else: msg += "pipelines" logger.exception(msg) return 1
def run(self): from rich.console import Console from dvc.utils.pager import pager if not self.repo.experiments: return 0 try: all_experiments = self.repo.experiments.show( all_branches=self.args.all_branches, all_tags=self.args.all_tags, all_commits=self.args.all_commits, sha_only=self.args.sha, ) if self.args.show_json: import json logger.info(json.dumps(all_experiments, default=_format_json)) return 0 if self.args.no_pager: console = Console() else: # Note: rich does not currently include a native way to force # infinite width for use with a pager console = Console(file=io.StringIO(), force_terminal=True, width=9999) if self.args.precision is None: precision = DEFAULT_PRECISION else: precision = self.args.precision _show_experiments( all_experiments, console, include_metrics=self.args.include_metrics, exclude_metrics=self.args.exclude_metrics, include_params=self.args.include_params, exclude_params=self.args.exclude_params, no_timestamp=self.args.no_timestamp, sort_by=self.args.sort_by, sort_order=self.args.sort_order, precision=precision, ) if not self.args.no_pager: pager(console.file.getvalue()) except DvcException: logger.exception("failed to show experiments") return 1 return 0
def test_pager(mocker, monkeypatch): monkeypatch.setenv(DVC_PAGER, "my-pager") mocker.patch("sys.stdout.isatty", return_value=True) m_make_pager = mocker.patch("dvc.utils.pager.make_pager") _pager = m_make_pager.return_value = mocker.MagicMock() pager("hello world") m_make_pager.assert_called_once_with("my-pager") _pager.assert_called_once_with("hello world")
def run(self): G = _build( self.repo, target=self.args.target, full=self.args.full, outs=self.args.outs, ) if self.args.dot: logger.info(_show_dot(G)) else: from dvc.utils.pager import pager pager(_show_ascii(G)) return 0