aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorpukkandan <pukkandan.ytdlp@gmail.com>2021-05-17 19:14:20 +0530
committerpukkandan <pukkandan.ytdlp@gmail.com>2021-05-29 02:12:08 +0530
commit55575225b48535ce878da8f1b8d4651fdece4259 (patch)
tree79a15fb492892d4d13dcb905dbac8c7224203df4
parent483336e79e88d53901f6eb7ff09af2ef38e92b92 (diff)
downloadhypervideo-pre-55575225b48535ce878da8f1b8d4651fdece4259.tar.lz
hypervideo-pre-55575225b48535ce878da8f1b8d4651fdece4259.tar.xz
hypervideo-pre-55575225b48535ce878da8f1b8d4651fdece4259.zip
[utils] Add `__getitem__` for `PagedList`
-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):