Skip to content

Commit 012111f

Browse files
authored
patch revs_with_datapoints not being provided (#150)
1 parent f1cb983 commit 012111f

File tree

3 files changed

+91
-2
lines changed

3 files changed

+91
-2
lines changed

pyproject.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ tests = [
4646
"dvc-render[table]",
4747
"dvc-render[markdown]",
4848
"pytest==7.2.0",
49-
"pytest-sugar==0.9.5",
49+
"pytest-sugar==0.9.7",
5050
"pytest-cov==3.0.0",
5151
"pytest-mock==3.8.2",
5252
"mypy==1.2.0",

src/dvc_render/vega.py

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -211,7 +211,18 @@ def get_revs(self):
211211
"""
212212
Returns all revisions that were collected that have datapoints.
213213
"""
214-
return self.properties.get("revs_with_datapoints", [])
214+
return (
215+
self.properties.get("revs_with_datapoints", [])
216+
or self._get_revs_from_datapoints()
217+
)
218+
219+
def _get_revs_from_datapoints(self):
220+
revs = []
221+
for datapoint in self.datapoints:
222+
rev = datapoint.get("rev")
223+
if rev and rev not in revs:
224+
revs.append(rev)
225+
return revs
215226

216227
def _process_optional_anchors(self, split_anchors: List[str]):
217228
optional_anchors = [

tests/test_vega.py

Lines changed: 78 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -526,6 +526,84 @@ def test_optional_anchors_linear( # noqa: PLR0913
526526
assert plot_content["layer"][0]["transform"][0]["groupby"] == group_by
527527

528528

529+
# https://github.com/iterative/dvc-render/issues/149
530+
def test_no_revs_with_datapoints():
531+
datapoints = [
532+
{
533+
"rev": "B",
534+
"acc": "0.05",
535+
"filename": "test",
536+
"field": "acc",
537+
"step": 1,
538+
},
539+
{
540+
"rev": "B",
541+
"acc": "0.1",
542+
"filename": "test",
543+
"field": "acc",
544+
"step": 2,
545+
},
546+
{
547+
"rev": "C",
548+
"acc": "0.05",
549+
"filename": "test",
550+
"field": "acc",
551+
"step": 1,
552+
},
553+
{
554+
"rev": "C",
555+
"acc": "0.1",
556+
"filename": "test",
557+
"field": "acc",
558+
"step": 2,
559+
},
560+
{
561+
"rev": "D",
562+
"acc": "0.05",
563+
"filename": "test",
564+
"field": "acc",
565+
"step": 1,
566+
},
567+
{
568+
"rev": "D",
569+
"acc": "0.1",
570+
"filename": "test",
571+
"field": "acc",
572+
"step": 2,
573+
},
574+
{
575+
"acc": "0.05",
576+
"filename": "test",
577+
"field": "acc",
578+
"step": 1,
579+
},
580+
{
581+
"acc": "0.05",
582+
"filename": "test",
583+
"field": "acc",
584+
"step": 2,
585+
},
586+
]
587+
588+
props = {
589+
"anchors_y_definitions": [{"filename": "test", "field": "acc"}],
590+
"template": "linear",
591+
"x": "step",
592+
"y": "acc",
593+
}
594+
595+
renderer = VegaRenderer(datapoints, "foo", **props)
596+
plot_content = renderer.get_filled_template()
597+
598+
assert plot_content["encoding"]["color"] == {
599+
"field": "rev",
600+
"scale": {
601+
"domain": ["B", "C", "D"],
602+
"range": OPTIONAL_ANCHOR_RANGES["color"][0:3],
603+
},
604+
}
605+
606+
529607
@pytest.mark.parametrize(
530608
(
531609
"anchors_y_definitions",

0 commit comments

Comments
 (0)