我在我的工作流程中使用了类似于以下内容的配置文件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"
Run Code Online (Sandbox Code Playgroud)
然后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"
Run Code Online (Sandbox Code Playgroud)
但是,我想以编程方式调用我的工作流程。我可以使用该luigi.build方法来做到这一点;但是,我尝试像这样传递我的配置路径:
LUIGI_CONFIG_PATH='path/to/luigi.toml' luigi ...
Run Code Online (Sandbox Code Playgroud)
并得到以下错误:
luigi.parameter.UnknownParameterException: core[args=(), kwargs={'local_scheduler': True, 'LUIGI_CONFIG_PATH': 'path/to/luigi.toml', 'no_lock': True}]: unknown parameter LUIGI_CONFIG_PATH
Run Code Online (Sandbox Code Playgroud)
我假设将它用作 kwarg 会将其加载到环境中,类似于luigi.build加载方式。env_paramslocal_scheduler
所以,我的问题是,以编程方式配置的适当方法是什么luigi?
我想通了;不确定是否有更好的方法,但我找到了一个加载配置的方法调用:
import luigi
luigi.configuration.add_config_path('path/to/my-config.cfg')
Run Code Online (Sandbox Code Playgroud)
然而,我没有找到指定解析器的方法,在阅读源代码后,我不确定目前是否可能。所以,我只是从 TOML 切换到 cfg,一切都很好。
| 归档时间: |
|
| 查看次数: |
945 次 |
| 最近记录: |