class TemplatedConfigLoader(AbstractConfigLoader): (source)
Extension of the ConfigLoader class that allows for template values, wrapped in brackets like: ${...}, to be automatically formatted based on the configs.
The easiest way to use this class is by setting the CONFIG_LOADER_CLASS
constant
in settings.py
.
Example:
>>> # in settings.py >>> from kedro.config import TemplatedConfigLoader >>> >>> CONFIG_LOADER_CLASS = TemplatedConfigLoader >>> CONFIG_LOADER_ARGS = { >>> "globals_pattern": "*globals.yml", >>> }
The contents of the dictionary resulting from the globals_pattern
get
merged with the globals_dict. In case of conflicts, the keys in
globals_dict take precedence.
If the formatting key is missing from the dictionary, the default template
value is used (the format is "${key|default value}"). If no default is set,
a ValueError will be raised.
Global parameters can be namespaced as well. An example could work as follows:
globals.yml
bucket: "my_s3_bucket" environment: "dev" datasets: csv: "pandas.CSVDataSet" spark: "spark.SparkDataSet" folders: raw: "01_raw" int: "02_intermediate" pri: "03_primary" fea: "04_feature"
catalog.yml
raw_boat_data: type: "${datasets.spark}" filepath: "s3a://${bucket}/${environment}/${folders.raw}/boats.csv" file_format: parquet raw_car_data: type: "${datasets.csv}" filepath: "s3://${bucket}/data/${environment}/${folders.raw}/cars.csv"
This uses jmespath in the background. For more information see: https://github.com/jmespath/jmespath.py and https://jmespath.org/.
Method | __getitem__ |
Undocumented |
Method | __init__ |
Instantiates a TemplatedConfigLoader. |
Method | __repr__ |
Undocumented |
Method | get |
Tries to resolve the template variables in the config dictionary provided by the ConfigLoader (super class) get method using the dictionary of replacement values obtained in the __init__ method. |
Instance Variable | base |
Undocumented |
Instance Variable | config |
Undocumented |
Instance Variable | default |
Undocumented |
Property | conf |
Property method to return deduplicated configuration paths. |
Method | _build |
Undocumented |
Instance Variable | _config |
Undocumented |
Inherited from AbstractConfigLoader
:
Instance Variable | conf |
Undocumented |
Instance Variable | env |
Undocumented |
Instance Variable | runtime |
Undocumented |
str
, env: str
= None, runtime_params: Dict[ str, Any]
= None, config_patterns: Dict[ str, List[ str]]
= None, *, base_env: str
= 'base', default_run_env: str
= 'local', globals_pattern: Optional[ str]
= None, globals_dict: Optional[ Dict[ str, Any]]
= None):
(source)
¶
Instantiates a TemplatedConfigLoader.
Parameters | |
confstr | Path to use as root directory for loading configuration. |
env:str | Environment that will take precedence over base. |
runtimeDict[ | Extra parameters passed to a Kedro run. |
configDict[ | Regex patterns that specify the naming convention for configuration
files so they can be loaded. Can be customised by supplying config_patterns as
in CONFIG_LOADER_ARGS in settings.py . |
basestr | |
defaultstr | |
globalsOptional[ | Optional keyword-only argument specifying a glob pattern. Files that match the pattern will be loaded as a formatting dictionary. |
globalsOptional[ | Optional keyword-only argument specifying a formatting dictionary. This dictionary will get merged with the globals dictionary obtained from the globals_pattern. In case of duplicate keys, the globals_dict keys take precedence. |
Tries to resolve the template variables in the config dictionary provided by the ConfigLoader (super class) get method using the dictionary of replacement values obtained in the __init__ method.
Parameters | |
*patterns:str | Glob patterns to match. Files, which names match any of the specified patterns, will be processed. |
Returns | |
A Python dictionary with the combined configuration from all | configuration files. Note: any keys that start with _
will be ignored. String values wrapped in ${...} will be
replaced with the result of the corresponding JMESpath
expression evaluated against globals. |
Raises | |
ValueError | malformed config found. |