in src/sagemaker/jumpstart/hub/parser_utils.py [0:0]
def _walk_and_apply_json(json_obj, new):
if isinstance(json_obj, dict) and isinstance(new, dict):
for key, value in json_obj.items():
new_key = apply(key)
if (stop_keys and new_key not in stop_keys) or stop_keys is None:
if isinstance(value, dict):
new[new_key] = {}
_walk_and_apply_json(value, new=new[new_key])
elif isinstance(value, list):
new[new_key] = []
for item in value:
_walk_and_apply_json(item, new=new[new_key])
else:
new[new_key] = value
else:
new[new_key] = value
elif isinstance(json_obj, dict) and isinstance(new, list):
new.append(_walk_and_apply_json(json_obj, new={}))
elif isinstance(json_obj, list) and isinstance(new, dict):
new.update(json_obj)
elif isinstance(json_obj, list) and isinstance(new, list):
new.append(json_obj)
elif isinstance(json_obj, str) and isinstance(new, list):
new.append(json_obj)
return new