Luigi:有没有办法像configparser中那样使用扩展插值?

时间:2020-02-18 15:23:20

标签: python-2.7 config luigi

我有一个luigi配置文件:

for (i in 0:10) {
  if (i < 3)
    print(i)
  } else if (i >= 3) {
Error: unexpected 'else' in:
"    print(i)
  } else"
>     print((i-1)+2(i-2))
Error in print((i - 1) + 2(i - 2)) : attempt to apply non-function
>   }
Error: unexpected '}' in "  }"
> }
Error: unexpected '}' in "}"

但是当我通过配置路径运行luigi任务时,我看到[Common] dir: /some/path [MyTask] task_parameter: ${Common:dir}/other/folders/ == task_parameter,而不是"${Common:dir}/other/folders/"

我做错什么了吗?这样可以使用LuigiConfigParser吗?

我使用python2.7和luigi == 2.7.1。

1 个答案:

答案 0 :(得分:0)

否,您不能进行扩展插值。插值是Shell特有的,配置是在Python领域内部解析的。另外,请记住,所有参数都必须可序列化,因此Luigi / Python为此必须跳过一些非常怪异的步骤。

但是,很容易扩展到您需要的内容。您可以做的是代替指定task_parameter,而可以指定诸如task_parameter_query,并在解决参数目的时使用字符串作为查询的基础。看来您只是想在此处获取环境变量,因此您可以只使用task_parameter作为字符串模板,然后通过调用os.getenv来填充值。