在初始化时从其他参数创建luigi参数

时间:2018-05-18 20:34:35

标签: python luigi

我有以下问题 - 我可以使用一个参数的值来定义另一个参数吗?这是我正在尝试做的一个例子。 假设我有一个如下所示的配置文件:

[MyTaskRunner]
logdir=/tmp/logs
numruns=2

我定义了这样的MyTaskRunner

class MyTaskRunner(luigi.Task):
      logdir=luigi.Parameter(default=None)
      rundate=luigi.Parameter(default=today)

其中logdir是从配置文件获取的参数,rundate是在运行时传入的参数。

现在,假设我希望像这样定义一个新变量logpath_str

       logpath_str="{}/{}".format(logdir, rundate)

是否可以将其定义为参数?

解决方案是否指定默认值,如:

       logpath=luigi.Parameter(default=logpath_str)

欢迎任何建议。

1 个答案:

答案 0 :(得分:0)

在类初始化之前(在__init__期间),参数值无法解析,因此实现所需行为的一种简单方法是实现__init__ yourslef并初始化{{1} },并在调用super之后使用默认值。

logpath