Downforu
04/27/2022, 12:03 PMclass UpdateParametersFile:
@hook_impl
def before_pipeline_run(self, run_params: Dict[str, Any]) -> None:
conf_paths = ['conf/base', 'conf/local']
conf_loader = ConfigLoader(conf_paths)
config_params = conf_loader.get("parameters*", "parameters*/**")
with open('conf/base/parameters.yml', 'w') as file:
pass
config_params["param1"] = dict(key1=10, key2=24)
# Initialize key-values pairs
config_params["param3"] = dict(key1='sum')
with open('conf/base/parameters.yml', 'w') as file:
yaml.dump(config_params, file)
I also made the config_params available to the nodes that require "parameters" by adding the following to the ProjectHooks class:
class ProjectHooks:
@hook_impl
def before_node_run(self, node: Node, inputs):
conf_paths = ['conf/base', 'conf/local']
conf_loader = ConfigLoader(conf_paths)
config_params = conf_loader.get("parameters*", "parameters*/**")
if node.name == "node_name":
return {"parameters": config_params}
Thank you in advance