From 6f6648e436d02bce0e49ba82f4377c0d2f586f0f Mon Sep 17 00:00:00 2001 From: "Miss Islington (bot)" <31488909+miss-islington@users.noreply.github.com> Date: Tue, 17 Aug 2021 02:40:41 -0700 Subject: bpo-38956: don't print BooleanOptionalAction's default twice (GH-27672) Co-authored-by: Micky Yun Chan (cherry picked from commit 1512bc21d60f098a9e9f37b44a2f6a9b49a3fd4f) Co-authored-by: Maximilian Hils --- Lib/argparse.py | 2 +- Lib/test/test_argparse.py | 21 ++++++++++++++------- .../2021-08-09-13-17-10.bpo-38956.owWLNv.rst | 1 + 3 files changed, 16 insertions(+), 8 deletions(-) create mode 100644 Misc/NEWS.d/next/Library/2021-08-09-13-17-10.bpo-38956.owWLNv.rst diff --git a/Lib/argparse.py b/Lib/argparse.py index e3a49e7..2ded39a 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 0994e70..f453f60 100644 --- a/Lib/test/test_argparse.py +++ b/Lib/test/test_argparse.py @@ -4262,6 +4262,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'), ] @@ -4270,25 +4273,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) options: - -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 0000000..3f57c0e --- /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`. -- cgit v0.12