Coverage for /pythoncovmergedfiles/medio/medio/usr/local/lib/python3.11/site-packages/psqlparse-1.0rc7-py3.11-linux-x86_64.egg/psqlparse/nodes/utils.py: 94%

Shortcuts on this page

r m x   toggle line displays

j k   next/prev highlighted chunk

0   (zero) top of page

1   (one) first highlighted chunk

16 statements  

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