Source code for wsireg.utils.config_utils

import yaml


[docs] def parse_check_reg_config(yaml_filepath): with open(yaml_filepath, "r") as file: reg_config = yaml.full_load(file) def check_for_key(top_key, check_dict, check_key): if check_dict.get(check_key) is None: raise ValueError(f"{top_key} does not contain an {check_key}") if reg_config.get("project_name") is None: raise ValueError( f"{yaml_filepath} does not contain a project_name key" ) if reg_config.get("output_dir") is None: raise ValueError(f"{yaml_filepath} does not contain a output_dir key") if reg_config.get("cache_images") is None: reg_config.update({"cache_images": True}) if reg_config.get("modalities"): for key, val in reg_config["modalities"].items(): [ check_for_key(key, val, ck) for ck in ["image_filepath", "image_res"] ] if reg_config.get("reg_paths"): for key, val in reg_config["reg_paths"].items(): [ check_for_key(key, val, ck) for ck in [ "src_modality_name", "tgt_modality_name", "reg_params", ] ] if isinstance(val.get("reg_params"), str): val.update({"reg_params": [val.get("reg_params")]}) if reg_config.get("attachment_images"): for key, val in reg_config["attachment_images"].items(): [ check_for_key(key, val, ck) for ck in [ "attachment_modality", "image_filepath", "image_res", ] ] if reg_config.get("attachment_shapes"): for key, val in reg_config["attachment_shapes"].items(): [ check_for_key(key, val, ck) for ck in ["attachment_modality", "shape_files"] ] return reg_config