Example #1
0
def record_metas2report(record_metas,
                        doc_record,
                        rec_format,
                        id_traitement,
                        display=True):
    """
    une fois récupérées les métadonnées propres à chaque type de notice
    (grâce à la fonction record2listemetas())
    on les envoie dans un fichier de résultats, par type de doc
    """
    if (rec_format == 3):
        for aut in record_metas:
            doc_record = aut[0]
            if (doc_record in output_files_dict):
                stats[doc_record_type[doc_record]] += 1
                output_files_dict[doc_record].write("\t".join(aut[1:]) + "\n")
                if (display):
                    print(doc_record, ' - ', aut[1])
            else:
                stats[doc_record_type[doc_record]] = 1
                output_files_dict[doc_record] = write_reports(
                    funcs.id_traitement2path(id_traitement), doc_record,
                    rec_format)
                output_files_dict[doc_record].write("\t".join(aut[1:]) + "\n")
                if (display):
                    print(doc_record, ' - ', aut[1])

    elif (doc_record in output_files_dict):
        if (record_metas[0] not in liste_notices_pb_encodage):
            stats[doc_record_type[doc_record]] += 1
            output_files_dict[doc_record].write("\t".join(record_metas) + "\n")
            if (display):
                print(doc_record, ' - ', record_metas[0])

    else:
        stats[doc_record_type[doc_record]] = 1
        output_files_dict[doc_record] = write_reports(
            funcs.id_traitement2path(id_traitement), doc_record, rec_format)
        output_files_dict[doc_record].write("\t".join(record_metas) + "\n")
        if (display):
            print(doc_record, ' - ', record_metas[0])
Example #2
0
def launch(filename,
           type_records_form,
           correct_record_option,
           headers,
           AUTlieesAUT,
           AUTlieesSUB,
           AUTlieesWORK,
           outputID,
           format_records=1,
           format_file=1,
           xml_encoding_option="utf-8",
           select_fields="",
           master=None,
           form=None):
    if filename == []:
        main.popup_errors(form, "Merci d'indiquer un nom de fichier en entrée")
        raise
    else:
        filename = filename[0]
    try:
        [
            filename, type_records_form, correct_record_option, headers,
            AUTlieesAUT, AUTlieesSUB, AUTlieesWORK, outputID, format_records,
            format_file, xml_encoding_option, select_fields
        ] = [
            str(filename),
            int(type_records_form),
            int(correct_record_option),
            int(headers),
            int(AUTlieesAUT),
            int(AUTlieesSUB),
            int(AUTlieesWORK),
            str(outputID),
            int(format_records),
            int(format_file),
            str(xml_encoding_option),
            str(select_fields)
        ]
    except ValueError as err:
        print("\n\nDonnées en entrée erronées\n")
        print(err)

    AUTliees = AUTlieesAUT + AUTlieesSUB + AUTlieesWORK
    format_BIB = dict_format_records[format_records]
    outputID = funcs.id_traitement2path(outputID)
    type_records = "bib"
    if (type_records_form == 2):
        type_records = "aut"
    parametres = {
        "headers": headers,
        "type_records": type_records,
        "correct_record_option": correct_record_option,
        "type_records_form": type_records_form,
        "AUTliees": AUTliees,
        "AUTlieesAUT": AUTlieesAUT,
        "AUTlieesSUB": AUTlieesSUB,
        "AUTlieesWORK": AUTlieesWORK,
        "outputID": outputID,
        "format_records": format_records,
        "format_file": format_file,
        "xml_encoding_option": xml_encoding_option,
        "format_BIB": format_BIB,
        "select_fields": select_fields,
        "listeARK_BIB": [],
        "listeNNA_AUT": []
    }
    files = {}
    main.generic_input_controls(master, filename)
    bib_file = file_create(type_records, parametres)
    files["bib_file"] = bib_file
    if (parametres["AUTliees"] > 0):
        aut_file = file_create("aut", parametres)
        files["aut_file"] = aut_file
    file2extract(filename, parametres, files, master, form)
    file_fin(files["bib_file"], format_file)
    if (AUTliees == 1):
        file_fin(files['aut_file'], format_file)
    fin_traitements(form, outputID)
Example #3
0
def launch(filename,
           type_records_form,
           correct_record_option,
           headers,
           AUTlieesAUT,
           AUTlieesSUB,
           AUTlieesWORK,
           outputID,
           format_records=1,
           format_file=1,
           xml_encoding_option="utf-8",
           select_fields="",
           master=None,
           form=None):
    if filename == []:
        main.popup_errors(form, "Merci d'indiquer un nom de fichier en entrée")
        raise
    else:
        filename = filename[0]
    try:
        [
            filename, type_records_form, correct_record_option, headers,
            AUTlieesAUT, AUTlieesSUB, AUTlieesWORK, outputID, format_records,
            format_file, xml_encoding_option, select_fields
        ] = [
            str(filename),
            int(type_records_form),
            int(correct_record_option),
            int(headers),
            int(AUTlieesAUT),
            int(AUTlieesSUB),
            int(AUTlieesWORK),
            str(outputID),
            int(format_records),
            int(format_file),
            str(xml_encoding_option),
            str(select_fields)
        ]
    except ValueError as err:
        print("\n\nDonnées en entrée erronées\n")
        print(err)

    AUTliees = AUTlieesAUT + AUTlieesSUB + AUTlieesWORK
    format_BIB = dict_format_records[format_records]
    outputID = funcs.id_traitement2path(outputID)
    type_records = "bib"
    if (type_records_form == 2):
        type_records = "aut"
    parametres = {
        "type_records": type_records,
        "correct_record_option": correct_record_option,
        "type_records_form": type_records_form,
        "AUTliees": AUTliees,
        "AUTlieesAUT": AUTlieesAUT,
        "AUTlieesSUB": AUTlieesSUB,
        "AUTlieesWORK": AUTlieesWORK,
        "outputID": outputID,
        "format_records": format_records,
        "format_file": format_file,
        "xml_encoding_option": xml_encoding_option,
        "format_BIB": format_BIB,
        "select_fields": select_fields,
        "listeARK_BIB": [],
        "listeNNA_AUT": []
    }
    main.generic_input_controls(master, filename)

    bib_file = file_create(type_records, parametres)
    parametres["bib_file"] = bib_file
    if (parametres["AUTliees"] > 0):
        aut_file = file_create("aut", parametres)
        parametres["aut_file"] = aut_file
    with open(filename, newline='\n', encoding="utf-8") as csvfile:
        entry_file = csv.reader(csvfile, delimiter='\t')
        if headers:
            next(entry_file, None)
        j = 0
        for row in entry_file:
            if j == 0:
                check_nb_colonnes(row, parametres, master)
            extract1record(row, j, form, headers, parametres)
            j = j + 1

        file_fin(bib_file, format_file)
        if (AUTliees == 1):
            file_fin(aut_file, format_file)
    fin_traitements(form, outputID)