diff options
author | pukkandan <pukkandan.ytdlp@gmail.com> | 2022-03-09 02:24:41 +0530 |
---|---|---|
committer | pukkandan <pukkandan.ytdlp@gmail.com> | 2022-03-09 02:26:52 +0530 |
commit | ff91cf748343c41a74b09120896feccd390f91ce (patch) | |
tree | 420ebfb163bd3fd5853273a4a471fb4c0a0d8f1e /yt_dlp/utils.py | |
parent | a3b7dff015bf24141763c1125c7c0f7e80c37fd3 (diff) | |
download | hypervideo-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.py | 4 |
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,) |