def test_live_provides_metrics(tmp_dir, dvc, live_stage): live_stage(summary=True, live="logs") assert (tmp_dir / "logs.json").is_file() assert dvc.metrics.show() == { "": { "data": { "logs.json": { "data": { "accuracy": 0.5, "loss": 0.5, "step": 1 } } } } } assert (tmp_dir / "logs").is_dir() plots_data = dvc.plots.show() files = get_files(plots_data) assert os.path.join("logs", "scalars", "accuracy.tsv") in files assert os.path.join("logs", "scalars", "loss.tsv") in files assert os.path.join("logs", "images", "0", "image.jpg") in files assert os.path.join("logs", "images", "1", "image.jpg") in files
def __init__(self, data: Dict): self.data = data from dvc.render.utils import get_files files = get_files(self.data) # we assume comparison of same file between revisions for now assert len(files) == 1 self.filename = files.pop()
def test_live_provides_no_metrics(tmp_dir, dvc, live_stage): live_stage(summary=False, live="logs") assert not (tmp_dir / "logs.json").is_file() assert dvc.metrics.show() == {"": {}} assert (tmp_dir / "logs").is_dir() plots_data = dvc.plots.show() files = get_files(plots_data) assert os.path.join("logs", "accuracy.tsv") in files assert os.path.join("logs", "loss.tsv") in files
def test_plots_order(tmp_dir, dvc): tmp_dir.gen({ "p.json": json.dumps([{ "p1": 1 }, { "p1": 2 }]), "p1.json": json.dumps([{ "p2": 1 }, { "p2": 2 }]), "sub": { "p3.json": json.dumps([{ "p3": 1 }, { "p3": 2 }]), "p4.json": json.dumps([{ "p4": 1 }, { "p4": 2 }]), }, }) dvc.stage.add( plots=["p.json", str(tmp_dir / "sub" / "p4.json")], cmd="cmd1", name="stage1", ) with (tmp_dir / "sub").chdir(): dvc.stage.add( plots=[str(tmp_dir / "p1.json"), "p3.json"], cmd="cmd2", name="stage2", ) assert get_files(dvc.plots.show()) == [ "p.json", "p1.json", os.path.join("sub", "p3.json"), os.path.join("sub", "p4.json"), ]
def matches(data): files = get_files(data) extensions = set(map(lambda f: os.path.splitext(f)[1], files)) return extensions.issubset({".yml", ".yaml", ".json", ".csv", ".tsv"})
def matches(data): files = get_files(data) extensions = set(map(lambda f: os.path.splitext(f)[1], files)) return extensions.issubset({".jpg", ".jpeg", ".gif", ".png"})