code: def apply_change(self, path, *args):
          # type: (List[str], Any) -> None
          
          if len(path) > 1:
              # This is for a child
              self[path[0]].apply_change(path[1:], *args)
          else:
              # This is for us
              assert len(path) == 1 and len(args) == 1, \
                  "Cannot process change %s" % ([self.path + path] + list(args))
              getattr(self, "set_%s" % path[0])(args[0])
docs: Take a single change from a Delta and apply it to this model