From: Ɓukasz Langa Date: Tue, 17 Aug 2021 09:17:00 +0000 (+0200) Subject: [3.9] bpo-38956: don't print BooleanOptionalAction's default twice (GH-27672) (GH... X-Git-Tag: v3.9.7~50 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=27fd31311097ab7326f084b5e0e5f388f8dc6b13;p=thirdparty%2FPython%2Fcpython.git [3.9] bpo-38956: don't print BooleanOptionalAction's default twice (GH-27672) (GH-27788) Co-authored-by: Micky Yun Chan . (cherry picked from commit 1512bc21d60f098a9e9f37b44a2f6a9b49a3fd4f) Co-authored-by: Maximilian Hils --- diff --git a/Lib/argparse.py b/Lib/argparse.py index ccb010d0d5ca..f45a2ed4d4dc 100644 --- a/Lib/argparse.py +++ b/Lib/argparse.py @@ -875,7 +875,7 @@ class BooleanOptionalAction(Action): _option_strings.append(option_string) if help is not None and default is not None: - help += f" (default: {default})" + help += " (default: %(default)s)" super().__init__( option_strings=_option_strings, diff --git a/Lib/test/test_argparse.py b/Lib/test/test_argparse.py index e1685443248e..5d8bc1427c42 100644 --- a/Lib/test/test_argparse.py +++ b/Lib/test/test_argparse.py @@ -4259,6 +4259,9 @@ class TestHelpArgumentDefaults(HelpTestCase): argument_signatures = [ Sig('--foo', help='foo help - oh and by the way, %(default)s'), Sig('--bar', action='store_true', help='bar help'), + Sig('--taz', action=argparse.BooleanOptionalAction, + help='Whether to taz it', default=True), + Sig('--quux', help="Set the quux", default=42), Sig('spam', help='spam help'), Sig('badger', nargs='?', default='wooden', help='badger help'), ] @@ -4267,25 +4270,29 @@ class TestHelpArgumentDefaults(HelpTestCase): [Sig('--baz', type=int, default=42, help='baz help')]), ] usage = '''\ - usage: PROG [-h] [--foo FOO] [--bar] [--baz BAZ] spam [badger] + usage: PROG [-h] [--foo FOO] [--bar] [--taz | --no-taz] [--quux QUUX] + [--baz BAZ] + spam [badger] ''' help = usage + '''\ description positional arguments: - spam spam help - badger badger help (default: wooden) + spam spam help + badger badger help (default: wooden) optional arguments: - -h, --help show this help message and exit - --foo FOO foo help - oh and by the way, None - --bar bar help (default: False) + -h, --help show this help message and exit + --foo FOO foo help - oh and by the way, None + --bar bar help (default: False) + --taz, --no-taz Whether to taz it (default: True) + --quux QUUX Set the quux (default: 42) title: description - --baz BAZ baz help (default: 42) + --baz BAZ baz help (default: 42) ''' version = '' diff --git a/Misc/NEWS.d/next/Library/2021-08-09-13-17-10.bpo-38956.owWLNv.rst b/Misc/NEWS.d/next/Library/2021-08-09-13-17-10.bpo-38956.owWLNv.rst new file mode 100644 index 000000000000..3f57c0ea5d5a --- /dev/null +++ b/Misc/NEWS.d/next/Library/2021-08-09-13-17-10.bpo-38956.owWLNv.rst @@ -0,0 +1 @@ +:class:`argparse.BooleanOptionalAction`'s default value is no longer printed twice when used with :class:`argparse.ArgumentDefaultsHelpFormatter`.