Ë
    u6‚j-  ã                   ó  — d Z ddlZddlZddlZdZd„ Zd„ Zedk(  rÆej                  dd Z	e	s5 e
d«      D � cg c]#  } | j                  «       sŒ| j                  «       ‘Œ% c} Z	d	\  ZZe	D ]h  Zej                  j!                  e«      s ed
ez  «       Œ*	  ee«      \  ZZddlZ ej*                  ed¬«        eerdnd›de›de›�«       eredz  ZŒj  edeefz  «       yyc c} w # e$ rZ ede›de›�«       edz  ZY dZ[ŒœdZ[ww xY w)u@  ä¿®å¤�å™¨ v7ï¼šå¤„ç�† 25 ä¸ªå‰©ä½™ md è¡¨æ ¼è„šæœ¬å�˜ä½“ã€‚
æ¨¡å¼�:
  A) BS children åž‹: if name=='table' / elif el.name=="table" / elif tag.name=='table':
     -> æ›¿æ�¢æ•´å�—ä¸º parts.append(html_table_to_html(X, url_var))
  B) re.finditer æ­£åˆ™åž‹: if elem.group(0).startswith('<table'):
     -> æ›¿æ�¢æ•´å�—ä¸º parts.append(elem.group(0))
  C) æ­»ä»£ç �åž‹: md_rows.append(elem.group(0)) (md_rows æœªåˆ�å§‹åŒ–)
     -> æ”¹ä¸º parts.append(elem.group(0))
  D) ç‹¬ç«‹å‡½æ•°åž‹: html_to_markdown / table_to_markdown å‡½æ•°ä½“ä¿�ç•™ HTML
     -> å‡½æ•°ä½“æ”¹ä¸º return html
é    Nu’  def html_table_to_html(table, base_url=""):
    """ä¿�ç•™ HTML è¡¨æ ¼ç»“æž„ï¼Œä»…å°†ç›¸å¯¹é“¾æŽ¥/å›¾ç‰‡è½¬ç»�å¯¹ URL"""
    from bs4 import BeautifulSoup
    tbl = BeautifulSoup(str(table), 'html.parser')
    for a in tbl.find_all('a'):
        href = a.get('href', '')
        if href and not href.startswith(('http', 'javascript', '#')):
            a['href'] = urllib.parse.urljoin(base_url, href) if base_url else href
    for img in tbl.find_all('img'):
        src = img.get('src', '')
        if src and not src.startswith(('http', '//', 'data:')):
            img['src'] = urllib.parse.urljoin(base_url, src) if base_url else src
    return str(tbl)
c                 óL   ‡— g d¢}|D ]  Št        ˆfd„| D «       «      sŒ‰c S  y)N)Úpage_urlÚ
detail_urlÚ
source_urlÚurlÚbase_urlc              3   óP   •K  — | ]  }t        j                  d ‰z  |«      –— Œ y­w)z\b%s\bN)ÚreÚsearch)Ú.0ÚlnÚcs     €úfixer_v7.pyú	<genexpr>zfind_url_var.<locals>.<genexpr>$   s    øè ø€ Ò<°Œr�y‰y˜ Q™¨×+Ñ<ùs   ƒ#&Ú )Úany)ÚlinesÚcandsr   s     @r   Úfind_url_varr   !   s/   ø€ ÚG€EØò ˆÜÓ<°eÔ<Õ<ØŠHðð ó    c                 óZ
  — t        | dd¬«      j                  «       }|j                  d«      }|d d  }d}d|v }d}g }d}|t        |«      k  �ri||   }	|	j	                  «       }
t        j                  d	|	«      }t        j                  d
|	«      }t        j                  d|	«      }|�r¹|j                  d«      }|dz   }|t        |«      k  �r6||   j	                  «       r]||   j                  |«      �rt        ||   «      t        |«      kD  rô||   t        |«      d  j	                  «       j                  d«      sÆ||   j	                  «       r/||   j                  |dz   «      s||   j                  |dz   «      sn„|dz  }|t        |«      k  rq||   j	                  «       sŒi||   j                  |«      rIt        ||   «      t        |«      kD  r/||   t        |«      d  j	                  «       j                  d«      sŒÆd|	v rdnd|	v rdnd|	v rdnd}t        |«      }|rd|z  nd}|j                  |›d|›d�«       |j                  |›d|›|›d�«       d}|}�Œ"|rê|j                  d«      }|dz   }|t        |«      k  r˜||   j	                  «       r.||   j                  |dz   «      s||   j                  |dz   «      rW|dz  }|t        |«      k  rD||   j	                  «       sŒ'||   j                  |dz   «      rŒ?||   j                  |dz   «      rŒW|j                  d|z  «       |j                  d|z  «       d}|}�Œ|rB|j                  d«      }|j                  d«      }|j                  |›d |›d!�«       d}|dz  }�ŒR|j                  |	«       |dz  }|t        |«      k  r�Œidj                  |«      }|�r>|�s;d"|v �r6t        j                  d#|«      }|�r|j                  |j                  d«      j	                  «       «      }t        j                  d$|t
        j                  «      }|r¯|j                  «       }d%|vr…d&|vr�d}t        j                   d'|t
        j                  «      D ]  }|j#                  «       }Œ |rC|d | d(z   ||d  z   }t        j                  d$|t
        j                  «      }|j                  «       }|d | t$        z   dz   ||d  z   }nt$        dz   |z   }nt$        dz   |z   }||k7  rt        | d)d¬*«      j'                  |«       y+y,)-Nzutf-8Úreplace)ÚencodingÚerrorsú
Fzdef html_table_to_htmlr   éÿÿÿÿzV^(\s*)(?:if|elif)\s+(?:name|el\.name|tag\.name|child\.name)\s*==\s*['\"]table['\"]\s*:z?^(\s*)if\s+elem\.group\(0\)\.startswith\(['\"]<table['\"]\)\s*:z3^(\s*)md_rows\.append\((elem|tag)\.group\(0\)\)\s*$é   ú#ú ú	zel.nameÚelztag.nameÚtagz
child.nameÚchildz, %sr   zif z.name == 'table':z$    parts.append(html_table_to_html(z))Tz(%sif elem.group(0).startswith('<table'):z!%s    parts.append(elem.group(0))é   zparts.append(z
.group(0))zhtml_table_to_html(z\n(def |\nclass )z^def zimport urllib.parsezfrom urllib.parsez^import .*$|^from .* import .*$z
import urllib.parseÚw)r   )TÚchanged)Fz	no-change)ÚopenÚreadÚsplitÚlenÚstripr
   ÚmatchÚgroupÚ
startswithr   ÚappendÚjoinr   ÚfindÚMÚstartÚfinditerÚendÚHTML_TABLE_FNÚwrite)ÚpathÚsrcr   Úorigr&   Úhas_fnÚiÚ	new_linesÚ
skip_untilr   ÚstrippedÚm_aÚm_bÚm_cÚindentÚjÚobjÚurl_varÚurl_argÚvarÚoutÚmÚposÚdef_mÚlast_importÚmms                             r   Úprocess_filerO   (   s§  € Ü
ˆt˜g¨iÔ
8×
=Ñ
=Ó
?€CØ�I‰I�d‹O€EØ‘ˆ8€DØ€GØ%¨Ð,€Fð 	
€AØ€IØ€JØ
Œc�%‹j‹.Ø�1‰XˆØ—8‘8“:ˆä�h‰hÐpÐrtÓuˆä�h‰hÐYÐ[]Ó^ˆä�h‰hÐMÈrÓRˆâØ—Y‘Y˜q“\ˆFà�A‘ˆAØ”c˜%“j“.¨%°©(¯.©.Ô*:¸eÀA¹h×>QÑ>QÐRXÕ>YÔ^aÐbgÐhiÑbjÓ^kÔnqÐrxÓnyÒ^yð  CHð  IJñ  CKô  LOð  PVó  LWð  LXð  CY÷  C_ñ  C_ó  Ca÷  Clñ  Clð  mpô  Cqà˜‘8—>‘>Ô#¨U°1©X×-@Ñ-@ÀÈ#ÁÔ-NÐRWÐXYÑRZ×ReÑReÐflÐosÑfsÔRtØØ�Q‘�ð	 ”c˜%“j’.¨%°©(¯.©.Õ*:¸eÀA¹h×>QÑ>QÐRXÔ>YÔ^aÐbgÐhiÑbjÓ^kÔnqÐrxÓnyÒ^yð  CHð  IJñ  CKô  LOð  PVó  LWð  LXð  CY÷  C_ñ  C_ó  Ca÷  Clñ  Clð  mpõ  Cqð $ r™/‘$¸ÀrÑ9I±Ð[gÐkmÑ[mÑPWÐszˆCÜ" 5Ó)ˆGÙ*1�f˜wÒ&°rˆGØ×Ñº6Â3ÐGÔHØ×ÑÊvÑWZÒ\cÐdÔeØˆGØˆAÙÙØ—Y‘Y˜q“\ˆFà�A‘ˆAØ”c˜%“j’.¨%°©(¯.©.Ô*:¸uÀQ¹x×?RÑ?RÐSYÐ\_ÑS_Ô?`ÐdiÐjkÑdl×dwÑdwÐx~ð  BFñ  yFô  eGØ�Q‘�ð ”c˜%“j’.¨%°©(¯.©.Õ*:¸uÀQ¹x×?RÑ?RÐSYÐ\_ÑS_Õ?`ÐdiÐjkÑdl×dwÑdwÐx~ð  BFñ  yFõ  eGà×ÑÐGÈ&ÑPÔQØ×ÑÐ@À6ÑIÔJØˆGØˆAÙÙØ—Y‘Y˜q“\ˆFØ—)‘)˜A“,ˆCØ×ÑºfÂcÐJÔKØˆGØ�‰FˆAÙà×Ñ˜RÔ Ø�‰FˆAða Œc�%‹jŒ.ðd �)‰)�IÓ
€Cò ’vÐ"7¸3Ò">ä�I‰IÐ*¨CÓ0ˆÚØ—(‘(˜1Ÿ7™7 1›:×+Ñ+Ó-Ó.ˆCä—I‘I˜h¨¬R¯T©TÓ2ˆEÙØ—k‘k“m�à(°Ñ3Ð8KÐSVÑ8Và"#�KÜ Ÿk™kÐ*LÈcÔSU×SWÑSWÓXò /˜Ø&(§f¡f£h™ð/á"Ø! , ;Ð/Ð2IÑIÈCÐP[ÐP\ÐL]Ñ]˜ä "§	¡	¨(°C¼¿¹Ó >˜Ø#Ÿk™k›m˜Ø˜$˜3�i¤-Ñ/°$Ñ6¸¸S¸T¸ÑB‘ä# dÑ*¨SÑ0‘ä $Ñ&¨Ñ,ˆCà
ˆc‚zÜˆT�3 Ô)×/Ñ/°Ô4ØØr   Ú__main__r   z/tmp/real_remnants.txt)r   r   zMISS %sT)ÚdoraisezOK ÚSAMEr   zFAIL z: zchanged=%d fail=%d)Ú__doc__r
   ÚsysÚosr6   r   rO   Ú__name__ÚargvÚfilesr'   r+   ÚokÚfailÚfr8   ÚexistsÚprintÚchÚstÚ
py_compileÚcompileÚ	ExceptionÚe)Úls   0r   ú<module>re      s0  ðñ
ó 
Û 
Û 	ð€ò ò]ð~ ˆzÒØ�H‰H�Q�RˆL€EÙÙ$(Ð)AÓ$BÖP˜qÀaÇgÁgÅi�—‘•ÒPˆØ�H€BˆØò ˆØ�w‰w�~‰~˜aÔ Ù�)˜a‘-Ô Øð
	Ù! !“_‰FˆB�ãØˆJ×Ñ˜q¨$Õ/Ù©¡°Ñ 7º¹QÐ?Ô@ÙØ�a‘�øðñ 
Ð
 " d Ñ
+Õ,ð) ùò Qøð ò 	Ú¢1¡aÐ(Ô)Ø�A‰I�Dûð	ús#   ·C#ÁC#Â>C(Ã(D
Ã-DÄD
