Luigi程序配置

时间:2019-04-25 00:27:45

标签: python-3.x luigi

我在luigi工作流程中使用的配置文件类似于以下内容:

# Luigi logging configuration
[logging]
version = 1
disable_existing_loggers = false

[logging.formatters.simple]
format = "{levelname:8} {asctime} {module}:{lineno} {message}"
style = "{"
datefmt = "%Y-%m-%d %H:%M:%S"

# Luigi contrib configurations
[postgres]
marker-table="luigi_table_updates"

然后从这样的命令中调用luigi

LUIGI_CONFIG_PATH='path/to/luigi.toml' luigi ...

但是,我想以编程方式调用我的工作流程。我可以使用luigi.build方法来完成;但是,我尝试像这样传递我的配置路径:

luigi.build(my_tasks, local_scheduler=True, LUIGI_CONFIG_PATH='path/to/luigi.toml')

并出现以下错误:

luigi.parameter.UnknownParameterException: core[args=(), kwargs={'local_scheduler': True, 'LUIGI_CONFIG_PATH': 'path/to/luigi.toml', 'no_lock': True}]: unknown parameter LUIGI_CONFIG_PATH

我假设将其用作kwarg会将其加载到环境(luigi.build env_params)中,类似于加载local_scheduler的方式。

所以,我的问题是,以编程方式配置luigi的适当方法是什么?

1 个答案:

答案 0 :(得分:0)

我发现了这一点;不知道是否有更好的方法,但是我找到了一个加载配置的方法调用:

import luigi

luigi.configuration.add_config_path('path/to/my-config.cfg')

我没有找到一种指定解析器的方法,但是,在阅读了源代码之后,我目前不确定它的可能。因此,我只是从TOML切换到cfg,一切都很好。