summaryrefslogtreecommitdiffstats
path: root/Misc
diff options
context:
space:
mode:
authorKyle Meyer <kyle@kyleam.com>2020-02-18 09:48:57 (GMT)
committerGitHub <noreply@github.com>2020-02-18 09:48:57 (GMT)
commit8edfc47baec7ff4cb1b9db83dd35c8ffc1d498a4 (patch)
treef4127d288dadd66c7546da9f1c1b4f5e0b7550a3 /Misc
parentffda25f6b825f3dee493b6f0746266a4dd6989f0 (diff)
downloadcpython-8edfc47baec7ff4cb1b9db83dd35c8ffc1d498a4.zip
cpython-8edfc47baec7ff4cb1b9db83dd35c8ffc1d498a4.tar.gz
cpython-8edfc47baec7ff4cb1b9db83dd35c8ffc1d498a4.tar.bz2
bpo-39546: argparse: Honor allow_abbrev=False for specified prefix_chars (GH-18337)
When `allow_abbrev` was first added, disabling the abbreviation of long options broke the grouping of short flags ([bpo-26967](https://bugs.python.org/issue26967)). As a fix, b1e4d1b603 (contained in v3.8) ignores `allow_abbrev=False` for a given argument string if the string does _not_ start with "--" (i.e. it doesn't look like a long option). This fix, however, doesn't take into account that long options can start with alternative characters specified via `prefix_chars`, introducing a regression: `allow_abbrev=False` has no effect on long options that start with an alternative prefix character. The most minimal fix would be to replace the "starts with --" check with a "starts with two prefix_chars characters". But `_get_option_tuples` already distinguishes between long and short options, so let's instead piggyback off of that check by moving the `allow_abbrev` condition into `_get_option_tuples`. https://bugs.python.org/issue39546
Diffstat (limited to 'Misc')
-rw-r--r--Misc/ACKS1
-rw-r--r--Misc/NEWS.d/next/Library/2020-02-03-15-12-51.bpo-39546._Kj0Pn.rst3
2 files changed, 4 insertions, 0 deletions
diff --git a/Misc/ACKS b/Misc/ACKS
index 9334020..e8ce303 100644
--- a/Misc/ACKS
+++ b/Misc/ACKS
@@ -1112,6 +1112,7 @@ Bruce Merry
Alexis Métaireau
Luke Mewburn
Carl Meyer
+Kyle Meyer
Mike Meyer
Piotr Meyer
Steven Miale
diff --git a/Misc/NEWS.d/next/Library/2020-02-03-15-12-51.bpo-39546._Kj0Pn.rst b/Misc/NEWS.d/next/Library/2020-02-03-15-12-51.bpo-39546._Kj0Pn.rst
new file mode 100644
index 0000000..8f035e7
--- /dev/null
+++ b/Misc/NEWS.d/next/Library/2020-02-03-15-12-51.bpo-39546._Kj0Pn.rst
@@ -0,0 +1,3 @@
+Fix a regression in :class:`~argparse.ArgumentParser` where
+``allow_abbrev=False`` was ignored for long options that used a prefix
+character other than "-".