-
-
Notifications
You must be signed in to change notification settings - Fork 32.1k
[argparse] Unify options in help output #71490
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Comments
Currently when you specify more than one name for an option (typically short and long versions) each name is listed with its entire arg list. This is annoying for options taking many args or choices, for example: --type {html,pdf,github,blogger}, -t {html,pdf,github,blogger} Wouldn't it be better to just show something like: --type|-t {html,pdf,github,blogger} |
There are 2 issues here -
When the choices display is too long, 'metavar' is a handy alternative. You can still display the choices in the body of the help message, either as an explicit list or with the There are other bug/issues about formatting the choices list. I have participated in discussions about replacing
with
I'm sure that's been raised on Stackoverflow, but there might also be a bug/issue on the topic. I'd have to do some search to find those. I believe it can addressed with a HelpFormatter subclass that changes one method. |
http://stackoverflow.com/questions/18275023/dont-show-long-options-twice-in-print-help-from-argparse Once answer demonstrates how to change the Formatter: class CustomHelpFormatter(argparse.HelpFormatter):
def _format_action_invocation(self, action):
if not action.option_strings or action.nargs == 0:
return super()._format_action_invocation(action)
default = self._get_default_metavar_for_optional(action)
args_string = self._format_args(action, default)
return ', '.join(action.option_strings) + ' ' + args_string Another answer suggests using metavar=''. Another SO question with a few more links: |
Thank you for the tips, Paul. The issue is related to the default behavior but it's always good to know about handy workarounds and extensibility hooks. |
This was fixed in #103372 |
Note: these values reflect the state of the issue at the time it was migrated and might not reflect the current state.
Show more details
GitHub fields:
bugs.python.org fields:
The text was updated successfully, but these errors were encountered: