kedro.config.OmegaConfigLoader

class kedro.config.OmegaConfigLoader(conf_source, env=None, runtime_params=None, *, config_patterns=None, base_env=None, default_run_env=None, custom_resolvers=None, merge_strategy=None)[source]

递归扫描conf_source中包含的目录(配置路径),查找具有yamlymljson扩展名的配置文件,通过OmegaConfhttps://omegaconf.readthedocs.io/)加载并合并它们,并以配置字典的形式返回。

第一个处理的配置路径是conf_source内的base目录。可选参数env可用于指定conf_source的一个子目录,在base之后作为配置路径处理。

当位于同一(子)目录下的任意两个配置文件中出现相同的顶级键时,将引发ValueError错误。

当同一个键出现在位于不同(子)目录下的任意两个配置文件中时,最后处理的配置路径将优先并覆盖该键及其所有子键。

你可以通过以下方式访问不同的配置:

import logging.config
from kedro.config import OmegaConfigLoader
from kedro.framework.project import settings

conf_path = str(project_path / settings.CONF_SOURCE)
conf_loader = OmegaConfigLoader(conf_source=conf_path, env="local")

conf_catalog = conf_loader["catalog"]
conf_params = conf_loader["parameters"]

OmegaConf supports variable interpolation in configuration https://omegaconf.readthedocs.io/en/2.2_branch/usage.html#merging-configurations. It is recommended to use this instead of yaml anchors with the OmegaConfigLoader.

当前版本的OmegaConfigLoader不支持任何内置的OmegaConf解析器。未来版本可能会添加对解析器的支持。

要使用这个类,请修改settings.py文件中CONFIG_LOADER_CLASS常量的设置。

示例:

# in settings.py
from kedro.config import OmegaConfigLoader

CONFIG_LOADER_CLASS = OmegaConfigLoader

方法

clear()

copy()

fromkeys(iterable[, value])

get(key[, default])

rtype:

Any

items()

keys()

rtype:

KeysView

load_and_merge_dir_config(conf_path, ...[, ...])

使用OmegaConf递归加载并合并目录中满足给定通配模式列表的所有配置文件。

pop(k[,d])

如果未找到键,则返回给定的d,否则抛出KeyError异常。

popitem()

作为2元组;但如果D为空则抛出KeyError。

setdefault(k[,d])

update([E, ]**F)

如果E存在且具有.keys()方法,则执行:对于E中的每个k,D[k] = E[k]。如果E存在但缺少.keys()方法,则执行:对于E中的每个(k, v),D[k] = v。无论哪种情况,之后都会执行:对于F.items()中的每个k, v,D[k] = v

values()

clear() None.  Remove all items from D.[source]
copy()[source]
classmethod fromkeys(iterable, value=None)[source]
get(key, default=None)[source]
Return type:

Any

items() a set-like object providing a view on D's items[source]
keys()[source]
Return type:

KeysView

load_and_merge_dir_config(conf_path, patterns, key, processed_files, read_environment_variables=False)[source]

使用OmegaConf递归加载并合并指定路径下满足给定通配模式列表的所有配置文件。

Parameters:
  • conf_path – 配置目录的路径。

  • patterns – 用于匹配文件名的全局模式列表。

  • key – 要获取的配置类型的键。

  • processed_files – 针对给定配置类型读取的文件集合。

  • read_environment_variables - 是否解析环境变量。

Raises:
  • MissingConfigException – 如果配置路径不存在或无效。

  • ValueError – 如果两个或多个配置文件包含相同的键(key)。

  • ParserError – 如果配置文件包含无效的YAML或JSON语法。

Returns:

生成的配置字典。

pop(k[, d]) v, remove specified key and return the corresponding value.[source]

如果未找到键,则返回给定的d,否则抛出KeyError异常。

popitem() (k, v), remove and return some (key, value) pair[source]

作为2元组;但如果D为空则抛出KeyError。

setdefault(k[, d]) D.get(k,d), also set D[k]=d if k not in D[source]
update([E, ]**F) None.  Update D from mapping/iterable E and F.[source]

如果E存在且具有.keys()方法,则执行: for k in E: D[k] = E[k] 如果E存在但缺少.keys()方法,则执行: for (k, v) in E: D[k] = v 无论哪种情况,之后都会执行: for k, v in F.items(): D[k] = v

values() an object providing a view on D's values[source]