Ë
    œpÚjQG  ã            	       óØ  — d Z ddlZddlZddlZddlZddlZddlZddlmZ ddl	m	Z	 ddl
mZmZmZmZ ddlZ ed«      Zej%                  d¬«       d	d
dddddddœZh d£Zh d£Zeez  ZddgZd2dedededefd„Zdee   fd„Zdedefd„Zdeded edefd!„Zd"edefd#„Zd"edefd$„Z d%ede!fd&„Z"d'ed(edefd)„Z#d*edefd+„Z$d*edefd,„Z%d*ed-edefd.„Z&d*edefd/„Z'd0„ Z(e)d1k(  r e(«        yy)3u¯   
Baixa e processa o dump mensal oficial CNPJ da Receita Federal (dados.gov.br)
Filtra: UF=SP, 8 cidades Grande ABC, CNAEs alvo B2B/B2C
Gera base real para prospecÃ§Ã£o LELYON
é    N)ÚPath)Údatetime)ÚListÚDictÚSetÚOptionalz/root/lelyon_prospecting/dataT)Úexist_oku
   SÃ£o Paulou   SÃ£o Bernardo do Campou   Santo AndrÃ©u   SÃ£o Caetano do SulÚDiademau   MauÃ¡u   RibeirÃ£o PireszRio Grande da Serra)Ú3550308Ú3547000Ú3548701Ú3548800Ú3513606Ú3529305Ú3542607Ú3543506>   Ú4789099Ú4791302Ú4791303Ú6201500Ú6201501Ú6201502Ú6202300Ú6202301Ú6203100Ú6204000Ú6209100Ú6311900Ú6312200Ú7020400Ú7311400Ú7319000Ú7319002Ú7319003Ú7319004Ú7319099Ú7320300Ú8211300Ú8299799>'   Ú4711302Ú4712100Ú4721102Ú4722100Ú4723700Ú4730201Ú4741300Ú4742201Ú4744001Ú4744002Ú4751201Ú4752100Ú4753100Ú4754701Ú4755501Ú4761001Ú4762100Ú4763800Ú4771701Ú4772500Ú4781400Ú4782201Ú4783100Ú4784900r   r   r   Ú5611201Ú5611203Ú5612100Ú5620101Ú5630900Ú9601000Ú9602501Ú9602502Ú9603300Ú9609201Ú9609202Ú9609299úBhttps://dadosabertos.rfb.gov.br/CNPJ/DADOS_ABERTOS_CNPJ_202410.zipzhttps://receita.economia.gov.br/orientacao/tributaria/cadastros/cadastro-nacional-de-pessoas-juridicas-cnpj/dados-publicos-cnpjÚurlÚdestÚ
chunk_sizeÚreturnc                 ó:  — 	 t        d| › �«       t        j                  | dd¬«      }|j                  «        t	        |j
                  j                  dd«      «      }d}t        |d«      5 }|j                  |¬«      D ]X  }|sŒ|j                  |«       |t        |«      z  }|dkD  sŒ+||z  d	z  }t        d
|d›d|dz  dz  d›d|dz  dz  d›d�d¬«       ŒZ 	 ddd«       t        «        y# 1 sw Y   ŒxY w# t        $ r}	t        d|	› �«       Y d}	~	yd}	~	ww xY w)zDownload com progresso.u   â¬‡ï¸�  Baixando: Té<   )ÚstreamÚtimeoutzcontent-lengthr   Úwb)rQ   éd   z   Progresso: ú.1fz% (é   ú/ú MB)Ú )ÚendNu   
â�Œ Erro no download: F)ÚprintÚrequestsÚgetÚraise_for_statusÚintÚheadersÚopenÚiter_contentÚwriteÚlenÚ	Exception)
rO   rP   rQ   ÚrespÚtotalÚ
downloadedÚfÚchunkÚpctÚes
             ú+/root/lelyon_prospecting/process_rf_dump.pyÚdownload_filerr   B   s=  € ðÜÐ" 3 %Ð(Ô)Ü�|‰|˜C¨°bÔ9ˆØ×ÑÔä�D—L‘L×$Ñ$Ð%5°qÓ9Ó:ˆØˆ
ä�$˜Óð 	{ Ø×*Ñ*°jÐ*ÓAò {�ÚØ—G‘G˜E”NØ¤# e£*Ñ,�JØ˜q“yØ(¨5Ñ0°3Ñ6˜ÜÐ 0°°S°	¸¸ZÈ¹_ÈTÑ=QÐRUÐ<VÐVWÐX]Ð^bÑXbÐcgÑXgÐhkÐWlÐlpÐqÐwyÖzñ{÷	{ô 	ŒØ÷	{ð 	{ûô ò ÜÐ(¨¨Ð,Ô-Üûðús<   ‚A)C9 Á+C-Â$C-Â)0C-ÃC9 Ã-C6Ã2C9 Ã9	DÄDÄDc                  ó´  — ddg} | D ]¨  }	 t        j                  |d¬«      }|j                  dk(  rddl}|j	                  d|j
                  «      }|D ]Z  }d	|j                  «       v sd
|j                  «       v sŒ(|j                  d«      sddl	m
}  |||«      }t        d|› �«       |c c S  Œª y# t        $ r}t        d|› d|› �«       Y d}~ŒËd}~ww xY w)z+Tenta encontrar a URL do dump mais recente.z%https://dadosabertos.rfb.gov.br/CNPJ/z,https://dadosabertos.rfb.gov.br/dataset/cnpjé   )rV   éÈ   r   Nzhref=["\']([^"\']*\.zip)["\']ÚDADOS_ABERTOS_CNPJÚcnpjÚhttp)Úurljoinu   ðŸ”— Encontrado dump: u   âš ï¸� Erro ao buscar em z: )r`   ra   Ústatus_codeÚreÚfindallÚtextÚupperÚlowerÚ
startswithÚurllib.parsery   r_   ri   )Ú	base_urlsÚbaserj   r{   ÚzipsÚzip_urlry   rp   s           rq   Úfind_latest_dump_urlr†   [   sê   € ð 	0Ø6ð€Ið
 ò ;ˆð	;Ü—<‘< ¨bÔ1ˆDØ×Ñ 3Ò&ãØ—z‘zÐ"BÀDÇIÁIÓN�Ø#ò '�GØ+¨w¯}©}«Ñ>À&ÈGÏMÉMËOÒB[Ø&×1Ñ1°&Ô9Ý<Ù&-¨d°GÓ&<˜GÜÐ 6°w°iÐ@ÔAØ&œð'øð;ð" øô ò 	;ÜÐ-¨d¨V°2°a°SÐ9×:Ñ:ûð	;ús$   ‹A/B3Á;1B3Â/B3Â3	CÂ<CÃCÚzip_pathc                 ó
  — t        d| › �«       g }g }ddddddœ}t        j                  | d«      5 }|j                  «       D �cg c]  }|j	                  d«      sŒ|‘Œ }}t        dt        |«      › �«       |D �]  }d|j                  «       v sd|j                  «       v sŒ)t        d	|› �«       |j                  |«      5 }t        j                  |d
¬«      }t        j                  |d¬«      }	|	D �]”  }
|dxx   dz  cc<   |
j                  dd«      j                  «       j                  «       }|dk7  rŒE|
j                  dd«      j                  «       }|t        vrŒn|
j                  dd«      j                  «       }|r|t        vrŒ™|dxx   dz  cc<   |t         v rdnd}|dk(  r|dxx   dz  cc<   n|dxx   dz  cc<   i dt#        |
j                  dd«      |
j                  dd«      z   |
j                  dd«      z   «      “d|
j                  dd«      j                  «       “d|
j                  dd«      j                  «       “d t        j                  ||«      “d!|
j                  d!d«      j                  «       “d"|“d#|
j                  d$d«      j                  «       “d%t%        |
j                  d&d«      «      “d't'        |
j                  d'd«      «      “d(t)        |
j                  d(d«      «      “d)|
j                  d*d«      j                  «       “d+|“d,|dk(  rd-n
t+        |«      “d.t-        |«      “d/t/        ||«      “d0t1        |«      “d1d“i d2t3        |
j                  d3d«      |
j                  d4d«      «      “d5d“d6d“d7d8“d9d“d:d“d;d“d<d“d=d“d>d?“d@t5        j6                  «       j9                  «       “dAdB|› dCt        j                  |«      › �“dD|
j                  dDd«      “dE|
j                  dF«      dGk(  rdHndI“dJ|
j                  dKd«      “dL|
j                  dMd«      “¥}|dk(  r|j;                  |«       n|j;                  |«       |d   dNz  dk(  s�Œwt        dO|d   › dP|d   › dQ|d   › dR�«       �Œ— 	 dSdSdS«       �Œ t        dT«       t        dU|d   dV›�«       t        dW|d   dV›�«       t        dX|d   dV›dY|d   dV›�«       |||dZœcdSdSdS«       S c c}w # 1 sw Y   �ŒƒxY w# 1 sw Y   ySxY w)[z1Processa o ZIP do dump RF e extrai empresas alvo.u   ðŸ“¦ Processando: r   )rk   ÚmatchedÚb2bÚb2cÚerrorsÚrú.csvz   Arquivos CSV no ZIP: ÚEMPRECSVÚEMPRESAu      ðŸ“„ Processando: zlatin-1©Úencodingú;)Ú	delimiterrk   é   Úufr]   ÚSPÚ	municipioÚcnae_fiscalr‰   ÚB2BÚB2CrŠ   r‹   rw   Úcnpj_basicoÚ
cnpj_ordemÚcnpj_dvÚrazao_socialÚnome_fantasiaÚcidadeÚbairroÚcnaeÚ	cnae_descÚcnae_fiscal_descricaoÚsituacaoÚsituacao_cadastralÚporteÚcapital_socialÚdata_aberturaÚdata_inicio_atividadeÚtipo_prospeccaoÚb2c_categoriaúN/AÚbest_fit_serviceÚ	fit_scoreÚ
lelyon_fitÚemailÚtelefoneÚddd_telefone_1Ú
telefone_1ÚwhatsappÚwebsiteÚwebsite_statusÚpendingÚcontato_nomeÚcontato_cargoÚlinkedinÚ	instagramÚfacebookÚfonte_enriquecimentoÚrf_dumpÚdata_enriquecimentoÚobservacoeszRF Dump Oficial | CNAE: z | Cidade: Únatureza_juridicaÚsimples_nacionalÚopcao_pelo_simplesÚSÚSimu   NÃ£oÚdata_situacaoÚdata_situacao_cadastralÚcnaes_secundariosÚcnae_fiscal_secundariaiè  u         ðŸ“Š Encontradas: z (B2B: z, B2C: ú)Nu   
âœ… Processamento concluÃ­do!z   Total lidas: ú,z   Match SP + Cidades + CNAE: z   B2B: ú | B2C: )rŠ   r‹   Ústats)r_   ÚzipfileÚZipFileÚnamelistÚendswithrh   r~   re   ÚioÚTextIOWrapperÚcsvÚ
DictReaderra   ÚstripÚTARGET_CITIESÚALL_TARGET_CNAESÚ	B2B_CNAESÚformat_cnpjÚmap_situacaoÚ	map_porteÚparse_capitalÚguess_b2c_categoryÚmap_cnae_to_serviceÚcalculate_fit_scoreÚcalculate_lelyon_fitÚformat_phone_rfr   ÚnowÚ	isoformatÚappend)r‡   Úcompanies_b2bÚcompanies_b2crÏ   Úzrm   Ú	csv_filesÚcsv_namer}   ÚreaderÚrowr–   r˜   r£   ÚcategoryÚcompanys                   rq   Úprocess_ziprñ   v   s  € ä	Ð˜x˜jÐ
)Ô*à€MØ€MØ A¨a¸ÀQÑG€Eä	�‰˜ 3Ó	'ð \L¨1à !§
¡
£ÖC˜1°·
±
¸6Õ0B’QÐCˆ	ÐCÜÐ(¬¨Y«Ð(8Ð9Ô:ð "ó O	|ˆHØ˜XŸ^™^Ó-Ñ-°¸h¿n¹nÓ>NÒ1NÜÐ-¨h¨ZÐ8Ô9à—V‘V˜HÓ%ð K|¨ä×+Ñ+¨A¸	ÔB�DÜ Ÿ^™^¨D¸CÔ@�Fà%ó F|˜Ø˜g›¨!Ñ+›ð !ŸW™W T¨2Ó.×4Ñ4Ó6×<Ñ<Ó>˜Ø š:Ø$ð %(§G¡G¨K¸Ó$<×$BÑ$BÓ$D˜	Ø$¬MÑ9Ø$ð  #Ÿw™w }°bÓ9×?Ñ?ÓA˜Ù# tÔ3CÑ'CØ$à˜iÓ(¨AÑ-Ó(ð -1´IÑ,=¡5À5˜Ø# uÒ,Ø! %›L¨AÑ-œLà! %›L¨AÑ-›Lð"#Ø"¤K°·±¸ÀrÓ0JÈSÏWÉWÐUaÐceÓMfÑ0fÐil×ipÑipÐqzÐ|~ÓiÑ0ó  %Að"#à*¨C¯G©G°NÀBÓ,G×,MÑ,MÓ,Oð"#ð ,¨S¯W©W°_ÀbÓ-I×-OÑ-OÓ-Qð"#ð %¤m×&7Ñ&7¸	À9Ó&Mð	"#ð
 % c§g¡g¨h¸Ó&;×&AÑ&AÓ&Cð"#ð # Dð"#ð (¨¯©Ð1HÈ"Ó)M×)SÑ)SÓ)Uð"#ð '¬°S·W±WÐ=QÐSUÓ5VÓ(Wð"#ð $¤Y¨s¯w©w°wÀÓ/CÓ%Dð"#ð -¬m¸C¿G¹GÐDTÐVXÓ<YÓ.Zð"#ð ,¨S¯W©WÐ5LÈbÓ-Q×-WÑ-WÓ-Yð"#ð .¨xð"#ð ,°hÀ%Ò6G©UÔM_Ð`dÓMeð"#ð /Ô0CÀDÓ0Ið"#ð (Ô)<¸TÀ8Ó)Lð"#ð  )Ô*>¸tÓ*Dð!"#ð" $ Rñ#"#ð$ '¬¸¿¹Ð@PÐRTÓ8UÐWZ×W^ÑW^Ð_kÐmoÓWpÓ(qð%"#ð& '¨ð'"#ð( & rð)"#ð* -¨ið+"#ð, +¨Bð-"#ð. ,¨Rð/"#ð0 '¨ð1"#ð2 (¨ð3"#ð4 '¨ð5"#ð6 3°Ið7"#ð8 2´8·<±<³>×3KÑ3KÓ3Mð9"#ð: *Ð-EÀdÀVÈ;ÔWd×WhÑWhÐirÓWsÐVtÐ+uð;"#ð< 0°·±Ð9LÈbÓ1Qð="#ð> /¸¿¹ÐAUÓ9VÐZ]Ò9]±Ðcið?"#ð@ ,¨S¯W©WÐ5NÐPRÓ-SðA"#ðB 0°·±Ð9QÐSUÓ1VñC"#˜ðH $ uÒ,Ø)×0Ñ0°Õ9à)×0Ñ0°Ô9à  Ñ+¨dÑ2°aÔ7Ü!Ð$<¸UÀ9Ñ=MÐ<NÈgÐV[Ð\aÑVbÐUcÐcjÐkpÐqvÑkwÐjxÐxyÐ"zÖ{ñMF|÷K|ñ K|ð	O	|ôb 	Ð/Ô1ÜÐ   w¡°Ð 2Ð3Ô4ÜÐ.¨u°YÑ/?ÀÐ.BÐCÔDÜ�˜˜u™ aÐ(¨°°u±¸aÐ0@ÐAÔBà$¨]ÀUÑK÷y\Lñ \LùâC÷K|ñ K|ú÷\Lð \LúsJ   ±T ÁS.ÁS.ÁAT Â#T ÃN&S3Ñ*!S3ÒAT Ó.T Ó3S=Ó8T Ô T	ÚbasicoÚordemÚdvc                 óp   — | › |› |› �}t        |«      dk(  r|d d › d|dd › d|dd › d|dd › d|dd  › �	S |S )	Né   é   ú.é   é   r[   é   ú-)rh   )rò   ró   rô   rw   s       rq   rÜ   rÜ   Ü   se   € ØˆX�e�W˜R˜DÐ!€DÜ
ˆ4ƒy�B‚Ø�r˜�(�˜1˜T ! A˜Y˜K q¨¨a°¨¨°1°T¸!¸B°Z°LÀÀ$ÀrÀsÀ)ÀÐMÐMØ€Kó    Úcodec                 ón   — ddddddœ}|j                  | j                  «       | j                  «       «      S )NÚAtivaÚBaixadaÚInaptaÚSuspensaÚNula)Ú01Ú02Ú03Ú04Ú08©ra   rØ   ©rþ   Úmapas     rq   rÝ   rÝ   â   s0   € Ø °(À*ÐTZÑ[€DØ�8‰8�D—J‘J“L $§*¡*£,Ó/Ð/rý   c                 ón   — ddddddœ}|j                  | j                  «       | j                  «       «      S )Nu   NÃ£o InformadoÚMEIÚMEÚEPPÚGrande)r  r  r  r  Ú05r
  r  s     rq   rÞ   rÞ   æ   s0   € Ø"¨%°tÀ5ÐPXÑY€DØ�8‰8�D—J‘J“L $§*¡*£,Ó/Ð/rý   Úvalc                 óN   — | sy	 t        | j                  dd«      «      S #  Y yxY w)Ng        rÍ   rø   )ÚfloatÚreplace)r  s    rq   rß   rß   ê   s-   € ÙØðÜ�S—[‘[  cÓ*Ó+Ð+øðÙús   …   $Údddr³   c                 óÞ   — | j                  «       } |j                  «       }| rK|rI|j                  dd«      j                  dd«      }t        |«      dk(  rd| › d|d d › d|dd  › �S d| › d|› �S y)Nrü   r]   ú rú   ú(z) é   )rØ   r  rh   )r  r³   ÚtelÚcleans       rq   rä   rä   ò   s‚   € Ø
�)‰)‹+€CØ
�.‰.Ó
€CÙ
‰sØ—‘˜C Ó$×,Ñ,¨S°"Ó5ˆÜ58¸³ZÀ1²_��3�%�r˜%  ˜)˜ A e¨A¨B i [Ð1Ð\ÈAÈcÈUÐRTÐUZÐT[ÐJ\Ð\Ørý   r£   c                 óF   — ddddddddd	d
dœ
}|j                  | d d d«      S )Nu   Varejo & ComÃ©rciou   AlimentaÃ§Ã£o & Bebidasu   Beleza & EstÃ©ticau   ServiÃ§os Automotivosu   EducaÃ§Ã£o & Treinamentou   SaÃºde & Bem-estarzHospedagem & TurismozArtes & CulturazLazer & Esportesu   ServiÃ§os DomÃ©sticos)
Ú47Ú56Ú96Ú45Ú85Ú86Ú55Ú90Ú93Ú97r÷   ÚOutros©ra   )r£   Ú
categoriass     rq   rà   rà   ú   s@   € à"Ð*CØ"Ð*AØ(Ð0DØ$Ð,=Ø Ð(?ñ€Jð �>‰>˜$˜r ˜( HÓ-Ð-rý   c                 óž   — i dd“dd“dd“dd“dd“dd“d	d“d
d“dd“dd“dd“dd“dd“dd“dd“dd“dd“dddddœ¥}|j                  | d«      S )Nr   úPWA/App Developmentr   r   r   r   õ   Agente IA/AutomaÃ§Ã£or   r   r   r   úLoja WordPress/WooCommercer   r   r    úCRM & Estoque QR-Coder!   úMarketing Digital/Adsr#   r$   r%   r&   õ   SeguranÃ§a + SEO)r'   r(   r)   r   r®   r*  )r£   r  s     rq   rá   rá     s  € ðØÐ(ðØ*3Ð5JðàÐ(ðà*3Ð5Jðð 	Ð*ðð -6Ð7Nðð 	Ð*ð	ð -6Ð7Nð	ð
 	Ð/ðð
 2;Ð<Xðð 	Ð/ðð 2;Ð<Sðð 	Ð*ðð -6Ð7Nðð 	Ð*ðð -6Ð7Nðð 	Ð*ðð 8OØ*Ð7NØ%ò€Dð �8‰8�D˜%Ó Ð rý   rï   c                 óX   — |dk(  rh d£}h d£}| |v ry| |v ryyh d£}h d£}| |v ry	| |v ry
y)Nrš   >
   r   r   r   r   r   r   r   r   r    r!   >
   r   r   r   r   r   r!   r#   r$   r(   r)   éZ   éF   é(   >	   r*   r<   r=   r>   r   rB   rC   rH   rI   >
   r+   r,   r0   r4   r5   r6   r7   r?   r@   rE   éU   rT   é#   © )r£   rï   ÚhighÚmeds       rq   râ   râ     sH   € Ø�5ÒÚ}ˆÚ|ˆØ�4‰< Ø�S‰[ ØârˆÚ|ˆØ�4‰< Ø�S‰[ Ørý   c                 óV  — dddddddœ}i ddddœ“ddd	dœ“d
dddœ“ddddœ“dddddœ“dddddœ“ddddœ“ddddœ“ddddœ“ddddœ“dddi“dddi“d ddi“d!ddi“d"ddd#œ“d$d%di“d&d%di“d	dd'œddd(œdddœdd)dœddd(œddd(œd	dd(œdddœd	dd(œdddœd*œ
¥}|j                  | |«      S )+Nr   )r-  r.  r/  r0  r2  r1  r   é_   éP   )r-  r.  r   r4  éK   r   r7  r5  r   éA   r   rT   )r.  r-  r2  r   é2   )r.  r2  r0  r   )r.  r-  r   )r/  r0  r    )r0  r.  r!   )r1  r-  r#   r1  r$   r%   r&   r'   )r1  r.  r(   r0  r)   )r2  r.  )r/  r1  é7   )
r   r   rB   rC   rH   rI   r>   r<   r=   r*   r*  )r£   ÚfitsÚ	cnae_fitss      rq   rã   rã   "  s·  € Ø#$¸qÐ`aØ%&¸AÐXYñ[€DðØ¨2ÈÑKðà¨2ÈÑKðð 	¨2ÈÑKðð 	¨2ÈÑKð	ð
 	¨RÈÐ`bÑcðð 	¨RÀRÐbdÑeðð 	¨RÈÑKðð 	°"ÈrÑRðð 	¨RÈ"ÑMðð 	¨RÈÑKðð 	Ð+¨RÐ0ðð 3<Ð>UÐWYÐ=Zðð 	Ð+¨RÐ0ðð 3<Ð>UÐWYÐ=Zðð 	¨RÈ"ÑMðð 	Ð+¨RÐ0ðð 3<Ð>UÐWYÐ=Zðð )+ÀRÑHØ24ÈrÑRØ24ÈrÑRØ24ÈrÑRØ24ÈrÑRØ24ÈrÑRØ24ÈrÑRØ24ÈrÑRØ24ÈrÑRØ24ÈrÑRò1€Ið4 �=‰=˜˜tÓ$Ð$rý   c                  ó”  — t        d«       t        d«       t        d«       t        dt        t        j                  «       «      › �«       t        dt	        t
        «      › dt	        t        «      › �«       t        «        t        «       } | st        d«       t        d«       d} t        d	t        j                  «       j                  d
«      › d�z  }|j                  «       s4t        | |«      sYt        d«       t        d| › �«       t        d|› �«       y t        d|› d|j                  «       j                  dz  dz  d›d�«       t!        |«      }t        j                  «       j                  d«      }|d   |d   dœ}t        d|› d�z  }t#        |dd¬«      5 }t$        j'                  ||dd¬«       d d d «       t        d|› d �z  }|d   |d   z   }|rtt        |d!   j)                  «       «      }	t#        |dd"d#¬$«      5 }t+        j,                  ||	¬%«      }
|
j/                  «        |D ]  }|
j1                  |«       Œ 	 d d d «       t        d|› d&�z  }t3        j4                  |d'¬(«      5 }
t3        j6                  |«      }||d)   d*k(     }||d)   d+k(     }|j9                  |
d,d¬-«       |j9                  |
d*d¬-«       |j9                  |
d+d¬-«       t3        j6                  |d.   g«      }|j9                  |
d/d¬-«       d d d «       |d0f|d1f|d2ffD ]I  \  }}t        |z  }|j                  «       r|j;                  «        |j=                  |j>                  «       ŒK t        d3«       t        d4|› �«       t        d5|› �«       t        d6|› �«       t        d7«       y # 1 sw Y   �ŒñxY w# 1 sw Y   �ŒpxY w# 1 sw Y   Œ»xY w)8NzF======================================================================z-DOWNLOAD E PROCESSAMENTO DUMP RF CNPJ OFICIALzCidades alvo: zCNAEs B2B: rÎ   u@   âš ï¸� NÃ£o foi possÃ­vel encontrar URL do dump automaticamente.u+   
ðŸ“¥ Baixando dump conhecido (Out/2024)...rN   Úrf_dump_z%Y%mz.zipu)   â�Œ Falha no download. Tente manualmente:z   wget z   mv arquivo.zip u   âœ… Dump jÃ¡ existe: z (rZ   rY   r\   z%Y%m%d_%H%M%SrŠ   r‹   )rŠ   r‹   Úlelyon_real_rf_z.jsonÚwzutf-8r‘   Fr÷   )Úensure_asciiÚindentrŽ   r   z	utf-8-sigr]   )r’   Únewline)Ú
fieldnamesz.xlsxÚopenpyxl)Úenginer¬   rš   r›   ÚTodos)Ú
sheet_nameÚindexrÏ   ÚEstatisticaszlelyon_real_rf_latest.jsonzlelyon_real_rf_latest.csvzlelyon_real_rf_latest.xlsxu   
ðŸ’¾ Arquivos salvos:u      ðŸ“„ JSON: u      ðŸ“Š CSV:  u      ðŸ“ˆ Excel: u(      ðŸ”— Symlinks: *_latest.* atualizados) r_   ÚlistrÙ   Úvaluesrh   rÛ   Ú	B2C_CNAESr†   ÚDATA_DIRr   rå   ÚstrftimeÚexistsrr   ÚstatÚst_sizerñ   re   ÚjsonÚdumpÚkeysrÖ   Ú
DictWriterÚwriteheaderÚwriterowÚpdÚExcelWriterÚ	DataFrameÚto_excelÚunlinkÚ
symlink_toÚname)Údump_urlr‡   ÚresultÚ	timestampÚcombinedÚ	json_filerm   Úcsv_fileÚall_companiesrL  ÚwriterÚcÚ
excel_fileÚdf_allÚdf_b2bÚdf_b2cÚstats_dfÚsrcÚdst_nameÚdsts                       rq   Úmainry  C  s°  € Ü	ˆ(„OÜ	Ð
9Ô:Ü	ˆ(„OÜ	ˆNœ4¤× 4Ñ 4Ó 6Ó7Ð8Ð
9Ô:Ü	ˆKœœI›Ð' x´´I³Ð/?Ð
@ÔAÜ	„Gô $Ó%€HáÜÐPÔQÜÐ<Ô=ØWˆô ˜H¤X§\¡\£^×%<Ñ%<¸VÓ%DÐ$EÀTÐJÑJ€Hà�?‰?ÔÜ˜X xÔ0ÜÐ=Ô>Ü�H˜X˜JÐ'Ô(ÜÐ& x jÐ1Ô2ØäÐ% h Z¨r°(·-±-³/×2IÑ2IÈ$Ñ2NÈtÑ2SÐTWÐ1XÐX\Ð]Ô^ô ˜Ó"€Fô —‘“×'Ñ'¨Ó8€Ià˜e‘}¨V°E©]Ñ;€Hô ˜_¨Y¨K°uÐ=Ñ=€IÜ	ˆi˜ wÔ	/ð =°1Ü�	‰	�(˜A¨E¸!ˆ	Ô<÷=ô ˜O¨I¨;°dÐ;Ñ;€HØ˜5‘M F¨5¡MÑ1€MÙÜ˜-¨Ñ*×/Ñ/Ó1Ó2ˆ
Ü�(˜C¨+¸rÔBð 	#ÀaÜ—^‘^ A°*Ô=ˆFØ×ÑÔ Ø"ò #�Ø—‘ Õ"ñ#÷	#ô ˜o¨i¨[¸Ð>Ñ>€JÜ	�‰˜
¨:Ô	6ð 
J¸&Ü—‘˜mÓ,ˆØ˜Ð0Ñ1°UÑ:Ñ;ˆØ˜Ð0Ñ1°UÑ:Ñ;ˆà�‰˜¨7¸%ˆÔ@Ø�‰˜¨5¸ˆÔ>Ø�‰˜¨5¸ˆÔ>ä—<‘< ¨¡Ð 1Ó2ˆØ×Ñ˜&¨^À5ÐÔI÷
Jð 
Ð0Ð1Ø	Ð.Ð/Ø	Ð1Ð2ðò !‰ˆˆXô
 ˜Ñ!ˆØ�:‰:Œ<Ø�J‰JŒLØ�‰�s—x‘xÕ ð!ô 
Ð#Ô%Ü	ˆN˜9˜+Ð
&Ô'Ü	ˆN˜8˜*Ð
%Ô&Ü	ˆO˜J˜<Ð
(Ô)Ü	Ð4Õ6÷W=ñ =ú÷	#ñ 	#ú÷
Jð 
Jús&   ÆN$ÈA N1É/BN>Î$N.Î1N;Î>OÚ__main__)i    )*Ú__doc__r`   rÐ   rÖ   rÔ   ÚosÚtimeÚpathlibr   r   Útypingr   r   r   r   Úpandasra  rV  ÚmkdirrÙ   rÛ   rU  rÚ   Ú	DUMP_URLSÚstrrc   Úboolrr   r†   rñ   rÜ   rÝ   rÞ   r  rß   rä   rà   rá   râ   rã   ry  Ú__name__r9  rý   rq   ú<module>r†     sÅ  ðñó Û Û 
Û 	Û 	Û Ý Ý ß ,Ó ,Û ñ Ð/Ó0€Ø ‡�˜€Ô ð Ø'ØØ$ØØØ Ø$ñ	€ò€	ò	€	ð ˜yÑ(Ð ð
 Ið Fð€	ñ�sð  $ð °Cð À4ó ð2˜h s™mó ð6dL˜$ð dL 4ó dLðL˜ð  Cð ¨Sð °Só ð0�sð 0˜só 0ð0�Cð 0˜Có 0ð�sð ˜uó ð˜ð ¨ð °ó ð.˜Sð . Só .ð!˜cð ! có !ð ˜cð ¨Sð °Só ð%˜sð % tó %òBQ7ðf ˆzÒÙ…Fð rý   