aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--yt_dlp/utils.py9
1 files changed, 9 insertions, 0 deletions
diff --git a/yt_dlp/utils.py b/yt_dlp/utils.py
index 02a12307a..40b9c4cf3 100644
--- a/yt_dlp/utils.py
+++ b/yt_dlp/utils.py
@@ -4000,6 +4000,15 @@ class PagedList(object):
# This is only useful for tests
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):
def __init__(self, pagefunc, pagesize, use_cache=True):