Skip to content

Improve help text in ArgumentDefaultsHelpFormatter for required actions #112527

@henzef

Description

@henzef

Feature or enhancement

Proposal:

import argparse
parser = argparse.ArgumentParser(formatter_class=argparse.ArgumentDefaultsHelpFormatter)
parser.add_argument("-s", "--spam", help="Spam and eggs", type=str, required=True)
parser.add_argument("-i", help="How many iterations", type=int, default=5)
parser.parse_args()

which yields

options:
  -h, --help            show this help message and exit
  -s SPAM, --spam SPAM  Spam and eggs (default: None)
  -i I                  How many iterations (default: 5)

but since -s is a required argument, the "(default: None)" help text is a bit misleasing

My proposal is to simply omit adding the default for required arguments like this:

options:
  -h, --help            show this help message and exit
  -s SPAM, --spam SPAM  Spam and eggs
  -i I                  How many iterations (default: 5)

Has this already been discussed elsewhere?

This is a minor feature, which does not need previous discussion elsewhere

Links to previous discussion of this feature:

No response

Linked PRs

Metadata

Metadata

Assignees

No one assigned

    Labels

    stdlibStandard Library Python modules in the Lib/ directorytype-featureA feature request or enhancement

    Projects

    Status

    Doc issues

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions