1
0
mirror of https://github.com/yt-dlp/yt-dlp.git synced 2025-06-28 09:28:33 +00:00

[devale] improve input validation

Authored by: bashonly
This commit is contained in:
bashonly 2025-06-11 17:03:34 -05:00
parent 65b8662f37
commit afa47b8715
No known key found for this signature in database
GPG Key ID: 783F096F253D15B0
2 changed files with 12 additions and 10 deletions

View File

@ -141,7 +141,7 @@
'name': 'hole', 'name': 'hole',
'unparsed': -2, 'unparsed': -2,
'error': ValueError, 'error': ValueError,
'pattern': r'invalid input', 'pattern': r'invalid integer input',
}, { }, {
'name': 'string', 'name': 'string',
'unparsed': 'hello', 'unparsed': 'hello',
@ -150,13 +150,13 @@
}, { }, {
'name': 'number', 'name': 'number',
'unparsed': 42, 'unparsed': 42,
'error': KeyError, 'error': ValueError,
'pattern': r'42', 'pattern': r'invalid integer input',
}, { }, {
'name': 'boolean', 'name': 'boolean',
'unparsed': True, 'unparsed': True,
'error': KeyError, 'error': ValueError,
'pattern': r'True', 'pattern': r'expected int or list as input',
}, { }, {
'name': 'null', 'name': 'null',
'unparsed': None, 'unparsed': None,
@ -170,8 +170,8 @@
}, { }, {
'name': 'empty array', 'name': 'empty array',
'unparsed': [], 'unparsed': [],
'error': IndexError, 'error': ValueError,
'pattern': r'list index out of range', 'pattern': r'expected a non-empty list as input',
}, { }, {
'name': 'Python negative indexing', 'name': 'Python negative indexing',
'unparsed': [[1, 2, 3, 4, 5, 6, 7, -7], 1, 2, 3, 4, 5, 6, 7], 'unparsed': [[1, 2, 3, 4, 5, 6, 7, -7], 1, 2, 3, 4, 5, 6, 7],

View File

@ -43,12 +43,14 @@ def parse_iter(parsed: typing.Any, /, *, revivers: dict[str, collections.abc.Cal
-6: -0.0, -6: -0.0,
} }
if isinstance(parsed, int): if isinstance(parsed, int) and not isinstance(parsed, bool):
if parsed == -2: if parsed not in resolved or parsed == -2:
raise ValueError('invalid input') raise ValueError('invalid integer input')
return resolved[parsed] return resolved[parsed]
elif not isinstance(parsed, list): elif not isinstance(parsed, list):
raise ValueError('expected int or list as input') raise ValueError('expected int or list as input')
elif not parsed:
raise ValueError('expected a non-empty list as input')
if revivers is None: if revivers is None:
revivers = {} revivers = {}