我有一个Luigi
任务,其布尔参数默认设置为 True :
class MyLuigiTask(luigi.Task):
my_bool_param = luigi.BoolParameter(default=True)
当我从终端运行此任务时,有时我想将该参数传递为 False ,但得到以下结果:
$ MyLuigiTask --my_bool_param False
error: unrecognized arguments: False
显然false
和0
......
我知道我可以将默认设置为 False ,然后将标记--my_bool_param
设置为 True ,但我更喜欢默认为 True 。
有没有办法做到这一点,并且仍然从终端传递 False ?
答案 0 :(得分:2)
在Luigi docs中找到了解决方案:
class MyLuigiTask(luigi.Task):
my_bool_param = luigi.BoolParameter(
default=True,
parsing=luigi.BoolParameter.EXPLICIT_PARSING)
def run(self):
print(self.my_bool_param)
EXPLICIT_PARSING
告诉路易吉,在终端调用中向--my_bool_param false
添加标志MyLuigiTask
将被解析为store_false
。
现在我们可以拥有:
$ MyLuigiTask --my_bool_param false
False