[utils] Add __getitem__ for PagedList

This commit is contained in:
pukkandan 2021-05-17 19:14:20 +05:30
parent 483336e79e
commit 55575225b4
No known key found for this signature in database
GPG key ID: 0F00D95A001F4698

View file

@ -4000,6 +4000,15 @@ def __len__(self):
# This is only useful for tests # This is only useful for tests
return len(self.getslice()) return len(self.getslice())
def getslice(self, start, end):
raise NotImplementedError('This method must be implemented by subclasses')
def __getitem__(self, idx):
if not isinstance(idx, int) or idx < 0:
raise TypeError('indices must be non-negative integers')
entries = self.getslice(idx, idx + 1)
return entries[0] if entries else None
class OnDemandPagedList(PagedList): class OnDemandPagedList(PagedList):
def __init__(self, pagefunc, pagesize, use_cache=True): def __init__(self, pagefunc, pagesize, use_cache=True):