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中包含的目录(配置路径),查找具有yaml、yml或json扩展名的配置文件,通过OmegaConf(https://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"]
OmegaConfsupports 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 theOmegaConfigLoader.当前版本的
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:
items()keys()- rtype:
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()- 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异常。