Ejemplo n.º 1
0
def getUNICAMP_eng(text):
    aprovacao = 0
    reprovacao = 0
    semestre = 0
    cr = 0
    cr_curso = 0
    classificacao = ""
    semestre_inicial = ""
    curso = ""

    if len(re.findall(r'\d\.\d\d\d\d', text)) >= 1:
        aux = re.findall(r'\d\.\d\d\d\d', text)[1]
        cr = float(aux[-6:])
    if len(re.findall(r'\d\.\d\d\d\d', text)) >= 2:
        aux = re.findall(r'\d\.\d\d\d\d', text)[0]
        cr_curso = float(aux[-6:])

    aprovacao = len(re.findall(r'Passed ', text))
    reprovacao = len(re.findall(r'Reproved', text))
    semestre = len(re.findall(r'SEMESTER', text.upper()))

    if len(re.findall(r'\dº Semester of \d\d\d\d', text)) >= 1:
        semestre_inicial = re.findall(r'\dº Semester of \d\d\d\d', text)[0][-4:] + "-0" + \
                           re.findall(r'\dº Semester of \d\d\d\d', text)[0][0]
    if semestre_inicial == "":
        if len(re.findall(r' semester of \d\d\d\d', text)) >= 1:
            ano = re.findall(r' semester of \d\d\d\d', text)[0][-4:]
            if len(re.findall(r'First semester of ' + ano, text)) >= 1:
                semestre_inicial = ano + "-01"
            else:
                semestre_inicial = ano + + "-02"

    course_aux = text.split("Course")
    if len(course_aux) > 1:
        course_aux1 = course_aux[1].split("Accredited by Ministerial Decree")
        if len(course_aux1[0].split("\n")) > 8:
            curso = course_aux1[0].split("\n")[8]
        else:
            curso = course_aux1[0].split(" – ")[1]

    if len(re.findall(r'\n\d\dº de \d\d alunos', text)) >= 1:
        classificacao = re.findall(r'\n\d\dº de \d\d alunos', text)[0]
    elif len(re.findall(r'\n\d\dº de \d\d\d alunos', text)) >= 1:
        classificacao = re.findall(r'\n\d\dº de \d\d\d alunos', text)[0]
    elif len(re.findall(r'\n\d\d\dº de \d\d\d alunos', text)) >= 1:
        classificacao = re.findall(r'\n\d\d\dº de \d\d\d alunos', text)[0]
    elif len(re.findall(r'\n\dº de \d\d alunos', text)) >= 1:
        classificacao = re.findall(r'\n\dº de \d\d alunos', text)[0]

    status = checkKPI(aprovacao, reprovacao, semestre, cr, cr_curso,
                      classificacao, semestre_inicial, curso)

    return aprovacao, reprovacao, semestre, cr, cr_curso, classificacao, semestre_inicial, curso, status
Ejemplo n.º 2
0
def getUNICAMP_port(text):
    aprovacao = 0
    reprovacao = 0
    semestre = 0
    cr = 0
    cr_curso = 0
    classificacao = ""
    semestre_inicial = ""
    curso = ""

    if len(re.findall(r'\d\.\d\d\d\d', text)) >= 2:
        aux = re.findall(r'\d\.\d\d\d\d', text)[0]
        cr = float(aux[-6:])
        aux = re.findall(r'\d\.\d\d\d\d', text)[1]
        cr_curso = float(aux[-6:])
    if len(re.findall(r'\d\.\d\d\d\d', text)) == 1:
        cr = 0
        aux = re.findall(r'\d\.\d\d\d\d', text)[0]
        cr_curso = float(aux[-6:])

    aprovacao = len(re.findall(r'Aprovado ', text))
    reprovacao = len(re.findall(r'Reprovado ', text))
    semestre = len(re.findall(r'Semestre', text))

    if len(re.findall(r'\dº Semestre de \d\d\d\d', text)) >= 1:
        semestre_inicial = re.findall(r'\dº Semestre de \d\d\d\d', text)[0][-4:] + "-0" + \
                           re.findall(r'\dº Semestre de \d\d\d\d', text)[0][0]
    if len(re.findall(r'\n\d\dº de \d\d alunos', text)) >= 1:
        classificacao = re.findall(r'\n\d\dº de \d\d alunos', text)[0]
    elif len(re.findall(r'\n\d\dº de \d\d\d alunos', text)) >= 1:
        classificacao = re.findall(r'\n\d\dº de \d\d\d alunos', text)[0]
    elif len(re.findall(r'\n\d\d\dº de \d\d\d alunos', text)) >= 1:
        classificacao = re.findall(r'\n\d\d\dº de \d\d\d alunos', text)[0]
    elif len(re.findall(r'\n\dº de \d\d alunos', text)) >= 1:
        classificacao = re.findall(r'\n\dº de \d\d alunos', text)[0]
    curso_aux = text.split("Reconhecido pel")
    if len(curso_aux) > 1:
        curso_aux2 = curso_aux[0].split("Curso: ")
        if len(curso_aux2) > 1:
            curso = curso_aux2[1].split(" - ")[1]
    else:
        curso_aux = text.split("Habilita")
        if len(curso_aux) > 1:
            curso_aux2 = curso_aux[0].split("Curso: ")
            if len(curso_aux2) > 1:
                curso = curso_aux2[1].split(" - ")[1]

    status = checkKPI(aprovacao, reprovacao, semestre, cr, cr_curso,
                      classificacao, semestre_inicial, curso)

    return aprovacao, reprovacao, semestre, cr, cr_curso, classificacao, semestre_inicial, curso, status
Ejemplo n.º 3
0
def getUFRJ_eng(text):
    aprovacao = 0
    reprovacao = 0
    semestre = 0
    cr = 0
    cr_curso = 0
    classificacao = ""
    semestre_inicial = ""
    curso = ""

    aprovacao, reprovacao, semestre, cr, cr_curso, classificacao, semestre_inicial, curso, status = getUniversityUnknown_eng(text)

    status = checkKPI(aprovacao, reprovacao, semestre, cr, cr_curso, classificacao, semestre_inicial, curso)

    return aprovacao, reprovacao, semestre, cr, cr_curso, classificacao, semestre_inicial, curso, status
Ejemplo n.º 4
0
def getUSP_port(text):

    aprovacao = 0
    reprovacao = 0
    semestre = 0
    cr = 0
    cr_curso = 0
    classificacao = ""
    semestre_inicial = ""
    curso = ""

    aprovacao = len(re.findall(r'\d\.\dA\w', text))
    trancada = len(re.findall(r'\d\.\dT\w', text))
    reprovacao_nota = len(re.findall(r'\d\.\dRN\w', text))
    reprovacao_nota_freq = len(re.findall(r'\d\.\dRA\w', text))
    reprovaca_freq = len(re.findall(r'\d\.\dRF\w', text))
    reprovacao = reprovacao_nota_freq + reprovaca_freq + reprovacao_nota

    if len(re.findall(r'\d\d\d\d  \dº. Semestre', text)) >= 1:
        semestre_inicial = re.findall(r'\d\d\d\d  \dº. Semestre', text)[0][0:4] + "-0" + \
                               re.findall(r'\d\d\d\d  \dº. Semestre', text)[0][6]
    elif len(re.findall(r'\d\d\d\d  \d¼. Semestre', text)) >= 1:
        semestre_inicial = re.findall(r'\d\d\d\d  \d¼. Semestre', text)[0][0:4] + "-0" + \
                               re.findall(r'\d\d\d\d  \d¼. Semestre', text)[0][6]

    semestre = len(re.findall(r'Semestre', text)) - len(re.findall(r'no Semestre', text))

    if len(re.findall(r'Média Ponderada com reprovações:   \d\.\d', text)) >= 1:
        cr = float(re.findall(r'Média Ponderada com reprovações:   \d\.\d', text)[0][-3:])
        if len(re.findall(r'Média ponderada de seu curso : \d\.\d\d\d\d', text)) >= 1:
            cr_curso = float(re.findall(r'Média ponderada de seu curso : \d\.\d\d\d\d', text)[0][-6:])
        if len(re.findall(r'M”dia Ponderada com reprova“łes:   \d\.\d', text)) >= 1:
            cr = float(re.findall(r'M”dia Ponderada com reprova“łes:   \d\.\d', text)[0][-3:])
        if len(re.findall(r'M”dia ponderada de seu curso : \d\.\d\d\d\d', text)) >= 1:
            cr_curso = float(re.findall(r'M”dia ponderada de seu curso : \d\.\d\d\d\d', text)[0][-6:])

        curso_aux = text.split("Curso:")
        if len(curso_aux) > 1:
            curso_aux2 = curso_aux[1].split(" Quantidade de reingressos: ")
            if len(curso_aux2) > 1:
                curso = curso_aux2[0].split(" - ")[1]


    status = checkKPI(aprovacao, reprovacao, semestre, cr, cr_curso, classificacao, semestre_inicial, curso)

    return aprovacao, reprovacao, semestre, cr, cr_curso, classificacao, semestre_inicial, curso, status
Ejemplo n.º 5
0
def getUSP_eng(text):
    aprovacao = 0
    reprovacao = 0
    semestre = 0
    cr = 0
    cr_curso = 0
    classificacao = ""
    semestre_inicial = ""
    curso = ""

    aprovacao = len(re.findall(r'\d\.\dA\w', text))
    trancada = len(re.findall(r'\d\.\dT\w', text))
    reprovacao_nota = len(re.findall(r'\d\.\dRN\w', text))
    reprovacao_nota_freq = len(re.findall(r'\d\.\dRA\w', text))
    reprovaca_freq = len(re.findall(r'\d\.\dRF\w', text))
    reprovacao = reprovacao_nota_freq + reprovaca_freq + reprovacao_nota

    semestre_inicial_aux = text.split(" Semester")
    if len(semestre_inicial_aux) > 1:
        semestre_inicial_aux2 = semestre_inicial_aux[0].split("Period:      ")
        if len(semestre_inicial_aux2) > 1:
            semestre_inicial_aux3 = semestre_inicial_aux2[1].split("  ")
            if len(semestre_inicial_aux3) > 1:
                if semestre_inicial_aux3[1] == "First":
                    semestre_mes = "01"
                else:
                    semestre_mes = "02"
                semestre_inicial = semestre_inicial_aux3[0] + "-" + semestre_mes
    if len(re.findall(r'Pondered average including failures: \d\.\d', text)) >= 1:
        cr = float(re.findall(r'Pondered average including failures: \d\.\d', text)[0][-3:])
    if semestre == 0:
        semestre = len(re.findall(r'Semester', text))
        semestre = semestre - len(re.findall(r'Credits attained in the Semester', text))
        semestre = semestre - len(re.findall(r'Credits earned by the end of the Semester', text))

    curso_aux = text.split("Program Name:  ")
    if len(curso_aux) > 1:
        curso_aux2 = curso_aux[1].split("_")
        if len(curso_aux2) > 1:
            curso = curso_aux2[0].split("     ")[1]

    status = checkKPI(aprovacao, reprovacao, semestre, cr, cr_curso, classificacao, semestre_inicial, curso)

    return aprovacao, reprovacao, semestre, cr, cr_curso, classificacao, semestre_inicial, curso, status
Ejemplo n.º 6
0
def getUFRJ_port(text):
    aprovacao = 0
    reprovacao = 0
    semestre = 0
    cr = 0
    cr_curso = 0
    classificacao = ""
    semestre_inicial = ""
    curso = ""

    aprovacao = len(re.findall(r'AP\n', text))
    reprovacao = len(re.findall(r'RF\n', text)) + len(re.findall(r'RM\n', text)) + len(re.findall(r'RFM\n', text))

    semestre_inicial = re.findall(r'\d\d\d\d/\d\n', text)[0]
    semestre_inicial = semestre_inicial[:4] + "-0" + semestre_inicial[-2]

    try:
        curso = text.split("HISTÓRICO NÃO OFICIAL")[1].split("Portaria")[0].split("\n")[2]
    except:
        curso = text.split("BOLETIM NÃO OFICIAL")[1].split("Portaria")[0].split("\n")[2]

    semestre = len(re.findall(r'\d\d\d\d/\d\n', text))

    semestre_final = re.findall(r'\d\d\d\d/\d\n', text)[len(re.findall(r'\d\d\d\d/\d\n', text)) - 1]

    try:
        aux = text.split("Totais: no período")[len(text.split("Totais: no período")) - 2].split(semestre_final)[1]

        if(len(re.findall(r'\d\d\.\d\n', aux)) >0 ):
            cr = re.findall(r'\d\d\.\d\n', aux)[1]
        else:
            cr = re.findall(r'\d\.\d\n', aux)[1]

    except:
        cr = re.findall(r'\d\.\d\n', text)
        cr = cr[len(cr) - 1]

    cr = float(cr)


    status = checkKPI(aprovacao, reprovacao, semestre, cr, cr_curso, classificacao, semestre_inicial, curso)

    return aprovacao, reprovacao, semestre, cr, cr_curso, classificacao, semestre_inicial, curso, status
Ejemplo n.º 7
0
def getUNESP_port(text):
    aprovacao = 0
    reprovacao = 0
    semestre = 0
    cr = 0
    cr_curso = 0
    classificacao = ""
    semestre_inicial = ""
    curso = ""

    if len(re.findall(r'\dº semestre de \d\d\d\d', text)) >= 1:
        semestre_inicial = re.findall(r'\dº semestre de \d\d\d\d', text)[0][-4:] + "-0" + \
                           re.findall(r'\dº semestre de \d\d\d\d', text)[0][0]
    semestre = len(re.findall(r'semestre', text))
    aprovacao = len(re.findall(r'Aprovado', text))
    reprovacao = len(re.findall(r'Reprovado', text))


    if len(re.findall(r'\n\d\dº de \d\d alunos', text)) >= 1:
        classificacao = re.findall(r'\n\d\dº de \d\d alunos', text)[0]
    elif len(re.findall(r'\n\d\dº de \d\d\d alunos', text)) >= 1:
        classificacao = re.findall(r'\n\d\dº de \d\d\d alunos', text)[0]
    elif len(re.findall(r'\n\d\d\dº de \d\d\d alunos', text)) >= 1:
        classificacao = re.findall(r'\n\d\d\dº de \d\d\d alunos', text)[0]
    elif len(re.findall(r'\n\dº de \d\d alunos', text)) >= 1:
        classificacao = re.findall(r'\n\dº de \d\d alunos', text)[0]


    if len(re.findall(r'\d,\d\d\d', text)) > 1:
        len_cr = len(re.findall(r'\d,\d\d\d', text))
        cr = float(re.findall(r'\d,\d\d\d', text)[len_cr - 2].replace(',', '.'))
        cr_curso = float(re.findall(r'\d,\d\d\d', text)[len_cr - 1].replace(',', '.'))


    curso_aux = text.split("Curso:")
    if len(curso_aux) > 1:
        curso_aux2 = curso_aux[1].split("\n")
        if len(curso_aux2) > 1:
            curso = curso_aux2[0]

    status = checkKPI(aprovacao, reprovacao, semestre, cr, cr_curso, classificacao, semestre_inicial, curso)

    return aprovacao, reprovacao, semestre, cr, cr_curso, classificacao, semestre_inicial, curso, status
Ejemplo n.º 8
0
def getUFSCAR_port(text):

    aprovacao = 0
    reprovacao = 0
    semestre = 0
    cr = 0
    cr_curso = 0
    classificacao = ""
    semestre_inicial = ""
    curso = ""

    if len(re.findall(r'\d\d\d\d/\d\n', text)) > 1:
        semestre_inicial = re.findall(r'\d\d\d\d/\d\n',
                                      text)[1][0:4] + "-0" + re.findall(
                                          r'\d\d\d\d/\d\n', text)[0][5]

    aprovacao = len(re.findall(r'APROVADO', text))
    reprovacao = len(re.findall(r'REPROVADO', text))
    semestre = max(len(re.findall(r'\d\d\d\d/\d\n', text)) - 3, 0)

    if len(re.findall(r'Média Geral\nTotal:\d\.\d\d', text)) >= 1:
        cr = float(
            re.findall(r'Média Geral\nTotal:\d\.\d\d', text)[0].split(':')[1])
    curso_aux = text.split("\n")
    if len(re.findall(r'\d\d\d\d\d\d - \w',
                      curso_aux[0])) >= 1 and curso_aux[1] != "\n" and not (
                          curso_aux[1].isupper()) and curso_aux[1] != '':
        curso = curso_aux[1].replace("Curso: ", "")
    else:
        curso_aux = text.split("Ingresso:")
        if len(curso_aux) > 2:
            curso = curso_aux[1].split("\n")[2].replace("Curso: ", "")

    status = checkKPI(aprovacao, reprovacao, semestre, cr, cr_curso,
                      classificacao, semestre_inicial, curso)

    return aprovacao, reprovacao, semestre, cr, cr_curso, classificacao, semestre_inicial, curso, status
Ejemplo n.º 9
0
def getCEFET_port(text):

    # Resultado da extração do texto do arquivo de pdf em análise
    # A partir dos padrões de divulgação de informação nessa string podemos usar
    # a rotina de re.findall(pattern,string) e obter os valores e quantidades de dados desejados

    # O documento de histórico da PUCRIO não traz as informações de cr_curso e nem classificação
    aprovacao = 0
    reprovacao = 0
    semestre = 0
    cr = 0
    cr_curso = 0
    classificacao = ""
    semestre_inicial = ""
    curso = ""

    # Obtenção do número de aprovações dos alunos
    # Padrão: Utilização da sigla 'AP' entre espaços
    aprovacao = len(re.findall(r',\d\d Aprovado\n', text))

    trancamento = len(re.findall(r',\d\d Trancamento de Disciplinas\n', text))

    # Obtenção do número de aprovações dos alunos
    # Padrão: Utilização da sigla 'RM' entre espaços
    reprovacao = len(re.findall(r',\d\d Reprovado\n', text)) + trancamento

    # Para a obtenção do semestre atual devemos fazer uma contagem do numero de semestres distintos
    # Na PUCRIO a informação do semestre vem sempre antes da informação da matéria cursada
    # Buscamos então o padrão de: 5 numeros + espaço + 3 letras + 4 numeros
    semestres = re.findall(r'\nPeríodo Atual: \dº Semestre', text)
    if semestres == []:
        semestres = re.findall(r'\nPeríodo Atual:\n\d\dº Semestre\n', text)
        semestre = int(semestres[0][-13] + semestres[0][-12]) - 1
    else:
        semestre = int(semestres[0][-11]) - 1

    semestre_inicial_list = re.findall(r'\n\dº Semestre de \d\d\d\d\n', text)
    if len(semestre_inicial_list) > 1:
        semestre_inicial = semestre_inicial_list[0][
            -5:-1] + "-0" + semestre_inicial_list[0][-20]
    else:
        semestre_inicial_list = re.findall(r'\n\dº Semes tre de \d\d\d\d\n',
                                           text)
        semestre_inicial = semestre_inicial_list[0][
            -5:-1] + "-0" + semestre_inicial_list[0][-21]

    # Para obtenção do CR pegamos a sequencia padrão do cabeçalho do histórico

    cr_pattern = re.findall(r'\n\d,\d\d\d\d\n', text)
    len_cr = len(cr_pattern)
    if cr_pattern == []:
        cr = 0
    else:
        cr = float(cr_pattern[len_cr - 1].replace(",", "."))
    curso = text.split("CENTRO FED. DE EDUC.")
    curso = curso[1].split("\n")[1].split(" - ")
    len_curso = len(curso)
    curso = curso[len_curso - 1]

    status = checkKPI(aprovacao, reprovacao, semestre, cr, cr_curso,
                      classificacao, semestre_inicial, curso)

    return aprovacao, reprovacao, semestre, cr, cr_curso, classificacao, semestre_inicial, curso, status
Ejemplo n.º 10
0
def getPUCRIO_port(text):

    # O documento de histórico da PUCRIO não traz as informações de cr_curso e nem classificação
    cr_curso = ""
    classificacao = ""
    curso = ""

    # Resultado da extração do texto do arquivo de pdf em análise
    # A partir dos padrões de divulgação de informação nessa string podemos usar
    # a rotina de re.findall(pattern,string) e obter os valores e quantidades de dados desejados

    # Obtenção do número de aprovações dos alunos
    # Padrão: Utilização da sigla 'AP' entre espaços
    aprovacao = len(re.findall(r'\nAP', text))

    # Obtenção do número de aprovações dos alunos
    # Padrão: Utilização da sigla 'RM' entre espaços
    reprovacao = len(re.findall(r'\nRM', text)) + len(re.findall(
        r'\nRF', text))

    # Para a obtenção do semestre atual devemos fazer uma contagem do numero de semestres distintos
    # Na PUCRIO a informação do semestre vem sempre antes da informação da matéria cursada
    # Buscamos então o padrão de: 5 numeros + espaço + 3 letras + 4 numeros
    semestres = re.findall(r'\n\d\d\d\d\d\n\w\w\w\d\d\d\d', text)
    if (len(semestres) > 1):
        lista_semestres = []

        # Retirmos apenas os chars nas posiões de 1 a 6 para termos a descrição do semestre
        for j in semestres:
            lista_semestres.append(j[1:6])

        # Selecionamos apenas os valores distintos
        output = []
        for x in lista_semestres:
            if x not in output:
                output.append(x)

        # Armazenamos a contagem do vetor final na variavel desejada
        semestre = len(output)

        if semestre == 0:
            semestre_inicial = 0
        else:
            # Guardamos a informação do semestre inicial
            semestre_inicial = output[0]
            semestre_inicial = output[0][0:4] + "-0" + output[0][-1:]
    else:
        semestres = re.findall(r'\n\d\n\d\n\d\n\d\n\d\n\d\n\w\w\w', text)
        semestres = [float(x.replace('\n', '')[1:6]) for x in semestres]
        semestre = len(set(semestres))
        semestre_inicial = str(min(semestres))
        semestre_inicial = semestre_inicial[:4] + "-0" + semestre_inicial[4]

    # Para obtenção do CR pegamos a sequencia padrão do cabeçalho do histórico
    cr_pattern = re.findall(r'\n...\n...\n\d\d\d\d\n\d\n\d,\d', text)
    if cr_pattern == []:
        cr_pattern = re.findall(r'\n\d\d\d\d\n\d\n\d,\d', text)
        # Retiramos as informações respectivas nos locais conhecidos da string
        if cr_pattern != []:
            # Obtenção do CR. Descontruimos e reconstruimos o numero com ponto pois no documento ele possui vírgulas
            cr = cr_pattern[0][-3] + "." + cr_pattern[0][-1]
            cr = float(cr)
        else:
            cr_pattern = re.findall(r'\n\d\n\d\n\d\n\d\n\d\n\d\n\d\n', text)
            if (len(cr_pattern) > 0):
                cr = float(cr_pattern[0].replace('\n', '')[-2:]) / 10
            else:
                cr = 0
    else:
        # Retiramos as informações respectivas nos locais conhecidos da string

        # Obtenção do CR. Descontruimos e reconstruimos o numero com ponto pois no documento ele possui vírgulas
        cr = cr_pattern[0][-3] + "." + cr_pattern[0][-1]
        cr = float(cr)

    status = checkKPI(aprovacao, reprovacao, semestre, cr, cr_curso,
                      classificacao, semestre_inicial, curso)

    return aprovacao, reprovacao, semestre, cr, cr_curso, classificacao, semestre_inicial, curso, status
Ejemplo n.º 11
0
def getHistorico(filename):
    col_names = [
        'Nome', 'Universidade', 'Aprovacao', 'Reprovacao', 'Semestre', 'CR',
        'CR Curso', 'Classificacao', 'Semestre Inicial', 'Curso', 'Status',
        'Arquivo'
    ]
    df = pd.DataFrame(columns=col_names)
    file = os.path.basename(filename).split(' - ')
    nome = file[0]
    universidade = file[1]
    if filename.find(" - ") > 0:
        try:
            text = getInfoPDFMiner(filename)
            aprovacao, reprovacao, semestre, cr, cr_curso, classificacao, semestre_inicial, curso, status = getKPI(
                text)
            df2 = pd.DataFrame([[
                nome, universidade, aprovacao, reprovacao, semestre, cr,
                cr_curso, classificacao, semestre_inicial, curso, status,
                os.path.basename(filename)
            ]],
                               columns=col_names)

            if (float(df2['Aprovacao']) + float(df2['Reprovacao'])) <= 2:
                try:
                    text = getInfoPyPDF2(filename)
                    aprovacao, reprovacao, semestre, cr, cr_curso, classificacao, semestre_inicial, curso, status = getKPI(
                        text)
                    df3 = pd.DataFrame([[
                        nome, universidade, aprovacao, reprovacao, semestre,
                        cr, cr_curso, classificacao, semestre_inicial, curso,
                        status,
                        os.path.basename(filename)
                    ]],
                                       columns=col_names)
                    if (float(df3['Aprovacao']) + float(df3['Reprovacao'])) > (
                            float(df2['Aprovacao']) +
                            float(df2['Reprovacao'])):
                        df2 = df3
                except:
                    pass
            df = df.append(df2)

        except:
            try:
                text = getInfoPyPDF2(filename)
                aprovacao, reprovacao, semestre, cr, cr_curso, classificacao, semestre_inicial, curso, status = getKPI(
                    text)
                df3 = pd.DataFrame([[
                    nome, universidade, aprovacao, reprovacao, semestre, cr,
                    cr_curso, classificacao, semestre_inicial, curso, status,
                    os.path.basename(filename)
                ]],
                                   columns=col_names)
                df = df.append(df3)
            except:
                aprovacao = 0
                reprovacao = 0
                semestre = 0
                cr = 0
                cr_curso = 0
                classificacao = ""
                semestre_inicial = ""
                curso = ""

                status = checkKPI(aprovacao, reprovacao, semestre, cr,
                                  cr_curso, classificacao, semestre_inicial,
                                  curso)
                df3 = pd.DataFrame([[
                    nome, universidade, aprovacao, reprovacao, semestre, cr,
                    cr_curso, classificacao, semestre_inicial, curso, status,
                    os.path.basename(filename)
                ]],
                                   columns=col_names)
                df = df.append(df3)
    return (df)
Ejemplo n.º 12
0
def getUFF_port(text):
    aprovacao = 0
    reprovacao = 0
    semestre = 0
    cr = 0
    cr_curso = 0
    classificacao = ""
    semestre_inicial = ""
    curso = ""

    if len(re.findall(r'\dº/\d\d\d\d', text)) >= 1:
        semestre_inicial = re.findall(r'\dº/\d\d\d\d', text)[1][-4:] + "-0" + \
                           re.findall(r'\dº/\d\d\d\d', text)[1][0]

    semestre = len(set(re.findall(r'\dº/\d\d\d\d', text)))
    try:
        cr = re.findall(r'COEFICIENTE DE RENDIMENTO:\n\d\.\d\n',text)
        len_cr = len(cr)
        cr = cr[len_cr -1][-4:-1]
    except:
        cr = text.split("COEFICIENTE DE RENDIMENTO:")
        cr = cr[len(cr) - 1]
        cr = re.findall(r'\d\.\d',cr)
        cr = cr[len(cr)-1]

    qtd_cr = len(re.findall(r'COEFICIENTE DE RENDIMENTO:',text))

    notas = re.findall(r'\d\d\.\d\n', text)
    len_notas_10 = len(notas)
    notas.extend(re.findall(r'\d\.\d\n', text))
    len_notas_dup = len(notas)
    try:
        notas.remove('0.0\n')
    except:
        pass

    if(len(notas) != len_notas_dup - len_notas_10):
        list_aux = ['0.0\n']*(len_notas_dup - len(notas) - len_notas_10)
        notas.extend(list_aux)

    notas = [1 if float(x)>=6 else 0 for x in notas]
    aprovacao = sum(notas)
    reprovacao = len(notas) - aprovacao

    if(float(cr) >=6):
        aprovacao -= qtd_cr
    else:
        reprovacao -= qtd_cr


    curso_aux = text.split("PORTARIA")
    if len(curso_aux) > 1:
        curso_aux2 = curso_aux[1].split("\n")
        if len(curso_aux2) > 1:
            curso = curso_aux2[2]

    cr = float(cr)

    status = checkKPI(aprovacao, reprovacao, semestre, cr, cr_curso, classificacao, semestre_inicial, curso)

    return aprovacao, reprovacao, semestre, cr, cr_curso, classificacao, semestre_inicial, curso, status