Advertisement
vsokoltsov

Untitled

Feb 22nd, 2018
67
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.87 KB | None | 0 0
  1. from ast import literal_eval
  2. import ipdb
  3.  
  4. class QueryParser:
  5. """ Base class for parsing the query """
  6.  
  7. def __init__(self, schema):
  8. """ Initialize class; Set schema value """
  9.  
  10. self.schema = schema
  11.  
  12. def parse(self, params):
  13. """ Parse given parameters in order to match the schema """
  14.  
  15. denormalized = {}
  16. for key, value in self.schema.items():
  17. if value is dict:
  18. denormalized[key] = self._parse_dict(params.get(key))
  19. elif value is list:
  20. denormalized[key] = params.getlist(key)
  21. else:
  22. denormalized[key] = params.get(key)
  23.  
  24. return denormalized
  25.  
  26.  
  27. def _parse_dict(self, val):
  28. """ Parse given parameters to dict """
  29.  
  30. try:
  31. return literal_eval(val)
  32. except ValueError:
  33. return val
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement