#!/usr/bin/python # -*- coding: utf-8 -*- import yaml import logging import sys def parse_input(input_file): """ Parse the yml input file to extract data to create the SpeciesData objects Return a list of dictionaries. Each dictionary contains data tied to a species :param input_file: :return: """ parsed_sp_dict_list = [] if str(input_file).endswith("yml") or str(input_file).endswith("yaml"): logging.debug("Input format used: YAML") else: logging.critical("Error, please input a YAML file") sys.exit() with open(input_file, 'r') as stream: try: yaml_dict = yaml.safe_load(stream) for k, v in yaml_dict.items(): if k == "config": pass parsed_sp_dict_list.append(v) except yaml.YAMLError as exit_code: logging.critical(exit_code + " (YAML input file might be incorrect)") sys.exit() return parsed_sp_dict_list def filter_empty_not_empty_items(li): ret = {"empty": [], "not_empty": []} for i in li: if i is None or i == "": ret["empty"].append(i) else: ret["not_empty"].append(i) return ret