code: def get_value_from_path(self, keypath):
          
          if isinstance(keypath, list):
              if len(keypath) == 0:
                  # empty list is root
                  return 
              val = self 
              for next_key in keypath:
                  val = val[next_key]
              return val
          else:
              return self.__dict__['p'][keypath]
docs: Returns the value at the end of keypath (or None)
          keypath is a list of keys, e.g., ["key", "subkey", "subsubkey"]