def _get_aa(self, attr):
        if attr in self.cache:
            return self.cache[attr]
        else:
            try:
                kv = self.KVClass.objects.get(**{'key': attr, 'obj':
                                                 self.obj})
            except __HOLE__:
                raise AttributeError("{0} AuxAttr has no attribute "
                                     "{1}".format(self.KVClass, attr))
            self.cache[attr] = kv.value
            return kv.value
        raise AttributeError()
dataset/ETHPy150Open mozilla/inventory/core/keyvalue/utils.py/AuxAttr._get_aa