我在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
的适当方法是什么?
答案 0 :(得分:0)
我发现了这一点;不知道是否有更好的方法,但是我找到了一个加载配置的方法调用:
import luigi
luigi.configuration.add_config_path('path/to/my-config.cfg')
我没有找到一种指定解析器的方法,但是,在阅读了源代码之后,我目前不确定它的可能。因此,我只是从TOML切换到cfg,一切都很好。