【问题标题】:Luigi Programmatic ConfigurationLuigi 程序化配置
【发布时间】:2019-04-25 00:27:45
【问题描述】:

我在 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.builds env_params),类似于加载 local_scheduler 的方式。

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

【问题讨论】:

    标签: python-3.x luigi


    【解决方案1】:

    我想通了;不确定是否有更好的方法,但我找到了一个加载配置的方法调用:

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

    但是,我没有找到指定解析器的方法,并且在阅读了源代码后,我目前不确定它是否可行。所以,我刚从 TOML 切换到 cfg,一切都很好。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-12-05
      • 2017-10-19
      • 2013-10-28
      • 2010-09-24
      • 1970-01-01
      • 1970-01-01
      • 2011-07-27
      • 1970-01-01
      相关资源
      最近更新 更多