Advertisement
Uno-Dan

Untitled

Oct 29th, 2018
139
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.13 KB | None | 0 0
  1.     def set(self, data=None, uri=None):
  2.  
  3.         def deep_iterate(value, _uri):
  4.             _uri = self.sanitize_uri(_uri)
  5.  
  6.             def parse(segment, location):
  7.                 parts = location.split('/', 1)
  8.                 target = parts[0]
  9.  
  10.                 if len(parts) > 1:
  11.                     if target not in segment:
  12.                         segment[target] = {}
  13.  
  14.                     parse(segment[target], parts[1])
  15.                 else:
  16.                     segment[target] = value
  17.  
  18.             if _uri and '/' in _uri:
  19.                 parse(self.data, _uri)
  20.             elif _uri is None or _uri == '.':
  21.                 self.data = value
  22.             else:
  23.                 self.data = {**self.data, **{_uri: value}}
  24.  
  25.         if isinstance(data, dict):
  26.             def iterate(member, location=None):
  27.                 for key, item in member.items():
  28.                     if isinstance(item, dict):
  29.                         iterate(item, key)
  30.                     else:
  31.                         deep_iterate(item, location + '/' + key)
  32.             iterate(data, uri)
  33.         else:
  34.             deep_iterate(data, uri)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement