mirror of
https://github.com/Stone-Red-Code/dvc.git
synced 2026-11-05 23:09:32 +01:00
metrics: rename show, repro: fix metrics display problem
This commit is contained in:
+10
-9
@@ -5,15 +5,16 @@ from dvc.exceptions import DvcException
|
||||
from dvc.command.base import CmdBase, fix_subparsers
|
||||
|
||||
|
||||
def show_metrics(metrics, all_branches=False, all_tags=False):
|
||||
for branch, val in metrics.items():
|
||||
if all_branches or all_tags:
|
||||
logger.info("{}:".format(branch))
|
||||
|
||||
for fname, metric in val.items():
|
||||
logger.info("\t{}: {}".format(fname, metric))
|
||||
|
||||
|
||||
class CmdMetricsShow(CmdBase):
|
||||
def _show(self, metrics):
|
||||
for branch, val in metrics.items():
|
||||
if self.args.all_branches or self.args.all_tags:
|
||||
logger.info("{}:".format(branch))
|
||||
|
||||
for fname, metric in val.items():
|
||||
logger.info("\t{}: {}".format(fname, metric))
|
||||
|
||||
def run(self):
|
||||
typ = self.args.type
|
||||
xpath = self.args.xpath
|
||||
@@ -27,7 +28,7 @@ class CmdMetricsShow(CmdBase):
|
||||
recursive=self.args.recursive,
|
||||
)
|
||||
|
||||
self._show(metrics)
|
||||
show_metrics(metrics, self.args.all_branches, self.args.all_tags)
|
||||
except DvcException:
|
||||
logger.error("failed to show metrics")
|
||||
return 1
|
||||
|
||||
@@ -4,6 +4,7 @@ import os
|
||||
|
||||
import dvc.logger as logger
|
||||
from dvc.command.base import CmdBase
|
||||
from dvc.command.metrics import show_metrics
|
||||
from dvc.command.status import CmdDataStatus
|
||||
from dvc.exceptions import DvcException
|
||||
|
||||
@@ -40,7 +41,8 @@ class CmdRepro(CmdBase):
|
||||
logger.info(CmdDataStatus.UP_TO_DATE_MSG)
|
||||
|
||||
if self.args.metrics:
|
||||
self.repo.metrics.show()
|
||||
metrics = self.repo.metrics.show()
|
||||
show_metrics(metrics)
|
||||
except DvcException:
|
||||
logger.error()
|
||||
ret = 1
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
from dvc.logger import logger
|
||||
from dvc.utils.compat import str
|
||||
|
||||
import os
|
||||
@@ -32,8 +33,10 @@ from tests.basic_env import TestDvc
|
||||
from tests.test_data_cloud import _should_test_aws, TEST_AWS_REPO_BUCKET
|
||||
from tests.test_data_cloud import _should_test_gcp, TEST_GCP_REPO_BUCKET
|
||||
from tests.test_data_cloud import _should_test_ssh, _should_test_hdfs
|
||||
from tests.utils import reset_logger_standard_output
|
||||
from tests.utils.httpd import StaticFileServer
|
||||
from mock import patch
|
||||
from tests.utils.logger import MockLoggerHandlers
|
||||
|
||||
|
||||
class TestRepro(TestDvc):
|
||||
@@ -1375,3 +1378,37 @@ class TestReproAlreadyCached(TestRepro):
|
||||
self.assertEqual(ret, 0)
|
||||
self.assertEqual(mock_download.call_count, 1)
|
||||
self.assertEqual(mock_checkout.call_count, 0)
|
||||
|
||||
|
||||
class TestShouldDisplayMetricsOnReproWithMetricsOption(TestDvc):
|
||||
def test(self):
|
||||
metrics_file = "metrics_file"
|
||||
metrics_value = 0.123489015
|
||||
ret = main(
|
||||
[
|
||||
"run",
|
||||
"-m",
|
||||
metrics_file,
|
||||
"echo {} >> {}".format(metrics_value, metrics_file),
|
||||
]
|
||||
)
|
||||
self.assertEqual(0, ret)
|
||||
|
||||
with MockLoggerHandlers(logger):
|
||||
reset_logger_standard_output()
|
||||
ret = main(
|
||||
[
|
||||
"repro",
|
||||
"--force",
|
||||
"--metrics",
|
||||
metrics_file + Stage.STAGE_FILE_SUFFIX,
|
||||
]
|
||||
)
|
||||
self.assertEqual(0, ret)
|
||||
|
||||
expected_metrics_display = "{}: {}".format(
|
||||
metrics_file, metrics_value
|
||||
)
|
||||
self.assertIn(
|
||||
expected_metrics_display, logger.handlers[0].stream.getvalue()
|
||||
)
|
||||
|
||||
Reference in New Issue
Block a user