diff options
author | pukkandan <pukkandan.ytdlp@gmail.com> | 2021-03-09 07:47:21 +0530 |
---|---|---|
committer | pukkandan <pukkandan.ytdlp@gmail.com> | 2021-03-14 20:02:55 +0530 |
commit | e92caff5d50e60bfd33563d631f0c49ce176dc70 (patch) | |
tree | a215d99d7b70983d1b5e20338ddc7b46adddd935 /yt_dlp/utils.py | |
parent | ea3a012d2aa6f71945f934ab8426852c8abdbf35 (diff) |
Refactor (See desc)
* Create `FFmpegPostProcessor.real_run_ffmpeg` that can accept multiple input/output files along with switches for each
* Rewrite `cli_configuration_args` and related functions
* Create `YoutubeDL._ensure_dir_exists` - this was previously defined in multiple places
Diffstat (limited to 'yt_dlp/utils.py')
-rw-r--r-- | yt_dlp/utils.py | 34 |
1 files changed, 12 insertions, 22 deletions
diff --git a/yt_dlp/utils.py b/yt_dlp/utils.py index 12bc637f8..77f8c0f4d 100644 --- a/yt_dlp/utils.py +++ b/yt_dlp/utils.py @@ -4692,36 +4692,26 @@ def cli_valueless_option(params, command_option, param, expected_value=True): return [command_option] if param == expected_value else [] -def cli_configuration_args(argdict, key, default=[], exe=None, use_default_arg=True): - # use_default_arg can be True, False, or 'no_compat' +def cli_configuration_args(argdict, keys, default=[], use_compat=True): if isinstance(argdict, (list, tuple)): # for backward compatibility - if use_default_arg is True: + if use_compat: return argdict else: argdict = None - if argdict is None: return default assert isinstance(argdict, dict) - key = key.lower() - args = exe_args = None - if exe is not None: - assert isinstance(exe, compat_str) - exe = exe.lower() - args = argdict.get('%s+%s' % (key, exe)) - if args is None: - exe_args = argdict.get(exe) - - if args is None: - args = argdict.get(key) if key != exe else None - if args is None and exe_args is None: - args = argdict.get('default', default) if use_default_arg else default - - args, exe_args = args or [], exe_args or [] - assert isinstance(args, (list, tuple)) - assert isinstance(exe_args, (list, tuple)) - return args + exe_args + 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])) + if arg_list: + return [arg for args in arg_list for arg in args] + return default class ISO639Utils(object): |