summaryrefslogtreecommitdiffstats
path: root/Lib/argparse.py
diff options
context:
space:
mode:
authorVinay Sajip <vinay_sajip@yahoo.co.uk>2016-08-23 07:43:16 (GMT)
committerVinay Sajip <vinay_sajip@yahoo.co.uk>2016-08-23 07:43:16 (GMT)
commit9ae505041fea29dfc52c86968db48e8c78500ecc (patch)
tree1261974fd29912e9cbb8e612f8f46860518e2fbe /Lib/argparse.py
parentd1c2a8e2b5d285f26f1a3c6d787d148a7c3b04de (diff)
downloadcpython-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.py23
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