Skip to content

Commit 4df3d58

Browse files
committed
Add dataset template mode
1 parent 0d1d284 commit 4df3d58

File tree

2 files changed

+64
-13
lines changed

2 files changed

+64
-13
lines changed

share/openPMD/json_schema/dataset_defs.toml

Lines changed: 64 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -7,19 +7,15 @@
77
[["$defs".any_type_recursive_array.anyOf]]
88
title = "A numeric type"
99
type = "array"
10-
items.anyOf = [{"type" = "number"}, {"type" = "null"}]
10+
items.anyOf = [{ "type" = "number" }, { "type" = "null" }]
1111

1212
[["$defs".any_type_recursive_array.anyOf]]
1313
title = "A recursive array of numeric types"
1414
type = "array"
1515
items."$ref" = "#/$defs/any_type_recursive_array"
1616

17-
["$defs".any_type_dataset]
18-
title = "A dataset of any numeric type"
19-
required = ["data", "datatype"]
20-
21-
["$defs".any_type_dataset.properties]
2217

18+
["$defs".any_type_dataset_properties.properties]
2319
datatype.enum = [
2420
"CHAR",
2521
"UCHAR",
@@ -41,6 +37,36 @@ datatype.enum = [
4137
"BOOL",
4238
]
4339
data."$ref" = "#/$defs/any_type_recursive_array"
40+
extent = { type = "array", items = { type = "integer" } }
41+
42+
43+
###################################################
44+
# Either `datatype` and `data` must be defined... #
45+
###################################################
46+
47+
[["$defs".any_type_dataset.anyOf]]
48+
title = "A dataset of any numeric type"
49+
allOf = [
50+
{ required = [
51+
"datatype",
52+
"data",
53+
], title = "Required properties" },
54+
{ "$ref" = "#/$defs/any_type_dataset_properties", title = "Property definitions" },
55+
]
56+
57+
#########################################################
58+
# ...or `datatype` and `extent` must be (template form) #
59+
#########################################################
60+
61+
[["$defs".any_type_dataset.anyOf]]
62+
title = "A template dataset of any numeric type"
63+
allOf = [
64+
{ required = [
65+
"datatype",
66+
"extent",
67+
], title = "Required properties" },
68+
{ "$ref" = "#/$defs/any_type_dataset_properties", title = "Property definitions" },
69+
]
4470

4571
######################################
4672
# n-dimensional datasets of int type #
@@ -49,19 +75,15 @@ data."$ref" = "#/$defs/any_type_recursive_array"
4975
[["$defs".int_type_recursive_array.anyOf]]
5076
title = "An integer type"
5177
type = "array"
52-
items.anyOf = [{"type" = "integer"}, {"type" = "null"}]
78+
items.anyOf = [{ "type" = "integer" }, { "type" = "null" }]
5379

5480
[["$defs".int_type_recursive_array.anyOf]]
5581
title = "A recursive array of integer types"
5682
type = "array"
5783
items."$ref" = "#/$defs/int_type_recursive_array"
5884

59-
["$defs".int_type_dataset]
60-
title = "A dataset of integer type"
61-
required = ["data", "datatype"]
62-
63-
["$defs".int_type_dataset.properties]
6485

86+
["$defs".int_type_dataset_properties.properties]
6587
datatype.enum = [
6688
"CHAR",
6789
"UCHAR",
@@ -77,3 +99,33 @@ datatype.enum = [
7799
"BOOL",
78100
]
79101
data."$ref" = "#/$defs/int_type_recursive_array"
102+
extent = { type = "array", items = { type = "integer" } }
103+
104+
105+
###################################################
106+
# Either `datatype` and `data` must be defined... #
107+
###################################################
108+
109+
[["$defs".int_type_dataset.anyOf]]
110+
title = "A dataset of integer type"
111+
allOf = [
112+
{ required = [
113+
"datatype",
114+
"data",
115+
], title = "Required properties" },
116+
{ "$ref" = "#/$defs/int_type_dataset_properties", title = "Property definitions" },
117+
]
118+
119+
#########################################################
120+
# ...or `datatype` and `extent` must be (template form) #
121+
#########################################################
122+
123+
[["$defs".int_type_dataset.anyOf]]
124+
title = "A dataset template of integer type"
125+
allOf = [
126+
{ required = [
127+
"datatype",
128+
"extent",
129+
], title = "Required properties" },
130+
{ "$ref" = "#/$defs/int_type_dataset_properties", title = "Property definitions" },
131+
]

share/openPMD/json_schema/record_component.toml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,6 @@ title = "Either array or constant"
4343
#####################
4444

4545
[[allOf.oneOf]]
46-
required = ["data", "datatype"]
4746
description = "An n-dimensional dataset containing the payload."
4847
title = "Array dataset"
4948

0 commit comments

Comments
 (0)