histlearn commited on
Commit
af64483
·
verified ·
1 Parent(s): ad9ab1b

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +15 -10
app.py CHANGED
@@ -648,29 +648,29 @@ def processar_boletim(file) -> Tuple[Optional[str], str]:
648
  try:
649
  if file is None:
650
  return None, "Nenhum arquivo foi fornecido."
651
-
652
  with temp_directory() as temp_dir:
653
  # Salvar arquivo temporário
654
  temp_pdf = os.path.join(temp_dir, 'boletim.pdf')
655
  with open(temp_pdf, 'wb') as f:
656
  f.write(file)
657
-
658
  if os.path.getsize(temp_pdf) == 0:
659
  return None, "O arquivo está vazio."
660
-
661
  # Extrair e processar dados
662
  df = extrair_tabelas_pdf(temp_pdf)
663
  if df is None or df.empty:
664
  return None, "Não foi possível extrair dados do PDF."
665
-
666
  disciplinas_dados = obter_disciplinas_validas(df)
667
  if not disciplinas_dados:
668
  return None, "Nenhuma disciplina válida encontrada no boletim."
669
-
670
  # Separar disciplinas e determinar nível
671
  categorias = separar_disciplinas_por_categoria(disciplinas_dados)
672
  nivel_texto = "Ensino Médio" if categorias['nivel'] == "medio" else "Ensino Fundamental"
673
-
674
  # Gerar gráficos em paralelo
675
  with ThreadPoolExecutor() as executor:
676
  futures = {
@@ -694,11 +694,11 @@ def processar_boletim(file) -> Tuple[Optional[str], str]:
694
  temp_dir
695
  )
696
  }
697
-
698
  grafico_basica = futures['basica'].result()
699
  grafico_diversificada = futures['diversificada'].result()
700
  grafico_medias = futures['medias'].result()
701
-
702
  # Gerar relatório final
703
  pdf_path = gerar_relatorio_pdf(
704
  df,
@@ -707,12 +707,17 @@ def processar_boletim(file) -> Tuple[Optional[str], str]:
707
  grafico_diversificada,
708
  grafico_medias
709
  )
710
-
 
 
 
 
 
711
  # Preparar arquivo de retorno
712
  output_path = os.path.join(temp_dir, 'relatorio_final.pdf')
713
  shutil.copy2(pdf_path, output_path)
714
  return output_path, "Relatório gerado com sucesso!"
715
-
716
  except Exception as e:
717
  logger.exception("Erro durante o processamento")
718
  return None, f"Erro ao processar o boletim: {str(e)}"
 
648
  try:
649
  if file is None:
650
  return None, "Nenhum arquivo foi fornecido."
651
+
652
  with temp_directory() as temp_dir:
653
  # Salvar arquivo temporário
654
  temp_pdf = os.path.join(temp_dir, 'boletim.pdf')
655
  with open(temp_pdf, 'wb') as f:
656
  f.write(file)
657
+
658
  if os.path.getsize(temp_pdf) == 0:
659
  return None, "O arquivo está vazio."
660
+
661
  # Extrair e processar dados
662
  df = extrair_tabelas_pdf(temp_pdf)
663
  if df is None or df.empty:
664
  return None, "Não foi possível extrair dados do PDF."
665
+
666
  disciplinas_dados = obter_disciplinas_validas(df)
667
  if not disciplinas_dados:
668
  return None, "Nenhuma disciplina válida encontrada no boletim."
669
+
670
  # Separar disciplinas e determinar nível
671
  categorias = separar_disciplinas_por_categoria(disciplinas_dados)
672
  nivel_texto = "Ensino Médio" if categorias['nivel'] == "medio" else "Ensino Fundamental"
673
+
674
  # Gerar gráficos em paralelo
675
  with ThreadPoolExecutor() as executor:
676
  futures = {
 
694
  temp_dir
695
  )
696
  }
697
+
698
  grafico_basica = futures['basica'].result()
699
  grafico_diversificada = futures['diversificada'].result()
700
  grafico_medias = futures['medias'].result()
701
+
702
  # Gerar relatório final
703
  pdf_path = gerar_relatorio_pdf(
704
  df,
 
707
  grafico_diversificada,
708
  grafico_medias
709
  )
710
+
711
+ # Verificar se o PDF foi criado
712
+ if not os.path.exists(pdf_path):
713
+ logger.error("Falha ao gerar o PDF do relatório.")
714
+ return None, "Erro ao gerar o relatório em PDF."
715
+
716
  # Preparar arquivo de retorno
717
  output_path = os.path.join(temp_dir, 'relatorio_final.pdf')
718
  shutil.copy2(pdf_path, output_path)
719
  return output_path, "Relatório gerado com sucesso!"
720
+
721
  except Exception as e:
722
  logger.exception("Erro durante o processamento")
723
  return None, f"Erro ao processar o boletim: {str(e)}"