|
|
@ -36,14 +36,18 @@ logger = logging.getLogger(__name__)
|
|
|
|
|
|
|
|
|
|
|
|
def resolve_references(path, schema):
|
|
|
|
def resolve_references(path, schema):
|
|
|
|
if isinstance(schema, dict):
|
|
|
|
if isinstance(schema, dict):
|
|
|
|
result = {}
|
|
|
|
# do $ref first
|
|
|
|
for key, value in schema.items():
|
|
|
|
if '$ref' in schema:
|
|
|
|
if key == "$ref":
|
|
|
|
value = schema['$ref']
|
|
|
|
path = os.path.join(os.path.dirname(path), value)
|
|
|
|
path = os.path.join(os.path.dirname(path), value)
|
|
|
|
with open(path) as f:
|
|
|
|
with open(path) as f:
|
|
|
|
schema = yaml.load(f)
|
|
|
|
ref = yaml.load(f)
|
|
|
|
return resolve_references(path, schema)
|
|
|
|
result = resolve_references(path, ref)
|
|
|
|
|
|
|
|
del schema['$ref']
|
|
|
|
else:
|
|
|
|
else:
|
|
|
|
|
|
|
|
result = {}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
for key, value in schema.items():
|
|
|
|
result[key] = resolve_references(path, value)
|
|
|
|
result[key] = resolve_references(path, value)
|
|
|
|
return result
|
|
|
|
return result
|
|
|
|
elif isinstance(schema, list):
|
|
|
|
elif isinstance(schema, list):
|
|
|
|