使用字典而不是Kedro的parameter.yml

问题描述

有没有一种方法可以使用字典而不是对parameter.yml使用yaml配置?我想将其保留为Python对象,因为我的IDE可以轻松跟踪依赖关系。对于我的参数,我正在向其中注入函数

如果我需要使用yml,我将不得不使用

def steps1(x,func1):
   func1 = eval(func1)

这将很容易破坏重构功能

解决方法

您可以覆盖params中的src.package_name.run.ProjectContext属性,以便它使用Python字典而不是配置加载器。也欢迎您编写自定义ConfigLoader并改用它(通过覆盖_create_config_loader),但这可能需要更多的精力。 请记住,尽管Kedro中的参数被认为是静态配置,并且最好将其与代码分开,但它的参数“应该尽可能地愚蠢”。用表达式描述的内容听起来更适合节点。