Bug report
Bug description:
Since the merge of #141940, the following is broken:
import argparse
parser = argparse.ArgumentParser()
parser.add_argument(
"--foo",
type=int,
default=1234,
help="0x%(default)x",
)
args = parser.parse_args()
It will trigger:
Traceback (most recent call last):
File "/Users/aprengere/Dev/cpython/Lib/argparse.py", line 1792, in _check_help
formatter._expand_help(action)
~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^
File "/Users/aprengere/Dev/cpython/Lib/argparse.py", line 695, in _expand_help
return help_string % params
~~~~~~~~~~~~^~~~~~~~
TypeError: %x format: an integer is required, not str
The reason is that now the values are "colored" (thus converted to str) before doing the actual interpolation using help_string % values.
If the expected type is not string (integer in this example), then the --help will fail.
I will try to fix this using a different approach for #141940
CPython versions tested on:
CPython main branch
Operating systems tested on:
macOS
Bug report
Bug description:
Since the merge of #141940, the following is broken:
It will trigger:
The reason is that now the values are "colored" (thus converted to
str) before doing the actual interpolation usinghelp_string % values.If the expected type is not string (integer in this example), then the
--helpwill fail.I will try to fix this using a different approach for #141940
CPython versions tested on:
CPython main branch
Operating systems tested on:
macOS