aboutsummaryrefslogtreecommitdiffstats
path: root/yt_dlp/utils.py
diff options
context:
space:
mode:
authorpukkandan <pukkandan.ytdlp@gmail.com>2021-07-11 03:29:44 +0530
committerpukkandan <pukkandan.ytdlp@gmail.com>2021-07-11 04:46:51 +0530
commit6606817a86b96cc66aaa1d567b7bfce0c75500a2 (patch)
tree1ce9ff0cf4f8a6b669b6a409c514ca0d68f21d3f /yt_dlp/utils.py
parent73d829c144601c105f7ee1a3d8f2aed6d8e1b76d (diff)
downloadhypervideo-pre-6606817a86b96cc66aaa1d567b7bfce0c75500a2.tar.lz
hypervideo-pre-6606817a86b96cc66aaa1d567b7bfce0c75500a2.tar.xz
hypervideo-pre-6606817a86b96cc66aaa1d567b7bfce0c75500a2.zip
[utils] Add `variadic`
Diffstat (limited to 'yt_dlp/utils.py')
-rw-r--r--yt_dlp/utils.py12
1 files changed, 6 insertions, 6 deletions
diff --git a/yt_dlp/utils.py b/yt_dlp/utils.py
index f0d0097bb..888cfbb7e 100644
--- a/yt_dlp/utils.py
+++ b/yt_dlp/utils.py
@@ -4289,9 +4289,7 @@ def dict_get(d, key_or_keys, default=None, skip_false_values=True):
def try_get(src, getter, expected_type=None):
- if not isinstance(getter, (list, tuple)):
- getter = [getter]
- for get in getter:
+ for get in variadic(getter):
try:
v = get(src)
except (AttributeError, KeyError, TypeError, IndexError):
@@ -4964,11 +4962,9 @@ def cli_configuration_args(argdict, keys, default=[], use_compat=True):
assert isinstance(keys, (list, tuple))
for key_list in keys:
- if isinstance(key_list, compat_str):
- key_list = (key_list,)
arg_list = list(filter(
lambda x: x is not None,
- [argdict.get(key.lower()) for key in key_list]))
+ [argdict.get(key.lower()) for key in variadic(key_list)]))
if arg_list:
return [arg for args in arg_list for arg in args]
return default
@@ -6265,3 +6261,7 @@ def traverse_dict(dictn, keys, casesense=True):
''' For backward compatibility. Do not use '''
return traverse_obj(dictn, keys, casesense=casesense,
is_user_input=True, traverse_string=True)
+
+
+def variadic(x, allowed_types=str):
+ return x if isinstance(x, collections.Iterable) and not isinstance(x, allowed_types) else (x,)