对于我的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的合适方法是什么?
发布于 2019-05-01 02:21:32
我解决了这个问题;不确定是否有更好的方法,但我发现了一个加载配置的方法调用:
import luigi
luigi.configuration.add_config_path('path/to/my-config.cfg')然而,我没有找到一种方法来指定解析器,而且在阅读了源代码后,我不确定目前是否可能。所以,我刚刚从TOML切换到cfg,一切都很好。
https://stackoverflow.com/questions/55840241
复制相似问题