小编Jav*_*dez的帖子

如何在 kedro 0.17.0 中加载特定的目录数据集实例?

我们使用的是 kedro 版本 0.15.8,并且我们以这种方式从目录中加载一个特定项目:

from kedro.context import load_context
get_context().catalog.datasets.__dict__[key]
Run Code Online (Sandbox Code Playgroud)

现在,我们正在更改为 kedro 0.17.0 并尝试以相同的方式加载目录数据集(使用框架上下文):

from kedro.framework.context import load_context
get_context().catalog.datasets.__dict__[key]
Run Code Online (Sandbox Code Playgroud)

现在我们得到了错误:

kedro.framework.context.context.KedroContextError:需要一个实例ConfigLoaderNoneType却得到了。

这是因为项目中的 hook register_config_loader 没有被调用该函数的 hook_manager 使用。

项目挂钩定义如下:

class ProjectHooks:

    @hook_impl

    def register_pipelines(self) -> Dict[str, Pipeline]:

        """Register the project's pipeline.

        Returns:

            A mapping from a pipeline name to a ``Pipeline`` object.

        """

        pm = pre_master.create_pipeline()

        return {

            "pre_master": pm,

            "__default__": pm

        }

    @hook_impl

    def register_config_loader(self, conf_paths: Iterable[str]) -> ConfigLoader:

        return ConfigLoader(conf_paths)

    @hook_impl

    def register_catalog(

        self,

        catalog: Optional[Dict[str, …
Run Code Online (Sandbox Code Playgroud)

hook kedro

5
推荐指数
1
解决办法
3481
查看次数

标签 统计

hook ×1

kedro ×1