code: def _propagate(self, path, val):
          
          if val == '_DELETE':
              if path in self.data:
                  del self.data[path]
              else:
                  items = [(key, v) for key, v in self.data.items()
                           if not all(k==p for k, p in zip(key, path))]
                  self.data = OrderedDict(items)
          else:
              self.data[path] = val
          if self.parent is not None:
              self.parent._propagate((self.identifier,)+path, val)
docs: Propagate the value up to the root node.