DavidSB commited on
Commit
7e068ae
1 Parent(s): 559d75e

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +50 -29
app.py CHANGED
@@ -16,6 +16,7 @@ from docx.enum.text import WD_PARAGRAPH_ALIGNMENT
16
  from docx.shared import Inches
17
  import plotly.io as pio
18
  from pandas.plotting import table
 
19
 
20
  #-----------------#
21
 
@@ -607,14 +608,19 @@ def avaliacao_imovel(planilha, num_linhas_desejadas=3, finalidade='Defina o tipo
607
  Número de dados utilizados: {num} dados
608
  Valor Crítico (Chauvenet): {vc}
609
  Outliers: {dados_outliers} dado(s)
610
- Média saneada: {media} R$/
611
- Valor máximo: {valor_hom_máximo} R$/
612
- Valor mínimo: {valor_hom_mínimo} R$/
613
- Lim superior (Média*1,3): {limite_superior} R$/
614
- Lim inferior (Média*0,7): {limite_inferior} R$/
615
- Desvio padrão: {desvio_padrao} R$/
616
  Coeficiente variação: {coef_variacao} %
617
  """
 
 
 
 
 
618
 
619
  # INTEREVALO DE CONFIANÇA DE 80%
620
  # importando a tabela de t de student
@@ -645,14 +651,18 @@ def avaliacao_imovel(planilha, num_linhas_desejadas=3, finalidade='Defina o tipo
645
  # Crie uma string formatada com o INTEREVALO DE CONFIANÇA DE 80%
646
  intervalo_confiança = f"""
647
  t student: {tc}
648
- Média saneada: {media} R$/
649
- limite infeiror IC_80%: {li_IC} R$/
650
- limite superior IC_80%: {ls_IC} R$/
651
- Aplitude: {A} R$/
652
- Aplitude percentual: {A_perc} %
653
  Grau de Fundamentação {fundamentacao}
654
  Grau de Precisão: {precisao}
655
  """
 
 
 
 
656
 
657
  # VALOR CALCULADO A PARTIR DOS VALORES HOMOGENEIZADOS UTILIZANDO O CRITÉRIO DE CLASSAS D0 ABUNAHMAN
658
  # dividindo a amplitude em 3 classes
@@ -696,20 +706,26 @@ def avaliacao_imovel(planilha, num_linhas_desejadas=3, finalidade='Defina o tipo
696
  area = df_avaliando['Área Construída'].item()
697
  else:
698
  area = df_avaliando['Área Terreno'].item()
 
699
  valores_finais = f"""
700
- Área avaliando: {area} m²
701
  ---------
702
- Valor (média simples): R$ {Valor_imóvel}
703
- LI: R$ {LI}
704
- LS: R$ {LS}
705
- Vu (média simples): R$/m² {media}
706
  ---------
707
- Valor (critério classes): R$ {Valor_imóvel_2}
708
- LI: R$ {LI_classes}
709
- LS: R$ {LS_classes}
710
- Vu (critério classes): R$/m² {media_pond}
711
-
712
  """
 
 
 
 
 
 
713
  #-----------------#
714
 
715
  # criação de strings p/ relatórios (interface/word) dos campos do responsável, introdução, região, diagnóstico e avalaliando.
@@ -731,10 +747,10 @@ def avaliacao_imovel(planilha, num_linhas_desejadas=3, finalidade='Defina o tipo
731
  aval_infos = f"""
732
  Latitude: {df_avaliando['lat'].iloc[0]}
733
  Longitude: {df_avaliando['lon'].iloc[0]}
734
- Atratividade local: {df_avaliando['Atratividade local'].iloc[0]}
735
- Área Construída: {df_avaliando['Área Construída'].iloc[0]}
736
- Área Terreno: {df_avaliando['Área Terreno'].iloc[0]}
737
- Testada: {df_avaliando['Testada'].iloc[0]}
738
  Topografia: {df_avaliando['Topografia'].iloc[0]}
739
  Relevo: {df_avaliando['Relevo'].iloc[0]}
740
  Superfície: {df_avaliando['Superfície'].iloc[0]}
@@ -743,11 +759,11 @@ def avaliacao_imovel(planilha, num_linhas_desejadas=3, finalidade='Defina o tipo
743
  Idade aparente e conservação: {df_avaliando['Idade aparente e conservação'].iloc[0]}
744
  Padrão construtivo: {df_avaliando['Padrão construtivo'].iloc[0]}
745
  Vagas: {df_avaliando['Vagas'].iloc[0]}
746
- Coeficiente extra: {df_avaliando['Coeficiente extra'].iloc[0]}
747
  """
748
  regiao = f"""
749
- Infraestrutura: {infra}
750
- Serviços públicos: {serv}
751
  Uso: {uso}
752
  Padrão predominante na região: {pad_reg}
753
  Tipo de via de acesso: {tipo_via}
@@ -907,6 +923,11 @@ def avaliacao_imovel(planilha, num_linhas_desejadas=3, finalidade='Defina o tipo
907
 
908
  # Definir o título do documento
909
  doc.add_heading('Relatório de Avaliação de Imóvel', level=1)
 
 
 
 
 
910
 
911
  # Definir as seções do relatório
912
  sections = [
@@ -972,7 +993,7 @@ interface = gr.Interface(
972
 
973
  # Características da Região
974
  gr.Textbox(label="Pressupostos, Ressalvas e Fatores Limitantes", value="-"),
975
- gr.Dropdown(["Água Potável", "Energia Elétrica", "Telefone", "Pavimentação", "Esgoto Pluvial",
976
  "Iluminação Pública"], value=["Água Potável"], multiselect=True, label="Infraestrutura Urbana"),
977
  gr.Dropdown(["Coleta de Lixo", "Transporte Coletivo", "Comércio", "Educação", "Saúde"],
978
  value=["Coleta de Lixo"], multiselect=True, label="Serviços Públicos"),
 
16
  from docx.shared import Inches
17
  import plotly.io as pio
18
  from pandas.plotting import table
19
+ #from docx.shared import RGBColor
20
 
21
  #-----------------#
22
 
 
608
  Número de dados utilizados: {num} dados
609
  Valor Crítico (Chauvenet): {vc}
610
  Outliers: {dados_outliers} dado(s)
611
+ Média saneada: R$ {media:,.2f} /
612
+ Valor máximo: R$ {valor_hom_máximo:,.2f} /
613
+ Valor mínimo: R$ {valor_hom_mínimo:,.2f} /
614
+ Lim superior (Média*1,3): R$ {limite_superior:,.2f} /
615
+ Lim inferior (Média*0,7): R$ {limite_inferior:,.2f} /
616
+ Desvio padrão: R$ {desvio_padrao:,.2f} /
617
  Coeficiente variação: {coef_variacao} %
618
  """
619
+ # Substituindo ponto por vírgula
620
+ resultados_formatados = resultados_formatados.replace('.', '@')
621
+ resultados_formatados = resultados_formatados.replace(',', '.')
622
+ resultados_formatados = resultados_formatados.replace('@', ',')
623
+
624
 
625
  # INTEREVALO DE CONFIANÇA DE 80%
626
  # importando a tabela de t de student
 
651
  # Crie uma string formatada com o INTEREVALO DE CONFIANÇA DE 80%
652
  intervalo_confiança = f"""
653
  t student: {tc}
654
+ Média saneada: R$ {media:,.2f} /
655
+ Limite inferior: R$ {li_IC:,.2f} /
656
+ Limite inferior: R$ {ls_IC:,.2f} /
657
+ Amplitude: R$ {A} /
658
+ Amplitude percentual: {A_perc} %
659
  Grau de Fundamentação {fundamentacao}
660
  Grau de Precisão: {precisao}
661
  """
662
+ # Substituindo ponto por vírgula
663
+ intervalo_confiança = intervalo_confiança.replace('.', '@')
664
+ intervalo_confiança = intervalo_confiança.replace(',', '.')
665
+ intervalo_confiança = intervalo_confiança.replace('@', ',')
666
 
667
  # VALOR CALCULADO A PARTIR DOS VALORES HOMOGENEIZADOS UTILIZANDO O CRITÉRIO DE CLASSAS D0 ABUNAHMAN
668
  # dividindo a amplitude em 3 classes
 
706
  area = df_avaliando['Área Construída'].item()
707
  else:
708
  area = df_avaliando['Área Terreno'].item()
709
+
710
  valores_finais = f"""
711
+ Área avaliando: {area:,.2f} m²
712
  ---------
713
+ Valor (média simples): R$ {Valor_imóvel:,.2f}
714
+ LI: R$ {LI:,.2f}
715
+ LS: R$ {LS:,.2f}
716
+ Vu (média simples): R$ {media:,.2f} /m²
717
  ---------
718
+ Valor (critério classes): R$ {Valor_imóvel_2:,.2f}
719
+ LI: R$ {LI_classes:,.2f}
720
+ LS: R$ {LS_classes:,.2f}
721
+ Vu (critério classes): R$ {media_pond:,.2f} /m²
 
722
  """
723
+
724
+ # Substituindo ponto por vírgula
725
+ valores_finais = valores_finais.replace('.', '@')
726
+ valores_finais = valores_finais.replace(',', '.')
727
+ valores_finais = valores_finais.replace('@', ',')
728
+
729
  #-----------------#
730
 
731
  # criação de strings p/ relatórios (interface/word) dos campos do responsável, introdução, região, diagnóstico e avalaliando.
 
747
  aval_infos = f"""
748
  Latitude: {df_avaliando['lat'].iloc[0]}
749
  Longitude: {df_avaliando['lon'].iloc[0]}
750
+ Atratividade local: {str(df_avaliando['Atratividade local'].iloc[0]).replace(".", ",")}
751
+ area_construida = {str(df_avaliando['Área Construída'].iloc[0]).replace(".", ",")}
752
+ area_terreno = {str(df_avaliando['Área Terreno'].iloc[0]).replace(".", ",")}
753
+ testada = {str(df_avaliando['Testada'].iloc[0]).replace(".", ",")} m
754
  Topografia: {df_avaliando['Topografia'].iloc[0]}
755
  Relevo: {df_avaliando['Relevo'].iloc[0]}
756
  Superfície: {df_avaliando['Superfície'].iloc[0]}
 
759
  Idade aparente e conservação: {df_avaliando['Idade aparente e conservação'].iloc[0]}
760
  Padrão construtivo: {df_avaliando['Padrão construtivo'].iloc[0]}
761
  Vagas: {df_avaliando['Vagas'].iloc[0]}
762
+ Coeficiente extra: {str(df_avaliando['Coeficiente extra'].iloc[0]).replace(".", ",")}
763
  """
764
  regiao = f"""
765
+ Infraestrutura: {str(infra).replace("[", "").replace("]", "").replace("'", "")}
766
+ Serviços públicos: {str(serv).replace("[", "").replace("]", "").replace("'", "")}
767
  Uso: {uso}
768
  Padrão predominante na região: {pad_reg}
769
  Tipo de via de acesso: {tipo_via}
 
923
 
924
  # Definir o título do documento
925
  doc.add_heading('Relatório de Avaliação de Imóvel', level=1)
926
+
927
+ # Definir a cor do texto para preto
928
+ #for paragraph in doc.paragraphs:
929
+ #for run in paragraph.runs:
930
+ #run.font.color.rgb = RGBColor(0, 0, 0) # RGB para a cor preta
931
 
932
  # Definir as seções do relatório
933
  sections = [
 
993
 
994
  # Características da Região
995
  gr.Textbox(label="Pressupostos, Ressalvas e Fatores Limitantes", value="-"),
996
+ gr.Dropdown(["Água Potável", "Energia Elétrica", "Telefone", "Pavimentação", "Esgoto Pluvial", "Esgoto Cloacal",
997
  "Iluminação Pública"], value=["Água Potável"], multiselect=True, label="Infraestrutura Urbana"),
998
  gr.Dropdown(["Coleta de Lixo", "Transporte Coletivo", "Comércio", "Educação", "Saúde"],
999
  value=["Coleta de Lixo"], multiselect=True, label="Serviços Públicos"),