def __getitem__(self, key): if isinstance(key, slice): return [ BaseArticle(DBController.get_article(self.articles_id[ii])) for ii in range(*key.indices(len(self))) ] elif np.issubdtype(type(key), np.integer): if key < 0: key += len(self) if key < 0 or key >= len(self): raise IndexError("The index {} is out of range.".format(key)) return BaseArticle(DBController.get_article(self.articles_id[key])) else: raise TypeError("Invalid argument type.")
def __iter__(self): for id in self.articles_id: yield BaseArticle(DBController.get_article(id))