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

Luigi: Is there a way to use Extended Interpolation like in configparser?

我有一个 luigi 配置文件:

[Common]
dir: /some/path

[MyTask]
task_parameter: ${Common:dir}/other/folders/

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

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

我用的是python2.7和luigi==2.7.1.

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

但是,扩展到您需要的内容非常容易。您可以做的是不指定 task_parameter,而是指定 task_parameter_query 并在解析参数用途时使用该字符串作为查询的基础。看起来你只是想在这里获取一个环境变量,所以你可以只使用 task_parameter 作为字符串模板,然后通过调用 os.getenv.

来填充值