def parse_configuration_files(cfiles, search_path, variable_map = None) : """ Locate and parse a collection of configuration files stored in a TOML format. :param list(str) cfiles: list of configuration files to load :param list(str) search_path: list of directories where the files may be located :param dict variable_map: a set of substitutions for variables in the files :return dict:an aggregated dictionary of configuration information """ config = {} files_found = [] try : for cfile in cfiles : files_found.append(find_file_in_path(cfile, search_path)) except FileNotFoundError as e : raise ConfigurationException(e.filename, e.strerror) for filename in files_found : try : config.update(parse_configuration_file(filename, variable_map)) except IOError as detail : raise ConfigurationException(filename, "IO error; {0}".format(str(detail))) except ValueError as detail : raise ConfigurationException(filename, "Value error; {0}".format(str(detail))) except NameError as detail : raise ConfigurationException(filename, "Name error; {0}".format(str(detail))) except KeyError as detail : raise ConfigurationException(filename, "Key error; {0}".format(str(detail))) except : raise ConfigurationException(filename, "Unknown error") return config
def read_json_file(input_file, data_dir=['./', '../', '/']): """ Function to read json file and returns the json content as a string Parameters: - input_file is any json file which need to be read - data_dir is the directory structure in which the json file exists """ file_name = putils.find_file_in_path(input_file, data_dir) with open(file_name, "r") as input_json_file: input_json = input_json_file.read() return input_json