in tools/resource.py [0:0]
def _handle_prop(self, prop: dict):
for k in list(prop):
if k == "required" and prop.get("type") == "object":
nk = ".RequiredList"
else:
nk = "{}{}".format(k[0].upper(), k[1:])
prop[nk] = prop.pop(k)
t = prop.get("Type")
if isinstance(t, list):
if "object" in t:
t = "object"
elif "array" in t:
t = "array"
else:
t = t[-1]
prop["Type"] = t
if t == "array":
prop["Type"] = "list"
item_schema = prop.get("Items")
self._handle_prop(item_schema)
prop["Schema"] = {"*": item_schema}
elif t == "object":
prop["Type"] = "map"
props = prop.get("Properties")
if props:
required_names = prop.pop(".RequiredList", None)
self._handle_props(props, required_names)
prop["Schema"] = props
elif not t and "oneof" in prop:
for each_prop in prop["oneof"]:
self._handle_prop(each_prop)