histlearn commited on
Commit
163e857
·
verified ·
1 Parent(s): 06fa953

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +17 -18
app.py CHANGED
@@ -599,29 +599,29 @@ def processar_boletim(file) -> Tuple[Optional[str], str]:
599
  try:
600
  if file is None:
601
  return None, "Nenhum arquivo foi fornecido."
602
-
603
  with temp_directory() as temp_dir:
604
  # Salvar arquivo temporário
605
  temp_pdf = os.path.join(temp_dir, 'boletim.pdf')
606
  with open(temp_pdf, 'wb') as f:
607
  f.write(file)
608
-
609
  if os.path.getsize(temp_pdf) == 0:
610
  return None, "O arquivo está vazio."
611
-
612
  # Extrair e processar dados
613
  df = extrair_tabelas_pdf(temp_pdf)
614
  if df is None or df.empty:
615
  return None, "Não foi possível extrair dados do PDF."
616
-
617
  disciplinas_dados = obter_disciplinas_validas(df)
618
  if not disciplinas_dados:
619
  return None, "Nenhuma disciplina válida encontrada no boletim."
620
-
621
  # Separar disciplinas e determinar nível
622
  categorias = separar_disciplinas_por_categoria(disciplinas_dados)
623
  nivel_texto = "Ensino Médio" if categorias['nivel'] == "medio" else "Ensino Fundamental"
624
-
625
  # Gerar gráficos em paralelo
626
  with ThreadPoolExecutor() as executor:
627
  futures = {
@@ -645,11 +645,11 @@ def processar_boletim(file) -> Tuple[Optional[str], str]:
645
  temp_dir
646
  )
647
  }
648
-
649
  grafico_basica = futures['basica'].result()
650
  grafico_diversificada = futures['diversificada'].result()
651
  grafico_medias = futures['medias'].result()
652
-
653
  # Gerar relatório final
654
  pdf_path = gerar_relatorio_pdf(
655
  df,
@@ -658,17 +658,16 @@ def processar_boletim(file) -> Tuple[Optional[str], str]:
658
  grafico_diversificada,
659
  grafico_medias
660
  )
661
-
662
- # Verificar se o PDF foi criado
663
- if not os.path.exists(pdf_path):
 
 
 
 
664
  logger.error("Falha ao gerar o PDF do relatório.")
665
- return None, "Erro ao gerar o relatório em PDF."
666
-
667
- # Preparar arquivo de retorno
668
- output_path = os.path.join(temp_dir, 'relatorio_final.pdf')
669
- shutil.copy2(pdf_path, output_path)
670
- return output_path, "Relatório gerado com sucesso!"
671
-
672
  except Exception as e:
673
  logger.exception("Erro durante o processamento")
674
  return None, f"Erro ao processar o boletim: {str(e)}"
 
599
  try:
600
  if file is None:
601
  return None, "Nenhum arquivo foi fornecido."
602
+
603
  with temp_directory() as temp_dir:
604
  # Salvar arquivo temporário
605
  temp_pdf = os.path.join(temp_dir, 'boletim.pdf')
606
  with open(temp_pdf, 'wb') as f:
607
  f.write(file)
608
+
609
  if os.path.getsize(temp_pdf) == 0:
610
  return None, "O arquivo está vazio."
611
+
612
  # Extrair e processar dados
613
  df = extrair_tabelas_pdf(temp_pdf)
614
  if df is None or df.empty:
615
  return None, "Não foi possível extrair dados do PDF."
616
+
617
  disciplinas_dados = obter_disciplinas_validas(df)
618
  if not disciplinas_dados:
619
  return None, "Nenhuma disciplina válida encontrada no boletim."
620
+
621
  # Separar disciplinas e determinar nível
622
  categorias = separar_disciplinas_por_categoria(disciplinas_dados)
623
  nivel_texto = "Ensino Médio" if categorias['nivel'] == "medio" else "Ensino Fundamental"
624
+
625
  # Gerar gráficos em paralelo
626
  with ThreadPoolExecutor() as executor:
627
  futures = {
 
645
  temp_dir
646
  )
647
  }
648
+
649
  grafico_basica = futures['basica'].result()
650
  grafico_diversificada = futures['diversificada'].result()
651
  grafico_medias = futures['medias'].result()
652
+
653
  # Gerar relatório final
654
  pdf_path = gerar_relatorio_pdf(
655
  df,
 
658
  grafico_diversificada,
659
  grafico_medias
660
  )
661
+
662
+ # Verificar se o arquivo PDF foi criado corretamente
663
+ if pdf_path and os.path.exists(pdf_path):
664
+ output_path = os.path.join(temp_dir, 'relatorio_final.pdf')
665
+ shutil.copy2(pdf_path, output_path)
666
+ return output_path, "Relatório gerado com sucesso!"
667
+ else:
668
  logger.error("Falha ao gerar o PDF do relatório.")
669
+ return None, "Erro ao gerar o relatório PDF final."
670
+
 
 
 
 
 
671
  except Exception as e:
672
  logger.exception("Erro durante o processamento")
673
  return None, f"Erro ao processar o boletim: {str(e)}"