aboutsummaryrefslogtreecommitdiffstats
path: root/yt_dlp/utils.py
diff options
context:
space:
mode:
authorpukkandan <pukkandan.ytdlp@gmail.com>2022-03-09 02:24:41 +0530
committerpukkandan <pukkandan.ytdlp@gmail.com>2022-03-09 02:26:52 +0530
commitff91cf748343c41a74b09120896feccd390f91ce (patch)
tree420ebfb163bd3fd5853273a4a471fb4c0a0d8f1e /yt_dlp/utils.py
parenta3b7dff015bf24141763c1125c7c0f7e80c37fd3 (diff)
downloadhypervideo-pre-ff91cf748343c41a74b09120896feccd390f91ce.tar.lz
hypervideo-pre-ff91cf748343c41a74b09120896feccd390f91ce.tar.xz
hypervideo-pre-ff91cf748343c41a74b09120896feccd390f91ce.zip
[utils] Add `get_first`
Diffstat (limited to 'yt_dlp/utils.py')
-rw-r--r--yt_dlp/utils.py4
1 files changed, 4 insertions, 0 deletions
diff --git a/yt_dlp/utils.py b/yt_dlp/utils.py
index 10a9a72ff..9b130e109 100644
--- a/yt_dlp/utils.py
+++ b/yt_dlp/utils.py
@@ -5218,6 +5218,10 @@ def traverse_dict(dictn, keys, casesense=True):
return traverse_obj(dictn, keys, casesense=casesense, is_user_input=True, traverse_string=True)
+def get_first(obj, keys, **kwargs):
+ return traverse_obj(obj, (..., *variadic(keys)), **kwargs, get_all=False)
+
+
def variadic(x, allowed_types=(str, bytes, dict)):
return x if isinstance(x, collections.abc.Iterable) and not isinstance(x, allowed_types) else (x,)