New submission from Julian Gilbey <julian-pyt...@d-and-j.net>:

With code like the following:

~~~~

import argparse

parser = argparse.ArgumentParser(
    description="Test program",
    formatter_class=argparse.ArgumentDefaultsHelpFormatter,
)
parser.add_argument(
    "--foo",
    help="Use the foo component.",
    action=argparse.BooleanOptionalAction,
    default=True,
)

args = parser.parse_args()

~~~~

a call "python prog.py --help" then gives:

~~~~
usage: prog.py [-h] [--foo | --no-foo]

Test program

optional arguments:
  -h, --help       show this help message and exit
  --foo, --no-foo  Use the foo component. (default: True) (default: True)
~~~~

Note the repeated "(default: True)", one produced by the BooleanOptionalAction 
class and the other by the ArgumentDefaultsHelpFormatter.  It would be good if 
they didn't both add this helpful information.

My suggestion would be that BooleanOptionalAction should not include this 
information; it is unique in doing so.

----------
components: Library (Lib)
messages: 395559
nosy: juliangilbey
priority: normal
severity: normal
status: open
title: argparse.BooleanOptionalAction interacts poorly with 
ArgumentDefaultsHelpFormatter
type: behavior
versions: Python 3.9

_______________________________________
Python tracker <rep...@bugs.python.org>
<https://bugs.python.org/issue44383>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com

Reply via email to