[issue29298] argparse fails with required subparsers, un-named dest, and empty argv
Greg
report at bugs.python.org
Thu Dec 5 01:00:18 EST 2019
Greg <minshall at acm.org> added the comment:
while waiting for a fix, would it be possible to document in the argparse documentation that the 'dest' parameter is required (at least temporarily) for add_subparsers()? (somewhere near file:///usr/share/doc/python/html/library/argparse.html#sub-commands)
gratuitous diff: the pull request from 2017 would probably fix it. my diffs are here (from: Python 3.8.0 (default, Oct 23 2019, 18:51:26). (the pull request changes the utility '_get_action_name'; i wasn't sure of side-effects with other callers, so changed nearer the failure location.)
----
*** new/argparse.py 2019-12-05 11:16:37.618985247 +0530
--- old/argparse.py 2019-10-24 00:21:26.000000000 +0530
***************
*** 2017,2030 ****
for action in self._actions:
if action not in seen_actions:
if action.required:
! ra = _get_action_name(action)
! if ra is None:
! if not action.choices == {}:
! choice_strs = [str(choice) for choice in action.choices]
! ra = '{%s}' % ','.join(choice_strs)
! else:
! ra = '<unknown>'
! required_actions.append(ra)
else:
# Convert action default now instead of doing it before
# parsing arguments to avoid calling convert functions
--- 2017,2023 ----
for action in self._actions:
if action not in seen_actions:
if action.required:
! required_actions.append(_get_action_name(action))
else:
# Convert action default now instead of doing it before
# parsing arguments to avoid calling convert functions
----------
nosy: +Minshall
_______________________________________
Python tracker <report at bugs.python.org>
<https://bugs.python.org/issue29298>
_______________________________________
More information about the Python-bugs-list
mailing list