Commit Graph

124 Commits

Author SHA1 Message Date
Zac Hatfield-Dodds dffca9e925 bpo-26967: fix flag grouping with allow_abbrev=False (GH-14316)
The `allow_abbrev` option for ArgumentParser is documented and intended to disable support for unique prefixes of --options, which may sometimes be ambiguous due to deferred parsing.

However, the initial implementation also broke parsing of grouped short flags, such as `-ab` meaning `-a -b` (or `-a=b`).  Checking the argument for a leading `--` before rejecting it fixes this.

This was prompted by pytest-dev/pytest#5469, so a backport to at least 3.8 would be great 😄  
And this is my first PR to CPython, so please let me know if I've missed anything!


https://bugs.python.org/issue26967
2019-07-13 22:35:58 -07:00
Shashank Parekh b9600b0fbd Remove redundant if check from optional argument function in argparse. (GH-8766) 2019-06-20 20:02:22 -07:00
zygocephalus 03d5831a2d bpo-37150: Throw ValueError if FileType class object was passed in add_argument (GH-13805)
There is a possibility that someone (like me) accidentally will omit parentheses with `FileType` arguments after `FileType`, and parser will contain wrong file until someone will try to use it. 

Example:
```python
parser = argparse.ArgumentParser()
parser.add_argument('-x', type=argparse.FileType)
```


https://bugs.python.org/issue37150
2019-06-07 13:08:36 -07:00
Batuhan Taşkaya aa32a7e111 bpo-23378: Add an extend action to argparse (GH-13305)
Add an extend action to argparse


https://bugs.python.org/issue23378
2019-05-21 10:47:42 -07:00
Grant Jenks 65bef36f0b Remove superseded line from argparse.HelpFormatter() (GH-8839) 2018-08-22 23:14:14 +03:00
Berker Peksag 74102c9a5f
bpo-13041: Use shutil.get_terminal_size() in argparse.HelpFormatter (GH-8459) 2018-07-25 18:23:44 +03:00
wim glenn 66f02aa32f bpo-11874: fix assertion failure in argparse metavar handling (GH-1826)
- bugfix and test for fragile metavar handling in argparse (see
  bpo-24089, bpo-14046, bpo-25058, bpo-11874)
- also fixes some incorrect tests that did not make 1-element tuples correctly
2018-06-08 20:12:49 +10:00
Ned Deily 8ebf5ceb0f
bpo-33109: argparse subparsers are once again not required by default (GH-6919)
bpo-26510 in 3.7.0a2 changed the behavior of argparse to make
subparsers required by default, returning to the behavior of 2.7
and 3.2. The behavior was changed in 3.3 to be no longer required.
While it might make more sense to have the default to required,
compatibility with 3.3 through 3.6 is probably less disruptive
than trying to reintroduce compatibility with 2.7 at this point.
This change restores the 3.6 behavior.
2018-05-23 21:55:15 -04:00
Raymond Hettinger 05565ed27e
OrderedDict import is no longer needed (#4890) 2018-01-11 22:20:33 -08:00
Serhiy Storchaka 81108375d9 bpo-30152: Reduce the number of imports for argparse. (#1269) 2017-09-26 00:55:55 +03:00
Anthony Sottile aaf6fc0982 bpo-26510: make argparse subparsers required by default (#3027)
This fixes a regression from Python 2.  To get optional subparsers,
use the new parameter ``add_subparsers(required=False)``.

Patch by Anthony Sottile.
2017-09-20 17:35:27 -04:00
R. David Murray 0f6b9d2306 bpo-14191 Add parse_intermixed_args. (#3319)
This adds support for parsing a command line where options and positionals are intermixed as is common in many unix commands. This is paul.j3's patch with a few tweaks.
2017-09-06 20:25:40 -04:00
Xiang Zhang b1681189af Issue #29290: Merge 3.5. 2017-01-22 14:39:20 +08:00
Xiang Zhang 7fe28ad837 Issue #29290: argparse help messages won't wrap at non-breaking spaces. 2017-01-22 14:37:22 +08:00
Vinay Sajip 9ae505041f Issue #12713: reverted fix pending further discussion. 2016-08-23 08:43:16 +01:00
Vinay Sajip ef948cd058 Closes #12713: Allowed abbreviation of subcommands in argparse. 2016-08-18 21:23:48 +01:00
Berker Peksag 841b930a41 Issue #17940: Remove redundant code from _Section.format_help()
Output of func(*args) stored in the next line:

    item_help = join([func(*args) for func, args in self.items])

_Section.items only used by HelpFormatter._add_item() and it looks
like it doesn't have any side effects.

Patch by Yogesh Chaudhari.
2016-03-05 14:05:45 +02:00
Berker Peksag 76b1714be8 Issue #24360: Improve __repr__ of argparse.Namespace() for invalid identifiers.
Patch by Matthias Bussonnier.
2015-07-29 23:51:47 +03:00
Berker Peksag 8089cd642f Issue #14910: Add allow_abbrev parameter to argparse.ArgumentParser.
Patch by Jonathan Paugh, Steven Bethard, paul j3 and Daniel Eriksson.
2015-02-14 01:39:17 +02:00
Serhiy Storchaka 08448a1f4d Issue #23326: Removed __ne__ implementations. Since fixing default __ne__
implementation in issue #21408 they are redundant.
2015-01-31 12:05:05 +02:00
Georg Brandl 2514f52f4f Closes #22675: fix typo. 2014-10-20 08:36:02 +02:00
R David Murray 7570cbdc6b #9351: set_defaults on subparser is no longer ignored if set on parent.
Before, if a default was set on the parent parser, any default for that
variable set via set_defaults on a subparser would be ignored.  Now
the subparser set_defaults is honored.

Patch by Jyrki Pullianinen.
2014-10-17 19:55:11 -04:00
Raymond Hettinger dea46ec965 Issue #21481: Teach argparse equality tests to return NotImplemented when comparing to unknown types. 2014-05-26 00:43:27 -07:00
Serhiy Storchaka 123e6d5b4b Issue #13107: argparse and optparse no longer raises an exception when output
a help on environment with too small COLUMNS.  Based on patch by
Elazar Gershuni.
2014-01-09 23:18:41 +02:00
Serhiy Storchaka f451112413 Issue #13107: argparse and optparse no longer raises an exception when output
a help on environment with too small COLUMNS.  Based on patch by
Elazar Gershuni.
2014-01-09 23:14:27 +02:00
Eli Bendersky cdac551675 Issue #18920: argparse's default version action (for -v, --version) should
output to stdout, matching the 'python -v'

Reported by Wolfgang Maier
2013-09-06 06:49:15 -07:00
Terry Jan Reedy 8e7586bd44 Issue #17047: remove doubled words added in 3.4,
as reported by Serhiy Storchaka and Matthew Barnett.
2013-03-11 18:38:13 -04:00
Giampaolo Rodola' 2f50aaf2ff modernize some modules' code by using with statement around open() 2013-02-12 02:04:27 +01:00
Andrew Svetlov f7a17b48d7 Replace IOError with OSError (#16715) 2012-12-25 16:47:37 +02:00
Petri Lehtinen 74d6c250e1 #11175: argparse.FileType now accepts encoding and errors arguments.
Patch by Lucas Maystre.
2012-12-15 22:42:47 +02:00
Philip Jenvey 4993cc0a5b utilize yield from 2012-10-01 12:53:43 -07:00
Barry Warsaw d89774e158 Merge 3.2 fix updates and tests for issue #15906. 2012-09-12 15:31:38 -04:00
Barry Warsaw 2dceb359cb Update merge from 2.7: s/basetring/str 2012-09-12 14:42:34 -04:00
Barry Warsaw eaae1b76ae A follow up for issue #15906: change the test for calling the type conversion
on the action's default, reverting it back to previous behavior.  Conversion
is only done on string defaults.

Add a test for this and another test that ensures such type conversions are
only called once.
2012-09-12 14:34:50 -04:00
Barry Warsaw 0ae066b281 - Issue #15906: Fix a regression in argparse caused by the preceding change,
when action='append', type='str' and default=[].
2012-09-12 00:12:29 -04:00
Barry Warsaw 4b2f9e914d - Issue #15906: Fix a regression in argparse caused by the preceding change,
when action='append', type='str' and default=[].
2012-09-11 22:38:47 -04:00
R David Murray 63755f3bd9 merge #15847: allow args to be a tuple in parse_args
This fixes a regression introduced by the fix for issue #13922.  Although args
is not documented as being allowed to be a tuple, previously this worked and
so naturally there are programs in the field that depend on it.

Patch by Zbyszek Jędrzejewski-Szmek.
2012-09-08 12:14:25 -04:00
R David Murray b522828d2a #15847: allow args to be a tuple in parse_args
This fixes a regression introduced by the fix for issue #13922.  Although args
is not documented as being allowed to be a tuple, previously this worked and
so naturally there are programs in the field that depend on it.

Patch by Zbyszek Jędrzejewski-Szmek.
2012-09-08 12:08:01 -04:00
R David Murray 64b0ef1509 Merge #12776,#11839: call argparse type function only once.
Before, the type function was called twice in the case where the default
was specified and the argument was given as well.  This was especially
problematic for the FileType type, as a default file would always be
opened, even if a file argument was specified on the command line.

Patch by Arnaud Fontaine, with additional test by Mike Meyer.
2012-08-31 23:09:34 -04:00
R David Murray 6fb8fb17bf #12776,#11839: call argparse type function only once.
Before, the type function was called twice in the case where the default
was specified and the argument was given as well.  This was especially
problematic for the FileType type, as a default file would always be
opened, even if a file argument was specified on the command line.

Patch by Arnaud Fontaine, with additional test by Mike Meyer.
2012-08-31 22:45:20 -04:00
R David Murray 45ccf032be Merge #13922: argparse no longer incorrectly strips '--' after the first one.
Patch by Jeff Knupp.
2012-07-21 22:56:49 -04:00
R David Murray 00528e8fec #13922: argparse no longer incorrectly strips '--' after the first one.
Patch by Jeff Knupp.
2012-07-21 22:48:35 -04:00
R David Murray d4703d1d85 Merge #12353: argparse now correctly handles null argument values.
Patch by Torsten Landschoff.
2012-07-21 22:28:08 -04:00
R David Murray b94082a71b #12353: argparse now correctly handles null argument values.
Patch by Torsten Landschoff.
2012-07-21 22:20:11 -04:00
R David Murray af418b2232 Merge #14391: clarify docstring discussion of Action's 'type' argument's value. 2012-07-21 17:05:24 -04:00
R David Murray 15cd9a0be4 #14391: clarify docstring discussion of Action's 'type' argument's value. 2012-07-21 17:04:25 -04:00
Florent Xicluna af1adbeedd Issue #13248: argparse: Remove obsolete argument "version" of ArgumentParser. 2012-07-07 17:02:22 +02:00
Florent Xicluna aabbda5354 Merge 3.2 2011-10-28 14:52:29 +02:00
Florent Xicluna 5d1155c08e Closes #13258: Use callable() built-in in the standard library. 2011-10-28 14:45:05 +02:00
Ezio Melotti d8b509b192 #13012: use splitlines(keepends=True/False) instead of splitlines(0/1). 2011-09-28 17:37:55 +03:00
R David Murray f97c59aaba #10424: argument names are now included in the missing argument message
Fix and initial test patch by Michele Orrù.
2011-06-09 12:34:07 -04:00
Steven Bethard 7c8ea37d9b Issue #9347: Fix formatting for tuples in argparse type= error messages. 2011-04-04 02:10:40 +02:00
Steven Bethard 7cb20a8605 Issue #9347: Fix formatting for tuples in argparse type= error messages. 2011-04-04 01:53:02 +02:00
Steven Bethard 4ad8f66559 Issue #9026: Fix order of argparse sub-commands in help messages. (Merged from 3.2.) 2011-03-27 14:04:03 +02:00
Steven Bethard 8a6a198abf Issue #9026: Fix order of argparse sub-commands in help messages. 2011-03-27 13:53:53 +02:00
Steven Bethard edbe4c5249 Issue #9348: Raise an early error if argparse nargs and metavar don't match. (Merge from 3.2.) 2011-03-26 17:35:11 +01:00
Steven Bethard 8d9a4628c3 Issue #9348: Raise an early error if argparse nargs and metavar don't match. 2011-03-26 17:33:56 +01:00
Steven Bethard 0331e906d6 Issue #11174: Add argparse.MetavarTypeHelpFormatter, which uses type names
for the names of optional and positional arguments in help messages.
2011-03-26 14:48:04 +01:00
Georg Brandl 0f6b47a338 #10680: fix mutually exclusive arguments in argument groups. 2011-01-30 12:19:35 +00:00
Steven Bethard b02701101b Issue #9509: make argarse properly handle IOErrors raised by argparse.FileType. Approved by Georg in the tracker. 2011-01-24 21:02:50 +00:00
Steven Bethard fd311a712d Add subparser aliases for argparse. Resolves issue 9324. Approved by Georg for beta2 on the tracker. 2010-12-18 11:19:23 +00:00
Éric Araujo 1215915045 Use proper plural forms in argparse (#4391) 2010-12-04 17:31:49 +00:00
Éric Araujo bb48a8b59a Allow translators to reorder placeholders in localizable messages from
argparse (#10528).

There is no unit test; I checked with xgettext that no more warnings
were emitted.  Steven approved the change.
2010-12-03 19:41:00 +00:00
Éric Araujo a9c7a8fa5b Fix incorrect use of gettext in argparse (#10497).
Steven, the maintainer of argparse, agreed to have this committed
without tests for now, since the fix is obvious.  See the bug log.
2010-12-03 19:19:17 +00:00
Steven Bethard fca2e8aeb8 Fix bug 9340 - argparse parse_known_args didn't work with subparsers 2010-11-02 12:47:22 +00:00
Steven Bethard 49998eec49 Fix for issue 9355 where with multiple mutually exclusive arguments, some brackets were being lost in the usage messages 2010-11-01 16:29:26 +00:00
Steven Bethard 1ca45a5292 Fix bug 9352 where characters were being lost in parsing some short options 2010-11-01 15:57:36 +00:00
Steven Bethard 72c553829a Get argparse.__all__ back up to date (issue 9353) 2010-11-01 15:23:12 +00:00
R. David Murray 88c49fe320 #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.
2010-08-03 17:56:09 +00:00
Steven Bethard 50fe593ae9 Merged revisions 81492 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk

........
  r81492 | steven.bethard | 2010-05-23 20:45:26 -0700 (Sun, 23 May 2010) | 1 line

  Fix default value for version help. Approved by Benjamin on python-dev: http://mail.python.org/pipermail/python-dev/2010-May/100231.html
........
2010-05-24 03:47:38 +00:00
Benjamin Peterson 2b37fc4ce3 Merged revisions 79385 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk

........
  r79385 | benjamin.peterson | 2010-03-24 17:03:09 -0500 (Wed, 24 Mar 2010) | 1 line

  replace copy right notice with simple attribution
........
2010-03-24 22:10:42 +00:00
Benjamin Peterson 16f2fd013d Merged revisions 78600-78601 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk

........
  r78600 | benjamin.peterson | 2010-03-02 16:58:01 -0600 (Tue, 02 Mar 2010) | 1 line

  remove code to avoid BaseException.message bug
........
  r78601 | benjamin.peterson | 2010-03-02 17:02:02 -0600 (Tue, 02 Mar 2010) | 1 line

  remove cross-version compatibility code
........
2010-03-02 23:09:38 +00:00
Benjamin Peterson 698a18aa9e Merged revisions 78586-78593 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk

........
  r78586 | benjamin.peterson | 2010-03-02 16:03:03 -0600 (Tue, 02 Mar 2010) | 1 line

  remove coding cookie as mandated by PEP 8
........
  r78587 | benjamin.peterson | 2010-03-02 16:05:59 -0600 (Tue, 02 Mar 2010) | 1 line

  set svn:eol-style
........
  r78588 | benjamin.peterson | 2010-03-02 16:08:40 -0600 (Tue, 02 Mar 2010) | 1 line

  remove another coding cookie
........
  r78589 | georg.brandl | 2010-03-02 16:17:38 -0600 (Tue, 02 Mar 2010) | 1 line

  Add some x-refs.
........
  r78590 | benjamin.peterson | 2010-03-02 16:20:10 -0600 (Tue, 02 Mar 2010) | 1 line

  enable running of argparse tests and fix two that failed in the new environment
........
  r78591 | benjamin.peterson | 2010-03-02 16:23:33 -0600 (Tue, 02 Mar 2010) | 1 line

  prevent warning filter adjustment from altering other tests
........
  r78592 | benjamin.peterson | 2010-03-02 16:24:30 -0600 (Tue, 02 Mar 2010) | 1 line

  use test_main() in __main__ section
........
  r78593 | benjamin.peterson | 2010-03-02 16:26:25 -0600 (Tue, 02 Mar 2010) | 1 line

  convert deprecated fail* methods to assert* variants
........
2010-03-02 22:34:37 +00:00
Steven Bethard 6d265699e6 Merged revisions 78576 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk

........
  r78576 | steven.bethard | 2010-03-02 00:38:09 -0800 (Tue, 02 Mar 2010) | 3 lines

  Initial commit of the argparse library, based on argparse 1.1.
  Docs still need some updating to make getopt and optparse match the wording promised in the PEP.
  There are also probably a number of :class:ArgumentParser etc. links that could be added to the argparse documentation.
........
2010-03-02 09:22:57 +00:00