Skip to content
Snippets Groups Projects
Commit 8be1d1e7 authored by florian's avatar florian
Browse files

WIP: Add jsonref for reference resolving

parent b6210356
No related branches found
No related tags found
2 merge requests!73MAINT: change wording of TableImporter argument and allow converters and...,!72Extend json-schema model parser
Pipeline #36027 failed
......@@ -163,7 +163,8 @@ def setup_package():
"xlrd>=2.0",
],
extras_require={"h5-crawler": ["h5py>=3.3.0", ],
"gitignore-parser ": ["gitignore-parser >=0.1.0", ],
"gitignore-parser": ["gitignore-parser >=0.1.0", ],
"jsonref": ["jsonref", ],
},
packages=find_packages('src'),
package_dir={'': 'src'},
......
......@@ -35,8 +35,9 @@ not defined, simply the name can be supplied with no value.
Parents can be provided under the 'inherit_from_xxxx' keywords. The value needs
to be a list with the names. Here, NO NEW entities can be defined.
"""
import json
import argparse
import json
import jsonref
import re
import sys
import yaml
......@@ -648,7 +649,7 @@ class JsonSchemaParser(Parser):
# @date 2022-02-17
# @review Timm Fitschen 2022-02-30
with open(filename, 'r') as schema_file:
model_dict = json.load(schema_file)
model_dict = jsonref.load(schema_file)
return self._create_model_from_dict(model_dict, top_level_recordtype=top_level_recordtype)
......
......@@ -32,6 +32,9 @@
"number_prop": {
"type": "number",
"description": "Some float property"
},
"user_id": {
"$ref": "#/definitions/uuid"
}
},
"required": ["title", "number_prop"]
......
......@@ -367,11 +367,12 @@ def test_no_toplevel_entity():
assert rt1.name == "Dataset1"
assert rt1.description == "Some description"
assert len(rt1.get_properties()) == 3
assert len(rt1.get_properties()) == 4
assert rt1.get_property("title") is not None
assert rt1.get_property("campaign") is not None
assert rt1.get_property("number_prop") is not None
assert rt1.get_property("user_id") is not None
title_prop = rt1.get_property("title")
assert title_prop.datatype == db.TEXT
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment