mirror of
https://github.com/python/cpython.git
synced 2025-08-04 08:59:19 +00:00
gh-53834: Fix support of arguments with choices in argparse (GH-124495)
Positional arguments with nargs equal to '?' or '*' no longer check default against choices. Optional arguments with nargs equal to '?' no longer check const against choices.
This commit is contained in:
parent
61180446ee
commit
dac4ec5286
3 changed files with 13 additions and 13 deletions
|
@ -2487,7 +2487,6 @@ class ArgumentParser(_AttributeHolder, _ActionsContainer):
|
|||
value = action.default
|
||||
if isinstance(value, str) and value is not SUPPRESS:
|
||||
value = self._get_value(action, value)
|
||||
self._check_value(action, value)
|
||||
|
||||
# when nargs='*' on a positional, if there were no command-line
|
||||
# args, use the default if it is anything other than None
|
||||
|
@ -2495,11 +2494,8 @@ class ArgumentParser(_AttributeHolder, _ActionsContainer):
|
|||
not action.option_strings):
|
||||
if action.default is not None:
|
||||
value = action.default
|
||||
self._check_value(action, value)
|
||||
else:
|
||||
# since arg_strings is always [] at this point
|
||||
# there is no need to use self._check_value(action, value)
|
||||
value = arg_strings
|
||||
value = []
|
||||
|
||||
# single argument or optional argument produces a single value
|
||||
elif len(arg_strings) == 1 and action.nargs in [None, OPTIONAL]:
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue