问题描述
有没有一种方法可以使用字典而不是对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中的参数被认为是静态配置,并且最好将其与代码分开,但它的参数“应该尽可能地愚蠢”。用表达式描述的内容听起来更适合节点。