Skip to content

Commit 801c3c5

Browse files
Merge pull request #59 from AustralianBioCommons/fix-dont-script-program-proj-rule-validate
Fix dont script program proj rule validate
2 parents 8188181 + e170150 commit 801c3c5

File tree

4 files changed

+44
-13
lines changed

4 files changed

+44
-13
lines changed

jupyter/protoyping.ipynb

Lines changed: 11 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -17,18 +17,20 @@
1717
"metadata": {},
1818
"outputs": [
1919
{
20-
"data": {
21-
"text/plain": [
22-
"True"
23-
]
24-
},
25-
"execution_count": 3,
26-
"metadata": {},
27-
"output_type": "execute_result"
20+
"ename": "ValueError",
21+
"evalue": "Schema 'project' property 'consent_codes' with type 'array' must include an 'items' property. Please add an 'items' property to the 'properties' section.",
22+
"output_type": "error",
23+
"traceback": [
24+
"\u001b[31m---------------------------------------------------------------------------\u001b[39m",
25+
"\u001b[31mValueError\u001b[39m Traceback (most recent call last)",
26+
"\u001b[36mCell\u001b[39m\u001b[36m \u001b[39m\u001b[32mIn[3]\u001b[39m\u001b[32m, line 3\u001b[39m\n\u001b[32m 1\u001b[39m lipid_schema = g.utils.load_yaml(\u001b[33m\"\u001b[39m\u001b[33m/Users/harrijh/projects/gen3schemadev/src/gen3schemadev/schema/schema_templates/project.yaml\u001b[39m\u001b[33m\"\u001b[39m)\n\u001b[32m 2\u001b[39m rule_val = g.validators.rule_validator.RuleValidator(lipid_schema)\n\u001b[32m----> \u001b[39m\u001b[32m3\u001b[39m \u001b[43mrule_val\u001b[49m\u001b[43m.\u001b[49m\u001b[43mtype_array_needs_items\u001b[49m\u001b[43m(\u001b[49m\u001b[43m)\u001b[49m\n",
27+
"\u001b[36mFile \u001b[39m\u001b[32m~/projects/gen3schemadev/src/gen3schemadev/validators/rule_validator.py:226\u001b[39m, in \u001b[36mRuleValidator.type_array_needs_items\u001b[39m\u001b[34m(self)\u001b[39m\n\u001b[32m 224\u001b[39m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;28misinstance\u001b[39m(value, \u001b[38;5;28mdict\u001b[39m) \u001b[38;5;129;01mand\u001b[39;00m value.get(\u001b[33m\"\u001b[39m\u001b[33mtype\u001b[39m\u001b[33m\"\u001b[39m) == \u001b[33m\"\u001b[39m\u001b[33marray\u001b[39m\u001b[33m\"\u001b[39m:\n\u001b[32m 225\u001b[39m \u001b[38;5;28;01mif\u001b[39;00m \u001b[33m\"\u001b[39m\u001b[33mitems\u001b[39m\u001b[33m\"\u001b[39m \u001b[38;5;129;01mnot\u001b[39;00m \u001b[38;5;129;01min\u001b[39;00m value:\n\u001b[32m--> \u001b[39m\u001b[32m226\u001b[39m \u001b[38;5;28;01mraise\u001b[39;00m \u001b[38;5;167;01mValueError\u001b[39;00m(\n\u001b[32m 227\u001b[39m \u001b[33mf\u001b[39m\u001b[33m\"\u001b[39m\u001b[33mSchema \u001b[39m\u001b[33m'\u001b[39m\u001b[38;5;132;01m{\u001b[39;00m\u001b[38;5;28mself\u001b[39m.schema.get(\u001b[33m'\u001b[39m\u001b[33mid\u001b[39m\u001b[33m'\u001b[39m)\u001b[38;5;132;01m}\u001b[39;00m\u001b[33m'\u001b[39m\u001b[33m property \u001b[39m\u001b[33m'\u001b[39m\u001b[38;5;132;01m{\u001b[39;00mkey\u001b[38;5;132;01m}\u001b[39;00m\u001b[33m'\u001b[39m\u001b[33m with type \u001b[39m\u001b[33m'\u001b[39m\u001b[33marray\u001b[39m\u001b[33m'\u001b[39m\u001b[33m must include an \u001b[39m\u001b[33m'\u001b[39m\u001b[33mitems\u001b[39m\u001b[33m'\u001b[39m\u001b[33m property. \u001b[39m\u001b[33m\"\u001b[39m\n\u001b[32m 228\u001b[39m \u001b[33m\"\u001b[39m\u001b[33mPlease add an \u001b[39m\u001b[33m'\u001b[39m\u001b[33mitems\u001b[39m\u001b[33m'\u001b[39m\u001b[33m property to the \u001b[39m\u001b[33m'\u001b[39m\u001b[33mproperties\u001b[39m\u001b[33m'\u001b[39m\u001b[33m section.\u001b[39m\u001b[33m\"\u001b[39m\n\u001b[32m 229\u001b[39m )\n\u001b[32m 230\u001b[39m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28;01mTrue\u001b[39;00m\n",
28+
"\u001b[31mValueError\u001b[39m: Schema 'project' property 'consent_codes' with type 'array' must include an 'items' property. Please add an 'items' property to the 'properties' section."
29+
]
2830
}
2931
],
3032
"source": [
31-
"lipid_schema = g.utils.load_yaml(\"../output/lipidomics_file.yaml\")\n",
33+
"lipid_schema = g.utils.load_yaml(\"/Users/harrijh/projects/gen3schemadev/src/gen3schemadev/schema/schema_templates/project.yaml\")\n",
3234
"rule_val = g.validators.rule_validator.RuleValidator(lipid_schema)\n",
3335
"rule_val.type_array_needs_items()"
3436
]

pyproject.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[project]
22
name = "Gen3SchemaDev"
3-
version = "2.3.1"
3+
version = "2.3.2"
44
description = "Tool for data modelling in Gen3"
55
authors = [
66
{name = "JoshuaHarris391",email = "[email protected]"}

src/gen3schemadev/cli.py

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -205,9 +205,10 @@ def main():
205205

206206
# Exclusion list
207207
exclude_schema_list = [
208-
'project', '_definitions', '_settings',
209-
'_terms', 'core_metadata_collection',
210-
'program'
208+
'_definitions',
209+
'_settings',
210+
'_terms',
211+
'core_metadata_collection',
211212
]
212213
if args.no_exclude:
213214
print(f"Validation now includes: {exclude_schema_list}")

src/gen3schemadev/schema/schema_templates/project.yaml

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -126,6 +126,34 @@ properties:
126126
\ and/or material might be removed, stored or used. \\n\n Based on the\
127127
\ Data Use Ontology : see http://www.obofoundry.org/ontology/duo.html"
128128
type: array
129+
items:
130+
type: string
131+
enum:
132+
- General Research Use
133+
- Health or Biomedical Research
134+
- Disease Specific Research
135+
- not for profit, non commercial user only
136+
- ethics approval required
137+
- user specific restriction
138+
enumDef:
139+
- enumeration: General Research Use
140+
source: duo
141+
term_id: DUO:0000042
142+
- enumeration: Health or Biomedical Research
143+
source: duo
144+
term_id: DUO:0000006
145+
- enumeration: Disease Specific Research
146+
source: duo
147+
term_id: DUO:0000007
148+
- enumeration: not for profit, non commercial user only
149+
source: duo
150+
term_id: DUO:0000018
151+
- enumeration: ethics approval required
152+
source: duo
153+
term_id: DUO:0000021
154+
- enumeration: user specific restriction
155+
source: duo
156+
term_id: DUO:0000026
129157
data_access_url:
130158
description: A URL link that takes you to a page that explains how to gain access
131159
to the project

0 commit comments

Comments
 (0)