From 0ff3fd0431a80ced3e70e9d846d050ea418cf6c2 Mon Sep 17 00:00:00 2001 From: Constantin Pape Date: Tue, 13 May 2025 10:48:15 +0200 Subject: [PATCH 1/2] Add failing example for schema error --- .../single_source_view_selection_groups.json | 91 +++++++++++++++++++ test/test_schema.py | 4 +- 2 files changed, 94 insertions(+), 1 deletion(-) create mode 100644 specs/examples/single_source_view_selection_groups.json diff --git a/specs/examples/single_source_view_selection_groups.json b/specs/examples/single_source_view_selection_groups.json new file mode 100644 index 0000000..2e60d60 --- /dev/null +++ b/specs/examples/single_source_view_selection_groups.json @@ -0,0 +1,91 @@ +{ + "default": { + "isExclusive": false, + "sourceDisplays": [ + { + "imageDisplay": { + "blendingMode": "sum", + "color": "r255-g255-b255-a255", + "contrastLimits": [ + 290, + 23000 + ], + "name": "em-overview", + "opacity": 1.0, + "sources": [ + "em-overview" + ] + } + } + ], + "sourceTransforms": [ + { + "affine": { + "name": "MapScaleMat", + "parameters": [ + -0.10198378825464686, + -0.9710562907353596, + 0.0, + 0.0, + -0.9846441741918877, + 0.11862126451903302, + 0.0, + 0.0, + 0.0, + 0.0, + 29.30832356389215, + 0.0 + ], + "sources": [ + "em-overview" + ] + } + }, + { + "affine": { + "name": "Translation", + "parameters": [ + 1.0, + 0.0, + 0.0, + 481.249, + 0.0, + 1.0, + 0.0, + 493.667, + 0.0, + 0.0, + 1.0, + 0.0 + ], + "sources": [ + "em-overview" + ] + } + }, + { + "affine": { + "name": "manual_shift_a3", + "parameters": [ + 1.0, + 0.0, + 0.0, + 1.7940359100750243, + 0.0, + 1.0, + 0.0, + -6.6635619517072655, + 0.0, + 0.0, + 1.0, + 0.0 + ], + "sources": [ + "em-overview" + ] + } + } + ], + "uiSelectionGroups": ["bookmark", "view"] + } +} diff --git a/test/test_schema.py b/test/test_schema.py index 7777216..5c25ff5 100644 --- a/test/test_schema.py +++ b/test/test_schema.py @@ -57,7 +57,9 @@ def test_source(self): jsonschema.validate(instance=source, schema=schema) def test_view(self): - examples = ["single_source_view.json", "grid_view.json", "advanced_fig2c.json"] + examples = [ + "single_source_view.json", "grid_view.json", "advanced_fig2c.json", "single_source_view_selection_groups.json" + ] self._test_schema("view", examples) def test_views(self): From c26820a1072dadc47bba30908807ad4cc2c5c4f9 Mon Sep 17 00:00:00 2001 From: Constantin Pape Date: Tue, 13 May 2025 10:55:28 +0200 Subject: [PATCH 2/2] Fix schema --- schema/view.schema.json | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/schema/view.schema.json b/schema/view.schema.json index ed73898..9e3f983 100644 --- a/schema/view.schema.json +++ b/schema/view.schema.json @@ -863,18 +863,17 @@ "type": "object", "properties": { "uiSelectionGroup": { - "description": "Name of the UI from which this view can be selected.", + "description": "Name of the UI from which this view can be selected. You have to either specify uiSelectionGroup or uiSelectionGroups.", "$ref": "#/definitions/name" }, "uiSelectionGroups": { - "description": "Name of multiple UI elements from which this view can be selected. Values specified here will be added in addition to the value in 'uiSelectionGroup.'", + "description": "Name of multiple UI elements from which this view can be selected. You have to either specify uiSelectionGroup or uiSelectionGroups", "type": "array", "items": { "$ref": "#/definitions/name", "minItems": 1 - }, - "$ref": "#/definitions/name" + } }, "isExclusive": { @@ -914,6 +913,9 @@ "$ref": "#/definitions/viewerTransform" } }, - "required": ["isExclusive", "uiSelectionGroup"], + "oneOf": [ + {"required": ["isExclusive", "uiSelectionGroup"]}, + {"required": ["isExclusive", "uiSelectionGroups"]} + ], "additionalProperties": false }