mirror of
				https://github.com/yt-dlp/yt-dlp.git
				synced 2025-10-31 14:45:14 +00:00 
			
		
		
		
	[utils] traverse_obj: Move is_user_input into output template (#8673)
				
					
				
			Authored by: Grub4K
This commit is contained in:
		| @@ -1201,6 +1201,15 @@ class YoutubeDL: | ||||
|                 (?:\|(?P<default>.*?))? | ||||
|             )$''') | ||||
| 
 | ||||
|         def _from_user_input(field): | ||||
|             if field == ':': | ||||
|                 return ... | ||||
|             elif ':' in field: | ||||
|                 return slice(*map(int_or_none, field.split(':'))) | ||||
|             elif int_or_none(field) is not None: | ||||
|                 return int(field) | ||||
|             return field | ||||
| 
 | ||||
|         def _traverse_infodict(fields): | ||||
|             fields = [f for x in re.split(r'\.({.+?})\.?', fields) | ||||
|                       for f in ([x] if x.startswith('{') else x.split('.'))] | ||||
| @@ -1210,11 +1219,12 @@ class YoutubeDL: | ||||
| 
 | ||||
|             for i, f in enumerate(fields): | ||||
|                 if not f.startswith('{'): | ||||
|                     fields[i] = _from_user_input(f) | ||||
|                     continue | ||||
|                 assert f.endswith('}'), f'No closing brace for {f} in {fields}' | ||||
|                 fields[i] = {k: k.split('.') for k in f[1:-1].split(',')} | ||||
|                 fields[i] = {k: list(map(_from_user_input, k.split('.'))) for k in f[1:-1].split(',')} | ||||
| 
 | ||||
|             return traverse_obj(info_dict, fields, is_user_input=True, traverse_string=True) | ||||
|             return traverse_obj(info_dict, fields, traverse_string=True) | ||||
| 
 | ||||
|         def get_value(mdict): | ||||
|             # Object traversal | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 Simon Sawicki
					Simon Sawicki