histlearn commited on
Commit
bf44594
·
verified ·
1 Parent(s): 9f42eeb

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +0 -98
app.py CHANGED
@@ -590,104 +590,6 @@ def processar_boletim(file):
590
  try:
591
  print("Iniciando processamento do arquivo...")
592
 
593
- if file is None:
594
- return None, "Nenhum arquivo foi fornecido."
595
-
596
- # Verificar se é realmente um PDF
597
- print(f"Nome do arquivo: {file.name}")
598
- print(f"Tipo do arquivo: {file.type if hasattr(file, 'type') else 'Tipo não disponível'}")
599
-
600
- if not file.name.lower().endswith('.pdf'):
601
- return None, "O arquivo deve ser um PDF."
602
-
603
- temp_dir = tempfile.mkdtemp()
604
- print(f"Diretório temporário criado: {temp_dir}")
605
-
606
- # Verificações mais detalhadas do arquivo
607
- if not hasattr(file, 'name'):
608
- print("Erro: Arquivo não tem atributo 'name'")
609
- return None, "Arquivo inválido: formato não reconhecido."
610
-
611
- if not os.path.exists(file.name):
612
- print(f"Erro: Arquivo não existe no caminho: {file.name}")
613
- return None, "Arquivo não encontrado no sistema."
614
-
615
- if os.path.getsize(file.name) == 0:
616
- print("Erro: Arquivo tem tamanho zero")
617
- return None, "O arquivo está vazio."
618
-
619
- # Copiar arquivo para diretório temporário
620
- temp_pdf = os.path.join(temp_dir, 'boletim.pdf')
621
- try:
622
- shutil.copy2(file.name, temp_pdf)
623
- print(f"Arquivo copiado para: {temp_pdf}")
624
- except Exception as e:
625
- print(f"Erro ao copiar arquivo: {str(e)}")
626
- return None, f"Erro ao processar arquivo: {str(e)}"
627
-
628
- if not os.path.exists(temp_pdf) or os.path.getsize(temp_pdf) == 0:
629
- print("Erro: Arquivo temporário não foi criado corretamente")
630
- return None, "Erro ao copiar o arquivo."
631
-
632
- # Tentar abrir o PDF para verificar se é válido
633
- try:
634
- import PyPDF2
635
- with open(temp_pdf, 'rb') as pdf_file:
636
- pdf_reader = PyPDF2.PdfReader(pdf_file)
637
- if len(pdf_reader.pages) == 0:
638
- return None, "O PDF está vazio ou corrompido."
639
- print(f"PDF válido com {len(pdf_reader.pages)} páginas")
640
- except Exception as e:
641
- print(f"Erro ao validar PDF: {str(e)}")
642
- return None, "O arquivo não é um PDF válido."
643
-
644
- print("Iniciando extração das tabelas...")
645
- try:
646
- df = extrair_tabelas_pdf(temp_pdf)
647
- print("Tabelas extraídas com sucesso")
648
- except Exception as e:
649
- print(f"Erro na extração das tabelas: {str(e)}")
650
- return None, f"Erro ao extrair dados do PDF: {str(e)}"
651
-
652
- if df is None or df.empty:
653
- print("Erro: DataFrame vazio após extração")
654
- return None, "Não foi possível extrair dados do PDF."
655
-
656
- try:
657
- # Processar disciplinas
658
- disciplinas_dados = obter_disciplinas_validas(df)
659
- if not disciplinas_dados:
660
- print("Erro: Nenhuma disciplina válida encontrada")
661
- return None, "Nenhuma disciplina válida encontrada no boletim."
662
-
663
- # Separar disciplinas por categoria
664
- categorias = separar_disciplinas_por_categoria(disciplinas_dados)
665
- nivel = categorias['nivel']
666
- nivel_texto = "Ensino Médio" if nivel == "medio" else "Ensino Fundamental"
667
-
668
- # Gerar gráficos
669
- print("Gerando gráficos...")
670
- grafico_basica = plotar_evolucao_bimestres(
671
- categorias['formacao_basica'],
672
- temp_dir,
673
- titulo=f"Evolução das Médias - Formação Geral Básica ({nivel_texto})",
674
- nome_arquivo='evolucao_basica.png'
675
- )
676
-
677
- grafico_diversificada = plotar_evolucao_bimestres(
678
- categorias['diversificada'],
679
- temp_dir,
680
- titulo=f"Evolução das Médias - Parte Diversificada ({nivel_texto})",
681
- nome_arquivo='evolucao_diversificada.png'
682
- )
683
-
684
- grafico_medias = plotar_graficos_destacados(disciplinas_dados, temp_dir)
685
- def processar_boletim(file):
686
- """Função principal que processa o boletim e gera o relatório."""
687
- temp_dir = None
688
- try:
689
- print("Iniciando processamento do arquivo...")
690
-
691
  if file is None:
692
  return None, "Nenhum arquivo foi fornecido."
693
 
 
590
  try:
591
  print("Iniciando processamento do arquivo...")
592
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
593
  if file is None:
594
  return None, "Nenhum arquivo foi fornecido."
595