def render_template(template_filename, configuration_context): """ parse the template file and return the content as a text :param template_filename: template filename path :param configuration_context: dictionary containing configurations loaded from module.ini :return populated template content """ settings = configuration_context[constants.CONFIG_SETTINGS_KEY] # Converting multi-valued params to dictionary params_context = configuration_context[constants.CONFIG_PARAMS_KEY] if ConfigParserUtil.str_to_bool(settings[constants.CONFIG_READ_FROM_ENVIRONMENT_KEY]): log.info("READ_FROM_ENVIRONMENT is set to True. Reading template parameters from environment variables") template_source = template_environment.loader.get_source(template_environment, template_filename)[0] parsed_content = template_environment.parse(template_source) variables = meta.find_undeclared_variables(parsed_content) params_context_dict = ConfigParserUtil.get_context_from_env(variables, params_context) else: params_context_dict = ConfigParserUtil.get_multivalued_attributes_as_dictionary(params_context) log.info("Rendering template file: %s using template parameters: %s", template_filename, params_context_dict) return template_environment.get_template(template_filename).render(params_context_dict)