def convert_native(input_data, input_format, output_format, source, rec_id_prefix, only_first_record, all_in_one_file): """ Convert native format xml : xmletree root element json : dict bibtex : bibtex root txt : list of line """ if input_format is not None: input_type = io_service.guess_type_from_format(input_format) if input_type is not None: metajson_list = None if input_type == constants.FILE_TYPE_XMLETREE: # xml metajson_list = convert_xmletree(input_data, input_format, source, rec_id_prefix, only_first_record) elif input_type == constants.FILE_TYPE_JSON: # json metajson_list = convert_json(input_data, input_format, source, rec_id_prefix, only_first_record) elif input_type == constants.FILE_TYPE_BIBTEX: # bibtex metajson_list = convert_bibtext(input_data, input_format, source, rec_id_prefix, only_first_record) elif input_type == constants.FILE_TYPE_TXT: # txt metajson_list = convert_txt_lines(input_data, input_format, source, rec_id_prefix, only_first_record) elif input_type == constants.FILE_TYPE_CSV: # csv metajson_list = convert_csv(input_data, input_format, source, rec_id_prefix, only_first_record) elif input_type == constants.FILE_TYPE_MARC: # marc metajson_list = convert_marc(input_data, input_format, source, rec_id_prefix, only_first_record) if metajson_list: # enhance metajson list metajson_list = metajson_service.enhance_metajson_list(metajson_list) return convert_metajson_list(metajson_list, output_format, all_in_one_file)
def parse_and_convert_file(input_file_path, input_format, output_format, source, rec_id_prefix, only_first_record, all_in_one_file): """ Convert from a file path """ # input_format type determination input_type = io_service.guess_type_from_format(input_format) if input_type is None: # file_extension type determination input_type = io_service.guess_type_from_file(input_file_path) #logging.info("parse_and_convert_file input_file_path: {}; input_format: {}; input_type: {}".format(input_file_path, input_format, input_type)) if input_type is not None: metajson_list = None if input_type == constants.FILE_TYPE_XMLETREE: # xml metajson_list = parse_and_convert_xmletree(input_file_path, input_format, source, rec_id_prefix, only_first_record) elif input_type == constants.FILE_TYPE_JSON: # json metajson_list = parse_and_convert_json(input_file_path, input_format, source, rec_id_prefix, only_first_record) elif input_type == constants.FILE_TYPE_BIBTEX: # bibtex metajson_list = parse_and_convert_bibtex(input_file_path, input_format, source, rec_id_prefix, only_first_record) elif input_type == constants.FILE_TYPE_TXT: # txt metajson_list = parse_and_convert_txt_lines(input_file_path, input_format, source, rec_id_prefix, only_first_record) elif input_type == constants.FILE_TYPE_MARC: # marc metajson_list = parse_and_convert_marc(input_file_path, input_format, source, rec_id_prefix, only_first_record) elif input_type == constants.FILE_TYPE_CSV: # csv metajson_list = parse_and_convert_csv(input_file_path, input_format, source, rec_id_prefix, only_first_record) if metajson_list: # enhance metajson list metajson_list = metajson_service.enhance_metajson_list(metajson_list) return convert_metajson_list(metajson_list, output_format, all_in_one_file)
def parse_and_convert_string(input_string, input_format, output_format, source, rec_id_prefix, only_first_record, all_in_one_file): # input_format type determination input_type = io_service.guess_type_from_format(input_format) if input_type is None: # string type determination input_type = io_service.guess_format_from_string(input_string) if input_type is not None: metajson_list = None if input_type == constants.FILE_TYPE_XMLETREE: metajson_list = parse_and_convert_xmletree_str(input_string, input_format, source, rec_id_prefix, only_first_record) elif input_type == constants.FILE_TYPE_JSON: metajson_list = parse_and_convert_json_str(input_string, input_format, source, rec_id_prefix, only_first_record) elif input_type == constants.FILE_TYPE_BIBTEX: metajson_list = parse_and_convert_bibtex(input_string, input_format, source, rec_id_prefix, only_first_record) elif input_type == constants.FILE_TYPE_TXT: metajson_list = parse_and_convert_txt_lines(input_string.splitlines(), input_format, source, rec_id_prefix, only_first_record) if metajson_list: metajson_list = metajson_service.enhance_metajson_list(metajson_list) return convert_metajson_list(metajson_list, output_format, all_in_one_file)