code: def set_path(self, path, val):
          
          path = tuple(path.split('.')) if isinstance(path , str) else tuple(path)
  
          disallowed = [p for p in path if not type(self)._sanitizer.allowable(p)]
          if any(disallowed):
              raise Exception("Attribute strings in path elements cannot be "
                              "correctly escaped : %s" % ','.join(repr(el) for el in disallowed))
          if len(path) > 1:
              attrtree = self.__getattr__(path[0])
              attrtree.set_path(path[1:], val)
          else:
              self.__setattr__(path[0], val)
docs: Set the given value at the supplied path where path is either
          a tuple of strings or a string in A.B.C format.