def update_index(self, idx, v, tbl, field_name, relation): pk = getattr(v, 'id') self.index.setdefault(key(tbl, str(pk)), v) rel_data = [] try: rel_data = getattr(v, relation, getattr(v, field_name)) except KeyError as e: #logging.debug("Could not find relation: %s => %s"%(key(tbl,relation), e)) return self.index[key(tbl, str(pk), relation)] = rel_data
def index_lookup(self, tbl, id, rel_key, rel_id=''): #logging.debug("index.lookup: %s, %s, %s"%(tbl,id,rel_key)) if rel_key is None or rel_id in ['id', 'pk']: return self._memory.index.get(key(tbl, str(id))) return Iterse(self._memory.index.get(key(tbl, str(id), rel_key), []))