]> granicus.if.org Git - python/commit
bpo-26967: fix flag grouping with allow_abbrev=False (GH-14316) (GH-14759)
authorMiss Islington (bot) <31488909+miss-islington@users.noreply.github.com>
Sun, 14 Jul 2019 05:59:56 +0000 (22:59 -0700)
committerPetr Viktorin <pviktori@redhat.com>
Sun, 14 Jul 2019 05:59:56 +0000 (07:59 +0200)
commitb1e4d1b6032d4c82b549233fa08a2c7cfe7e818b
treebaa898fbe2437237f4c303a93985c373e03e5fbd
parentb815669c833c543b0f6696c3121a179f6b2383a6
bpo-26967: fix flag grouping with allow_abbrev=False (GH-14316) (GH-14759)

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/pytestGH-5469, so a backport to at least 3.8 would be great :smile:
And this is my first PR to CPython, so please let me know if I've missed anything!

https://bugs.python.org/issue26967
(cherry picked from commit dffca9e925ee5c3072663cbe8d4d4768406d5307)

Co-authored-by: Zac Hatfield-Dodds <Zac-HD@users.noreply.github.com>
Doc/library/argparse.rst
Lib/argparse.py
Lib/test/test_argparse.py
Misc/ACKS
Misc/NEWS.d/next/Library/2019-06-23-12-46-10.bpo-26967.xEuem1.rst [new file with mode: 0644]