summaryrefslogtreecommitdiffstats
path: root/Doc
diff options
context:
space:
mode:
authorR. David Murray <rdmurray@bitdance.com>2010-08-03 17:56:09 (GMT)
committerR. David Murray <rdmurray@bitdance.com>2010-08-03 17:56:09 (GMT)
commit88c49fe32054e28627eb41134656da606e9f9595 (patch)
treedab77fd4ece6d10f22bcba57ced3b824f2df69d2 /Doc
parentf767f08e290d0caa42148083940a08e8425b18f2 (diff)
downloadcpython-88c49fe32054e28627eb41134656da606e9f9595.zip
cpython-88c49fe32054e28627eb41134656da606e9f9595.tar.gz
cpython-88c49fe32054e28627eb41134656da606e9f9595.tar.bz2
#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.
Diffstat (limited to 'Doc')
-rw-r--r--Doc/library/argparse.rst21
1 files changed, 18 insertions, 3 deletions
diff --git a/Doc/library/argparse.rst b/Doc/library/argparse.rst
index ec212d5..a30a8c4 100644
--- a/Doc/library/argparse.rst
+++ b/Doc/library/argparse.rst
@@ -203,8 +203,8 @@ argument to :class:`ArgumentParser`.
add_help
^^^^^^^^
-By default, ArgumentParser objects add a ``-h/--help`` option which simply
-displays the parser's help message. For example, consider a file named
+By default, ArgumentParser objects add an option which simply displays
+the parser's help message. For example, consider a file named
``myprogram.py`` containing the following code::
import argparse
@@ -234,12 +234,27 @@ This can be achieved by passing ``False`` as the ``add_help=`` argument to
optional arguments:
--foo FOO foo help
+The help option is typically ``-h/--help``. The exception to this is
+if the ``prefix_chars=`` is specified and does not include ``'-'``, in
+which case ``-h`` and ``--help`` are not valid options. In
+this case, the first character in ``prefix_chars`` is used to prefix
+the help options::
+
+ >>> parser = argparse.ArgumentParser(prog='PROG', prefix_chars='+/')
+ >>> parser.print_help()
+ usage: PROG [+h]
+
+ optional arguments:
+ +h, ++help show this help message and exit
+
+
prefix_chars
^^^^^^^^^^^^
Most command-line options will use ``'-'`` as the prefix, e.g. ``-f/--foo``.
-Parsers that need to support additional prefix characters, e.g. for options
+Parsers that need to support different or additional prefix
+characters, e.g. for options
like ``+f`` or ``/foo``, may specify them using the ``prefix_chars=`` argument
to the ArgumentParser constructor::