Я хотел бы использовать 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
?