docs: def obj(self, path=None, model=None, values=None, raise_absent=False):
          """
         Return single model object instance matching given criteria
         :param path: tuple or dpath expression representing the hierarchy/chain of parent keys
         :param values: single value or list of values to match. If exact is False then .contains method is used as filter
         :param raise_absent: if True then raise exception if no match is found
         :return: matching object from cache if already created or new if not
         """
          return self.search(path=path, unique=True, raise_absent=raise_absent, values=values,
                              vfunc=lambda x: self.path_index[x[0]].instance(model=model) if x[0] in self.path_index else None)