def __getitem__(self, index): if self._collection is None: self._collection = self._resolve() if index > self._total: per_page = self._kwargs['per_page'] page = index/per_page kwargs = self._kwargs kwargs['page'] = page link = CollectionLinkProxy(link=self._link, binding=self._binding, **kwargs) return link[index-page*per_page] try: item = self._collection[index] if isinstance(item, dict): if URI in item: return utils.evaluate_ref(self._collection[index][URI], self._binding.client, self._collection[index]) elif REF in item: return utils.evaluate_ref(self._collection[index][REF], self._binding.client) return item except IndexError: raise IndexError(index)
def resolve(cls, obj, client): return utils.evaluate_ref(obj["$ref"], client)