]> granicus.if.org Git - python/commitdiff
Issue #19814: Clarify argparse's docs w.r.t prefix matching
authorEli Bendersky <eliben@gmail.com>
Mon, 2 Dec 2013 13:53:35 +0000 (05:53 -0800)
committerEli Bendersky <eliben@gmail.com>
Mon, 2 Dec 2013 13:53:35 +0000 (05:53 -0800)
Doc/library/argparse.rst

index 489df8397892f6a00d98a454471e6af2a549bfe9..4aa291872ff8d0446c78b084fea954c4c15862c8 100644 (file)
@@ -1351,12 +1351,14 @@ argument::
    >>> parser.parse_args(['--', '-f'])
    Namespace(foo='-f', one=None)
 
+.. _prefix-matching:
 
-Argument abbreviations
-^^^^^^^^^^^^^^^^^^^^^^
+Argument abbreviations (prefix matching)
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
 
 The :meth:`~ArgumentParser.parse_args` method allows long options to be
-abbreviated if the abbreviation is unambiguous::
+abbreviated to a prefix, if the abbreviation is unambiguous (the prefix matches
+a unique option)::
 
    >>> parser = argparse.ArgumentParser(prog='PROG')
    >>> parser.add_argument('-bacon')
@@ -1822,6 +1824,12 @@ the populated namespace and the list of remaining argument strings.
    >>> parser.parse_known_args(['--foo', '--badger', 'BAR', 'spam'])
    (Namespace(bar='BAR', foo=True), ['--badger', 'spam'])
 
+.. warning::
+   :ref:`Prefix matching <prefix-matching>` rules apply to
+   :meth:`parse_known_args`. The parser may consume an option even if it's just
+   a prefix of one of its known options, instead of leaving it in the remaining
+   arguments list.
+
 
 Customizing file parsing
 ^^^^^^^^^^^^^^^^^^^^^^^^