1import importlib
2
3from six import next, iterkeys, itervalues
4
5
6module = importlib.import_module('psqlparse.nodes')
7
8
9def get_node_class(class_name):
10 class_name = class_name.replace('_', '')
11 return getattr(module, class_name, None)
12
13
14def build_from_obj(obj):
15 if isinstance(obj, list):
16 return [build_from_obj(item) for item in obj]
17 if not isinstance(obj, dict):
18 return obj
19 _class = get_node_class(next(iterkeys(obj)))
20 return _class(next(itervalues(obj))) if _class else obj
21
22
23def build_from_item(obj, key):
24 return build_from_obj(obj[key]) if key in obj else None