diff options
author | Vinay Sajip <vinay_sajip@yahoo.co.uk> | 2016-08-23 07:43:16 (GMT) |
---|---|---|
committer | Vinay Sajip <vinay_sajip@yahoo.co.uk> | 2016-08-23 07:43:16 (GMT) |
commit | 9ae505041fea29dfc52c86968db48e8c78500ecc (patch) | |
tree | 1261974fd29912e9cbb8e612f8f46860518e2fbe /Lib/argparse.py | |
parent | d1c2a8e2b5d285f26f1a3c6d787d148a7c3b04de (diff) | |
download | cpython-9ae505041fea29dfc52c86968db48e8c78500ecc.zip cpython-9ae505041fea29dfc52c86968db48e8c78500ecc.tar.gz cpython-9ae505041fea29dfc52c86968db48e8c78500ecc.tar.bz2 |
Issue #12713: reverted fix pending further discussion.
Diffstat (limited to 'Lib/argparse.py')
-rw-r--r-- | Lib/argparse.py | 23 |
1 files changed, 5 insertions, 18 deletions
diff --git a/Lib/argparse.py b/Lib/argparse.py index e0edad8..209b4e9 100644 --- a/Lib/argparse.py +++ b/Lib/argparse.py @@ -1110,12 +1110,6 @@ class _SubParsersAction(Action): parser_name = values[0] arg_strings = values[1:] - # get full parser_name from (optional) abbreviated one - for p in self._name_parser_map: - if p.startswith(parser_name): - parser_name = p - break - # set the parser name if requested if self.dest is not SUPPRESS: setattr(namespace, self.dest, parser_name) @@ -2313,18 +2307,11 @@ class ArgumentParser(_AttributeHolder, _ActionsContainer): def _check_value(self, action, value): # converted value must be one of the choices (if specified) - if action.choices is not None: - ac = [ax for ax in action.choices if str(ax).startswith(str(value))] - if len(ac) == 0: - args = {'value': value, - 'choices': ', '.join(map(repr, action.choices))} - msg = _('invalid choice: %(value)r (choose from %(choices)s)') - raise ArgumentError(action, msg % args) - elif len(ac) > 1: - args = {'value': value, - 'choices': ', '.join(ac)} - msg = _('ambiguous choice: %(value)r could match %(choices)s') - raise ArgumentError(action, msg % args) + if action.choices is not None and value not in action.choices: + args = {'value': value, + 'choices': ', '.join(map(repr, action.choices))} + msg = _('invalid choice: %(value)r (choose from %(choices)s)') + raise ArgumentError(action, msg % args) # ======================= # Help-formatting methods |