mirror of
https://github.com/python/cpython.git
synced 2025-08-27 04:05:34 +00:00
#9444: use first of prefix_chars for help opt instead of raising error
An argparse option parser created with a prefix_chars that did not include a '-' would happily add -h and --help options, and then throw an error when it tried to format the help because the - was an invalid prefix character. This patch makes it use the first character of prefix_chars as the character for the help options if and only if '-' is not one of the valid prefix_chars. Fix by Theodore Turocy, unit tests by Catherine Devlin.
This commit is contained in:
parent
f767f08e29
commit
88c49fe320
5 changed files with 101 additions and 13 deletions
|
@ -1561,13 +1561,16 @@ class ArgumentParser(_AttributeHolder, _ActionsContainer):
|
|||
|
||||
# add help and version arguments if necessary
|
||||
# (using explicit default to override global argument_default)
|
||||
default_prefix = '-' if '-' in prefix_chars else prefix_chars[0]
|
||||
if self.add_help:
|
||||
self.add_argument(
|
||||
'-h', '--help', action='help', default=SUPPRESS,
|
||||
default_prefix+'h', default_prefix*2+'help',
|
||||
action='help', default=SUPPRESS,
|
||||
help=_('show this help message and exit'))
|
||||
if self.version:
|
||||
self.add_argument(
|
||||
'-v', '--version', action='version', default=SUPPRESS,
|
||||
default_prefix+'v', default_prefix*2+'version',
|
||||
action='version', default=SUPPRESS,
|
||||
version=self.version,
|
||||
help=_("show program's version number and exit"))
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue