迁移指南

See the release notes on GitHub 查看每个Kedro版本的详细内容信息。

将使用Kedro 0.18.*的现有项目迁移至0.19.*版本

移除了--params的自定义语法

Kedro 0.19.0 移除了自定义的 --params 语法。要更新,您需要使用 OmegaConf 语法,将 : 替换为 =

如果你使用这个命令向kedro run传递参数:

kedro run --params=param_key1:value1,param_key2:2.0

你现在应该使用以下内容:

kedro run --params=param_key1=value1,param_key2=2.0

更多信息请参阅“如何在运行时指定参数”

create_default_data_set() 已从 Runner 中移除

Kedro 0.19版本移除了Runner中的create_default_data_set()方法。要覆盖默认数据集创建,现在需要使用新的Runner类参数extra_dataset_patterns来代替。

在类实例化时,传入extra_dataset_patterns参数,并按如下方式覆盖默认的MemoryDataset创建逻辑:

from kedro.runner import ThreadRunner

runner = ThreadRunner(extra_dataset_patterns={"{default}": {"type": "MyCustomDataset"}})

project_version 已被移除

Kedro 0.19 移除了 project_versionpyproject.toml 中的配置。请改用 kedro_init_version

[tool.kedro]
package_name = "my_project"
project_name = "my project"
- project_version = "0.19.1"
+ kedro_init_version = "0.19.1"

0.19版本中的数据集变更

catalog.yml 中的 layer 属性已迁移

从0.19版本开始,顶层的layer属性已被移至metadata -> kedro-viz属性内部。您需要相应地更新catalog.yml文件。

以下 catalog.yml 条目在 0.18.x 版本代码中发生了如下变更:

companies:
  type: pandas.CSVDataSet
  filepath: data/01_raw/companies.csv
  layer: raw

在0.19.x版本中:

companies:
  type: pandas.CSVDataset
  filepath: data/01_raw/companies.csv
  metadata:
    kedro-viz:
      layer: raw

查看Kedro-Viz文档获取更多信息

对于APIDatasetcatalog.ymlrequests相关的参数已迁移

从0.19版本开始,如果您使用APIDataset,需要将所有requests特有的参数(如paramsheaders)在层级结构中移动到load_args之下。而urlmethod参数不受影响。

例如,以下在 catalog.yml 中的 APIDataset 从 0.18.x 版本代码中的形式变更为:

us_corn_yield_data:
  type: api.APIDataSet
  url: https://quickstats.nass.usda.gov
  credentials: usda_credentials
  params:
    key: SOME_TOKEN
    format: JSON

在0.19.x版本中:

us_corn_yield_data:
  type: api.APIDataSet
  url: https://quickstats.nass.usda.gov
  credentials: usda_credentials
  load_args:
    params:
      key: SOME_TOKEN
      format: JSON

数据集重命名

在0.19.0版本中,我们重命名了数据集和错误类以遵循Kedro术语表

  • DataSet结尾的数据集类已被替换为以Dataset结尾的类。

  • DataSet开头的错误类已被替换为以Dataset开头的类。

以下所有类也可以从kedro.io导入;仅列出它们定义的模块位置。

类型

已移除的别名

位置

AbstractDataset

AbstractDataSet

kedro.io.core

AbstractVersionedDataset

AbstractVersionedDataSet

kedro.io.core

CachedDataset

CachedDataSet

kedro.io.cached_dataset

LambdaDataset

LambdaDataSet

kedro.io.lambda_dataset

MemoryDataset

MemoryDataSet

kedro.io.memory_dataset

DatasetError

DataSetError

kedro.io.core

DatasetAlreadyExistsError

DataSetAlreadyExistsError

kedro.io.core

DatasetNotFoundError

DataSetNotFoundError

kedro.io.core

所有其他数据集类已从Kedro核心仓库中移除 (kedro.extras.datasets)

你现在需要从kedro-datasets包中安装并导入数据集。

0.19版本中的配置变更

在Kedro 0.18.12版本中,ConfigLoaderTemplatedConfigLoader类已被弃用,并在Kedro 0.19.0版本中移除。要使用该版本或更高版本,您现在必须改用OmegaConfigLoader配置迁移指南概述了旧加载器与OmegaConfigLoader之间的主要区别,并提供了逐步说明,帮助您有效更新代码库以使用新类。

默认环境的变更

0.19版本中默认配置环境已变更,如果存在自定义参数,需在settings.py中显式声明。例如,若您在settings.py中使用CONFIG_LOADER_ARGS读取Spark配置,则需要显式添加base_envdefault_run_env参数。

0.19.x版本之前:

CONFIG_LOADER_ARGS = {
#       "base_env": "base",
#       "default_run_env": "local",
    "config_patterns": {
        "spark": ["spark*", "spark*/**"],
    }
}

在0.19.x版本中:

CONFIG_LOADER_ARGS = {
      "base_env": "base",
      "default_run_env": "local",
          "config_patterns": {
              "spark": ["spark*", "spark*/**"],
          }
}

如果您的代码中没有使用CONFIG_LOADER_ARGS,则无需进行此更改,因为Kedro默认会设置它。

日志记录

logging.yml 现在独立于Kedro的运行环境,仅当设置KEDRO_LOGGING_CONFIG指向该文件时才会被使用。日志记录文档详细描述了Kedro中的日志工作机制以及如何进行自定义配置。