Skip to content

Commit 39b437c

Browse files
committed
fix bug introduced by 'conformsTo' function
1 parent 5e9c3b4 commit 39b437c

1 file changed

Lines changed: 18 additions & 1 deletion

File tree

src/common.py

Lines changed: 18 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -231,10 +231,26 @@ def remove_conformsTo(x):
231231
return x
232232

233233

234+
def merge_class_definitions_into_validation(x):
235+
class_definitions = x.get('definitions', {})
236+
if not class_definitions:
237+
return x
238+
validation = x.get('$validation')
239+
if not validation:
240+
return x
241+
validation_definitions = validation.get('definitions', {})
242+
merged_definitions = dict(class_definitions)
243+
merged_definitions.update(validation_definitions)
244+
x['$validation']['definitions'] = merged_definitions
245+
del x['definitions']
246+
return x
247+
248+
234249
def add_conformsTo(spec_list,x):
235250
cleanname = deletenamespace(x)
236251
spec_info = spec_list.loc[spec_list['name'] == cleanname]
237252
spec_url = spec_info.iloc[0]['url']
253+
x = merge_class_definitions_into_validation(x)
238254
conformsTodict = {
239255
"description": "This is used to state the Bioschemas profile that the markup relates to. The identifier can be the url for the version of this bioschemas class on github: "+spec_url,
240256
"$ref": "#/definitions/conformsDefinition"
@@ -262,7 +278,8 @@ def add_conformsTo(spec_list,x):
262278
}
263279
x['$validation']['properties']['conformsTo'] = conformsTodict
264280
requirementlist = x['$validation']['required']
265-
requirementlist.append('conformsTo')
281+
if 'conformsTo' not in requirementlist:
282+
requirementlist.append('conformsTo')
266283
x['$validation']['required'] = requirementlist
267284
try:
268285
definitiondict = x['$validation']['definitions']

0 commit comments

Comments
 (0)