

def read_subject(self, subject_type='', predicate='', object='', assoc='', id_only=False):
    if assoc:
        if (type(assoc) is str):
            assoc = self.read_association(assoc)
        return (assoc.s if id_only else self.read(assoc.s))
    else:
        (sub_list, assoc_list) = self.find_subjects(subject_type=subject_type, predicate=predicate, object=object, id_only=True)
        if (not sub_list):
            raise NotFound(('No subject found for subject_type=%s, predicate=%s, object=%s' % (subject_type, predicate, object)))
        elif (len(sub_list) > 1):
            raise Inconsistent(('More than one subject found for subject_type=%s, predicate=%s, object=%s: count=%s' % (subject_type, predicate, object, len(sub_list))))
        return (sub_list[0] if self else self.read(sub_list[0]))

dataset/ETHPy150Open ooici/pyon/pyon/ion/resregistry.py ResourceRegistry.read_subject/VarMisuse@173/277 `id_only`->`self`