Я хотел бы использовать argparse для разбора логических аргументов командной строки, написанных как "--foo True" или "--foo False". Например:
my_program --my_boolean_flag False
Однако следующий тестовый код не делает то, что я хотел бы:
import argparse
parser = argparse.ArgumentParser(description="My parser")
parser.add_argument("--my_bool", type=bool)
cmd_line = ["--my_bool", "False"]
parsed_args = parser.parse(cmd_line)
К сожалению, parsed_args.my_bool оценивается как True. Это имеет место, даже если я изменяю cmd_line как ["--my_bool", ""], что удивительно, так как bool("") evalutates to False.
Как я могу получить argparse для синтаксического анализа "False", "F", а их варианты в нижнем регистре - False?