我有一个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?
在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
告诉Luigi,将标志添加到--my_bool_param false
终端呼叫MyLuigiTask
中将被解析为store_false
。
现在我们可以拥有:
$ MyLuigiTask --my_bool_param false
False
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句