mirror of
https://github.com/python/cpython.git
synced 2025-12-08 06:10:17 +00:00
gh-141679: Add colour to defaults in argparse help (#141680)
Co-authored-by: Savannah Ostrowski <savannah@python.org>
This commit is contained in:
parent
227b9d326e
commit
e73fbbacbb
4 changed files with 20 additions and 8 deletions
|
|
@ -168,6 +168,8 @@ class Argparse(ThemeSection):
|
||||||
short_option: str = ANSIColors.BOLD_GREEN
|
short_option: str = ANSIColors.BOLD_GREEN
|
||||||
label: str = ANSIColors.BOLD_YELLOW
|
label: str = ANSIColors.BOLD_YELLOW
|
||||||
action: str = ANSIColors.BOLD_GREEN
|
action: str = ANSIColors.BOLD_GREEN
|
||||||
|
default: str = ANSIColors.GREY
|
||||||
|
default_value: str = ANSIColors.YELLOW
|
||||||
reset: str = ANSIColors.RESET
|
reset: str = ANSIColors.RESET
|
||||||
error: str = ANSIColors.BOLD_MAGENTA
|
error: str = ANSIColors.BOLD_MAGENTA
|
||||||
warning: str = ANSIColors.BOLD_YELLOW
|
warning: str = ANSIColors.BOLD_YELLOW
|
||||||
|
|
|
||||||
|
|
@ -748,7 +748,14 @@ def _get_help_string(self, action):
|
||||||
if action.default is not SUPPRESS:
|
if action.default is not SUPPRESS:
|
||||||
defaulting_nargs = [OPTIONAL, ZERO_OR_MORE]
|
defaulting_nargs = [OPTIONAL, ZERO_OR_MORE]
|
||||||
if action.option_strings or action.nargs in defaulting_nargs:
|
if action.option_strings or action.nargs in defaulting_nargs:
|
||||||
help += _(' (default: %(default)s)')
|
t = self._theme
|
||||||
|
default_str = _(" (default: %(default)s)")
|
||||||
|
prefix, suffix = default_str.split("%(default)s")
|
||||||
|
help += (
|
||||||
|
f" {t.default}{prefix.lstrip()}"
|
||||||
|
f"{t.default_value}%(default)s"
|
||||||
|
f"{t.default}{suffix}{t.reset}"
|
||||||
|
)
|
||||||
return help
|
return help
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -7288,6 +7288,8 @@ def test_argparse_color(self):
|
||||||
short_b = self.theme.short_option
|
short_b = self.theme.short_option
|
||||||
label_b = self.theme.label
|
label_b = self.theme.label
|
||||||
pos_b = self.theme.action
|
pos_b = self.theme.action
|
||||||
|
default = self.theme.default
|
||||||
|
default_value = self.theme.default_value
|
||||||
reset = self.theme.reset
|
reset = self.theme.reset
|
||||||
|
|
||||||
# Act
|
# Act
|
||||||
|
|
@ -7314,17 +7316,17 @@ def test_argparse_color(self):
|
||||||
|
|
||||||
{heading}options:{reset}
|
{heading}options:{reset}
|
||||||
{short_b}-h{reset}, {long_b}--help{reset} show this help message and exit
|
{short_b}-h{reset}, {long_b}--help{reset} show this help message and exit
|
||||||
{short_b}-v{reset}, {long_b}--verbose{reset} more spam (default: False)
|
{short_b}-v{reset}, {long_b}--verbose{reset} more spam {default}(default: {default_value}False{default}){reset}
|
||||||
{short_b}-q{reset}, {long_b}--quiet{reset} less spam (default: False)
|
{short_b}-q{reset}, {long_b}--quiet{reset} less spam {default}(default: {default_value}False{default}){reset}
|
||||||
{short_b}-o{reset}, {long_b}--optional1{reset}
|
{short_b}-o{reset}, {long_b}--optional1{reset}
|
||||||
{long_b}--optional2{reset} {label_b}OPTIONAL2{reset}
|
{long_b}--optional2{reset} {label_b}OPTIONAL2{reset}
|
||||||
pick one (default: None)
|
pick one {default}(default: {default_value}None{default}){reset}
|
||||||
{long_b}--optional3{reset} {label_b}{{X,Y,Z}}{reset}
|
{long_b}--optional3{reset} {label_b}{{X,Y,Z}}{reset}
|
||||||
{long_b}--optional4{reset} {label_b}{{X,Y,Z}}{reset} pick one (default: None)
|
{long_b}--optional4{reset} {label_b}{{X,Y,Z}}{reset} pick one {default}(default: {default_value}None{default}){reset}
|
||||||
{long_b}--optional5{reset} {label_b}{{X,Y,Z}}{reset} pick one (default: None)
|
{long_b}--optional5{reset} {label_b}{{X,Y,Z}}{reset} pick one {default}(default: {default_value}None{default}){reset}
|
||||||
{long_b}--optional6{reset} {label_b}{{X,Y,Z}}{reset} pick one (default: None)
|
{long_b}--optional6{reset} {label_b}{{X,Y,Z}}{reset} pick one {default}(default: {default_value}None{default}){reset}
|
||||||
{short_b}-p{reset}, {long_b}--optional7{reset} {label_b}{{Aaaaa,Bbbbb,Ccccc,Ddddd}}{reset}
|
{short_b}-p{reset}, {long_b}--optional7{reset} {label_b}{{Aaaaa,Bbbbb,Ccccc,Ddddd}}{reset}
|
||||||
pick one (default: None)
|
pick one {default}(default: {default_value}None{default}){reset}
|
||||||
{short_b}+f{reset} {label_b}F{reset}
|
{short_b}+f{reset} {label_b}F{reset}
|
||||||
{long_b}++bar{reset} {label_b}BAR{reset}
|
{long_b}++bar{reset} {label_b}BAR{reset}
|
||||||
{long_b}-+baz{reset} {label_b}BAZ{reset}
|
{long_b}-+baz{reset} {label_b}BAZ{reset}
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1 @@
|
||||||
|
Add colour to defaults in :mod:`argparse` help. Patch by Hugo van Kemenade.
|
||||||
Loading…
Add table
Add a link
Reference in a new issue