Open
Description
Bug report
Bug description:
import argparse
parser = argparse.ArgumentParser(
formatter_class=argparse.ArgumentDefaultsHelpFormatter
)
day_names = ["mo", "tu", "we", "th", "fr", "sa", "su"]
days = [1, 2, 3, 4, 5, 6, 7]
def name_day(value):
return day_names.index(value) + 1
parser.add_argument(
'--day',
type=name_day,
default="mo",
nargs='?',
help="pick a day",
)
args = parser.parse_args()
print(args.day)
Actual results:
The above code block will print the value 1
. However, if we change the arguments to
default=["mo"],
nargs='+',
The code will print the value ["mo"]
. So it seems type
conversion does not happen for default arguments when nargs
specifies multiple arguments.
Expected results:
The supplied default values are converted, irrespective of the value of nargs
.
CPython versions tested on:
3.13, 3.10
Operating systems tested on:
Linux
Linked PRs
Metadata
Metadata
Assignees
Projects
Status
No status