diff options
author | pukkandan <pukkandan.ytdlp@gmail.com> | 2021-05-17 19:14:20 +0530 |
---|---|---|
committer | pukkandan <pukkandan.ytdlp@gmail.com> | 2021-05-29 02:12:08 +0530 |
commit | 55575225b48535ce878da8f1b8d4651fdece4259 (patch) | |
tree | 79a15fb492892d4d13dcb905dbac8c7224203df4 | |
parent | 483336e79e88d53901f6eb7ff09af2ef38e92b92 (diff) | |
download | hypervideo-pre-55575225b48535ce878da8f1b8d4651fdece4259.tar.lz hypervideo-pre-55575225b48535ce878da8f1b8d4651fdece4259.tar.xz hypervideo-pre-55575225b48535ce878da8f1b8d4651fdece4259.zip |
[utils] Add `__getitem__` for `PagedList`
-rw-r--r-- | yt_dlp/utils.py | 9 |
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): |