[outtmpl] Do not traverse None

Closes #1585
This commit is contained in:
pukkandan 2021-11-08 00:23:57 +05:30
parent aeec0e44e2
commit 582fad70f5
No known key found for this signature in database
GPG Key ID: 0F00D95A001F4698
2 changed files with 3 additions and 2 deletions

View File

@ -737,6 +737,7 @@ def expect_same_infodict(out):
test(NA_TEST_OUTTMPL, 'NA-NA-def-1234.mp4') test(NA_TEST_OUTTMPL, 'NA-NA-def-1234.mp4')
test(NA_TEST_OUTTMPL, 'none-none-def-1234.mp4', outtmpl_na_placeholder='none') test(NA_TEST_OUTTMPL, 'none-none-def-1234.mp4', outtmpl_na_placeholder='none')
test(NA_TEST_OUTTMPL, '--def-1234.mp4', outtmpl_na_placeholder='') test(NA_TEST_OUTTMPL, '--def-1234.mp4', outtmpl_na_placeholder='')
test('%(non_existent.0)s', 'NA')
# String formatting # String formatting
FMT_TEST_OUTTMPL = '%%(height)%s.%%(ext)s' FMT_TEST_OUTTMPL = '%%(height)%s.%%(ext)s'

View File

@ -6442,10 +6442,10 @@ def traverse_obj(
def _traverse_obj(obj, path, _current_depth=0): def _traverse_obj(obj, path, _current_depth=0):
nonlocal depth nonlocal depth
if obj is None:
return None
path = tuple(variadic(path)) path = tuple(variadic(path))
for i, key in enumerate(path): for i, key in enumerate(path):
if obj is None:
return None
if isinstance(key, (list, tuple)): if isinstance(key, (list, tuple)):
obj = [_traverse_obj(obj, sub_key, _current_depth) for sub_key in key] obj = [_traverse_obj(obj, sub_key, _current_depth) for sub_key in key]
key = ... key = ...