in src/smspark/bootstrapper.py [0:0]
def write_user_configuration(self) -> None:
config_input_path = get_config_path(ConfigPathTypes.USER_CONFIGURATION_INPUT)
def _write_conf(conf: Configuration) -> None:
logging.info("Writing user config to {}".format(conf.path))
conf_string = conf.write_config()
logging.info("Configuration at {} is: \n{}".format(conf.path, conf_string))
if config_input_path:
path = pathlib.Path(config_input_path)
logging.info("reading user configuration from {}".format(str(path)))
with open(str(path), "r") as config:
user_configuration_list_or_dict = json.load(config)
logging.info(
"User configuration list or dict: {} , type {}".format(
user_configuration_list_or_dict,
type(user_configuration_list_or_dict),
)
)
user_confs = self.deserialize_user_configuration(user_configuration_list_or_dict)
if isinstance(user_confs, Configuration):
_write_conf(user_confs)
elif isinstance(user_confs, list):
for user_conf in user_confs:
_write_conf(user_conf)
else:
raise ValueError(
"Could not determine type of user configuration {}. Please consult {} for more information.".format(
user_configuration_list_or_dict, Bootstrapper.EMR_CONFIGURE_APPS_URL
)
)
else:
logging.info("No user input configuration file exists, skipping user configuration")