logger.info(f"Loaded template config from {template_config_path}.")
logger.info(f"Loaded template config from {template_config_path}.")
# Check if config contains required fields in example config
for key in template_config:
if key != 'optional':
assert key in config
except FileNotFoundError:
except FileNotFoundError:
logger.error(f"No config file found at {template_config_path}! ")
logger.error(f"No config file found at {template_config_path}! ")
raise
raise
except AssertionError:
# Check if config contains required fields in example config
logger.error(f"Required config fields from {template_config_path} do not match {config.keys()}")
missing = [key for key in template_config if key not in config and key != 'optional']
raise
if missing:
err_msg = f"Required keys missing: {missing}"
logger.error(err_msg)
raise ValueError(err_msg)
# Check if optional field available
# Check if optional field available
if 'optional' not in config:
if 'optional' not in config or config['optional'] != dict:
logger.info(f'No "optional" field found or no valid configuration for config.yaml.')
config['optional'] = {}
config['optional'] = {}
# Check optional fields and include in config if not present
# Check optional fields and include in config if not present
for optkey, value in template_config['optional'].items():
for optkey, value in template_config['optional'].items():
if optkey not in config['optional']:
if optkey not in config['optional']:
config['optional'][optkey] = value
config['optional'][optkey] = value
logger.info(f"Added optional field: \"{optkey}\" with value: \"{value}\" to config.")
logger.info(f'Set default value for optional parameter "{optkey}" to : "{value}"')
# Parse YAML rule config file
# Parse YAML rule config file
if 'rule_config' in config['optional'] and config['optional']['rule_config']:
try:
try:
with open(config['optional']['rule_config']) as _file:
with open(config['optional']['rule_config']) as _file:
rule_config = yaml.safe_load(_file)
rule_config = yaml.safe_load(_file)
logger.info(f"Loaded rule_config from {config['optional']['rule_config']}.")
logger.info(f"Loaded rule_config from {config['optional']['rule_config']}.")
except TypeError:
except FileNotFoundError:
logger.error(f'No string supplied at field "rule_config", but: {config["optional"]["rule_config"]}')
logger.error(f"No rule config file found at {config['optional']['rule_config']}. Either provide file or remove rule_config parameter from config.yaml! ")
except FileNotFoundError:
raise
logger.error(f"No rule config file found at {config['optional']['rule_config']}. Either provide file or remove rule_config parameter from config.yaml! ")
else:
raise
except KeyError:
rule_config = {}
rule_config = {}
logger.warning(f"No rule config specified: using default values for all tools.")
logger.warning(f"No rule config specified: using default values for all tools.")