+
    NV-jIÞ  ã            	       ó  € ^ RI Ht ^ RIHt ^ RIHtHt ^ RIt^ RIH	t	 ^ RI
t
^ RIt^ RIHt ^ RIt^ RIt^ RIHt ^ RIHu Ht ^ RIt^ RIHtHtHtHtHtHtHtH t H!t! ^ RI"H#t$ ^ R	I%H&t& ]PN                  ! . ROR
7      R 4       t(R t)R t*R t+R t,]PN                  ! ]PZ                  ! R]P\                  ! R4      ]P\                  ! R4      .R7      ]PZ                  ! R]P\                  ! R4      R7      .R
7      R 4       t/ ! R R4      t0R# )é    ©ÚIterator)Úpartial)ÚBytesIOÚStringION)ÚPath)ÚURLError)Úis_platform_windows)	ÚNAÚ	DataFrameÚ
MultiIndexÚSeriesÚ	TimestampÚ
date_rangeÚread_csvÚ	read_htmlÚto_datetime)Úfile_path_to_url)Úparamsc                ó,   € V! RRRV P                   4      # )z6Parametrized fixture for HTML encoding test filenames.ÚioÚdataÚhtml_encoding)Úparam)ÚrequestÚdatapaths   &&Új/Volumes/fast/ai/experiments/ui-tars-smoke/.venv/lib/python3.14/site-packages/pandas/tests/io/test_html.pyÚhtml_encoding_filer   $   s   € ñ �D˜& /°7·=±=ÓAÐAó    c                 óT  € \        V 4      \        V4      8X  g    Q R \        V 4       R\        V4       24       hRp\        \        R V V4      4      pV'       g   Q V4       h\        W4       F8  w  rg\        P
                  ! Wg.VO5/ VB  VP                  '       g   K3  Q R4       h	  R# )z*lists are not of equal size len(list1) == z, len(list2) == z$not all list elements are DataFramesc                 óR   € \        V \        4      ;'       d    \        V\        4      # ©N©Ú
isinstancer   )ÚxÚys   &&r   Ú<lambda>Ú(assert_framelist_equal.<locals>.<lambda>:   s   € œ A¤yÓ1×NÐN´jÀÄIÓ6NÐNr   zframes are both emptyN)ÚlenÚallÚmapÚzipÚtmÚassert_frame_equalÚempty)Úlist1Úlist2ÚargsÚkwargsÚmsgÚboth_framesÚframe_iÚframe_js   &&*,    r   Úassert_framelist_equalr8   1   s°   € Üˆu‹:œ˜U›Ô#ð ð	Ü˜U›˜ð %Ü˜U›˜ð	&óÐ#ð
 1€CÜÜÙNØØó	
ó€K÷ Ð˜Óˆ;Ü Ö-ÑˆÜ
×Ò˜gÐ@°Ò@¸Ò@Ø—=—=’=Ð9Ð"9Ó9Ð ó .r   c           
      ó2  € \         P                  ! R 4      p\         P                  ! R4       V P                  VRR4       \         P                  ! \        RR7      ;_uu_ 4        \        V! RRRR	4      R R
7       RRR4       R#   + '       g   i     R# ; i)Úbs4Úhtml5libÚ__version__z4.2zPandas requires version©Úmatchr   r   Úhtmlú	spam.html©ÚflavorN)ÚpytestÚimportorskipÚsetattrÚraisesÚImportErrorr   )Úmonkeypatchr   r:   s   && r   Útest_bs4_version_failsrI   E   si   € Ü
×
Ò
˜eÓ
$€CÜ
×Ò˜
Ô#à×Ñ˜˜]¨EÔ2Ü	�Š”{Ð*C×	DÖ	DÜ‘(˜4 ¨°Ó=ÀeÕL÷ 
E×	D×	DÒ	Dús   Á$BÂB	c                  óÞ   € R p RpRV,           R,           p\         P                  ! \        VR7      ;_uu_ 4        \        \	        V 4      RVR7       RRR4       R#   + '       g   i     R# ; i)z
google.comzinvalid flavorz\{z \} is not a valid set of flavorsr=   Úgoogle©r>   rB   N)rC   rF   Ú
ValueErrorr   r   )ÚurlrB   r4   s      r   Útest_invalid_flavorrO   N   sK   € Ø
€CØ€FØ
�&�.Ð>Õ
>€Cä	�Š”z¨×	-Ö	-Ü”(˜3“- x¸Õ?÷ 
.×	-×	-Ò	-ús   ¹AÁA,	c                 óò   € \         P                  ! R 4       \         P                  ! R4       \         P                  ! R4       V ! RRRR4      p\        V^ R.R7      p\        V^ R .R7      p\        W#4       R# )	r:   Úlxmlr;   r   r   r?   úvalid_markup.html)Ú	index_colrB   N)rC   rD   r   r8   )r   ÚfilenameÚdfs_lxmlÚdfs_bs4s   &   r   Útest_same_orderingrW   W   se   € Ü
×Ò˜ÔÜ
×Ò˜ÔÜ
×Ò˜
Ô#á˜˜f fÐ.AÓB€HÜ˜¨Q¸°xÔ@€HÜ˜¨A°u°gÔ>€GÜ˜8Ö-r   r:   r;   )ÚmarksrQ   c                 ó8   € \        \        V P                  R 7      # )rA   )r   r   r   )r   s   &r   Úflavor_read_htmlrZ   b   s   € ô ”9 W§]¡]Ô3Ð3r   c            	       ód	  a € ] tR t^lt o R t]P                  R 4       t]P                  R 4       tR t	R t
]P                  P                  ]P                  P                  R 4       4       t]P                  P                  ]P                  P                  R 4       4       t]P                  P                   R 4       tR	 tR
 tR tR tR tR tR tR tR tR tR tR tR tR tR t R t!R t"R t#R t$R t%]P                  P                  ]P                  P                  R 4       4       t&]P                  P                   ]P                  P                  ]P                  P                  R 4       4       4       t']P                  P                   R 4       t(]P                  P                   R  4       t)]P                  P                   R! 4       t*]P                  P                   R" 4       t+]P                  P                   R# 4       t,]P                  P                   R$ 4       t-]P                  P                   R% 4       t.]P                  P                   R& 4       t/]P                  P                   R' 4       t0R( t1]P                  R) 4       t2]P                  P                  ]P                  P                  R* 4       4       t3]P                  P                  ]P                  P                  R+ 4       4       t4R, t5R- t6R. t7R/ t8R0 t9R1 t:]P                  P                   R2 4       t;]P                  P                   R3 4       t<R4 t=R5 t>R6 t?R7 t@R8 tAR9 tBR: tCR; tDR< tER= tFR> tGR? tHR@ tI]P                  P•                  RARBRC.4      RD 4       tKRE tLRF tMRG tNRH tORI tPRJ tQRK tR]P                  P                   RL 4       tSRM tTRN tU]P                  P•                  RORBRP.RQ3RCRR.]V! RP.4      3.4      RS 4       tW]P                  P•                  RTRBRC.4      RU 4       tX]P                  P³                  RV4      RW 4       tZRX t[RY t\]P                  P                   ]P                  P                  RZ 4       4       t]R[ t^R\ t_]P                  P•                  RA. RcO4      R] 4       t`R^ taR_ tbR` tcRa tdRbteV tfRQ# )dÚTestReadHtmlc                óœ   € R p\         P                  ! \        VR7      ;_uu_ 4        V! R4       RRR4       R#   + '       g   i     R# ; i)z$\[Errno 2\] No such file or directorr=   a  <table>
                <thead>
                    <tr>
                        <th>A</th>
                        <th>B</th>
                    </tr>
                </thead>
                <tbody>
                    <tr>
                        <td>1</td>
                        <td>2</td>
                    </tr>
                </tbody>
                <tbody>
                    <tr>
                        <td>3</td>
                        <td>4</td>
                    </tr>
                </tbody>
            </table>N)rC   rF   ÚFileNotFoundError)ÚselfrZ   r4   s   && r   Útest_literal_html_deprecationÚ*TestReadHtml.test_literal_html_deprecationm   s5   € à5ˆä�]Š]Ô,°C×8Ö8Ùðô÷ 9×8×8Ò8ús	   §	:ºA	c                ó   € V! R RRR4      # )r   r   r?   r@   © ©r_   r   s   &&r   Ú	spam_dataÚTestReadHtml.spam_data‰   s   € á˜˜f f¨kÓ:Ð:r   c                ó   € V! R RRR4      # )r   r   r?   úbanklist.htmlrc   rd   s   &&r   Úbanklist_dataÚTestReadHtml.banklist_data�   s   € á˜˜f f¨oÓ>Ð>r   c                ó�  € \        \        P                  P                  ^4      P                  R4      \        P
                  ! \        R4      4      R7      P                  RP                  4      P                  \        4      pVP                  4       pV! \        V4      RR/^ R7      ^ ,          p\        P                  ! WB4       R# )	é   Úabc©Úcolumnsz{:.3f}ÚclassÚ	dataframe)ÚattrsrS   N)é   é   )r   ÚnpÚrandomÚdefault_rngÚpdÚIndexÚlistr+   ÚformatÚastypeÚfloatÚto_htmlr   r-   r.   )r_   rZ   ÚdfÚoutÚress   &&   r   Útest_to_html_compatÚ TestReadHtml.test_to_html_compat‘   s”   € äÜ—	‘	×%Ñ% aÓ(×/Ñ/°Ó7ÜŸš¤ e£Ó-ô÷ ‰S�—‘Ó!ß‰V”E‹]ð 	ð �j‰j‹lˆÙÜ�S‹M '¨;Ð!7À1ô
à
õˆô 	×Ò˜cÖ&r   c                óN  € \        R \        ^\        ^.RR7      R\        . RORR7      R\        R\        R.RR7      R\        . RORR7      R	. ROR. ROR. ROR. RO/4      pVP                  RR7      p\        P
                  ! RV4      ;_uu_ 4        V! \        V4      VR7      ^ ,          pRRR4       VR8X  d<   \        P                  ! R4      p\        P                  ! VP                  4       4      pM\        P                  ! V4      p\        R \        ^\        ^.RR7      R\        . RORR7      R\        R\        R.RR7      R\        . RORR7      R	\        R
R\        .RR7      R\        . RORR7      R\        . ROVR7      R\        . ROVR7      /4      p	VR8X  dM   ^ RIp^ RIHp
 \        V	P                   Uu/ uF"  pWº! VP!                  W›,          R
R7      4      bK$  	  up4      p	\"        P$                  ! XV	RR7       R#   + '       g   i     ELi; iu upi )ÚaÚInt64)ÚdtypeÚbÚcç      ø?ç      @ÚFloat64ÚdÚeTFNÚfÚgÚh©Úindexzmode.string_storage©Údtype_backendÚpyarrowÚboolean)ÚArrowExtensionArray)Úfrom_pandas)Úcheck_column_type)é   rl   rt   )rŠ   g       @r‹   )TFN)TFT©r…   rˆ   r‰   )r…   rˆ   N)r   r   r   r~   rx   Úoption_contextr   rC   rD   Ú
ArrowDtypeÚstringÚStringDtyper–   Úpandas.arraysr˜   ro   Úarrayr-   r.   )r_   Ústring_storager•   rZ   r   r€   ÚresultÚpaÚstring_dtypeÚexpectedr˜   Úcols   &&&&        r   Útest_dtype_backendÚTestReadHtml.test_dtype_backend    sä  € äà”V˜Q¤ A˜J¨gÔ6Ø”VšI¨WÔ5Ø”V˜S¤" c˜N°)Ô<Ø”VšO°9Ô=ØÒ(ØÒ(Ø’_ØÒ%ð	ó
ˆð �j‰j˜uˆjÓ%ˆÜ×ÒÐ4°n×EÕEÙ%¤h¨s£mÀ=ÔQÐRSÕTˆF÷ Fð ˜IÔ%Ü×$Ò$ YÓ/ˆBÜŸ=š=¨¯©«Ó5‰LäŸ>š>¨.Ó9ˆLäà”V˜Q¤ A˜J¨gÔ6Ø”VšI¨WÔ5Ø”V˜S¤" c˜N°)Ô<Ø”VšO°9Ô=Ø”V˜T 5¬"Ð-°YÔ?Ø”VÒ/°yÔAØ”VšO°<Ô@Ø”VÒ,°LÔAð	ó
ˆð ˜IÔ%Û å9ä ð  (×/Ò/óá/˜ð Ð,¨R¯X©X°hµmÐQU¨XÓ-VÓWÒWÙ/ñóˆHô 	×Ò˜f hÀ%×H÷I F×EÐEüò8s   ÂHÇ(H"ÈH	c                ó  € \        VR R7      ;_uu_ 4       pVP                  VP                  4       R7       V! VP                  RR7      pV! VP                  RR7      pRRR4       \	        XX4       R#   + '       g   i     L; i)úutf-8©Úencoding©ÚcontentúFirst Federal Bank of Floridar=   úMetcalf BankN©ÚopenÚserve_contentÚreadrN   r8   )r_   Ú
httpserverri   rZ   r�   Údf1Údf2s   &&&&   r   Útest_banklist_urlÚTestReadHtml.test_banklist_urlÖ   sn   € ô �-¨'×2Õ2°aØ×$Ñ$¨Q¯V©V«XÐ$Ô6Ù"à—‘Ø5ôˆCñ #Ø—‘Ø$ôˆC÷ 3ô 	˜s CÖ(÷ 3×2úó   –A	A5Á5B	c                ó  € \        VR R7      ;_uu_ 4       pVP                  VP                  4       R7       V! VP                  RR7      pV! VP                  RR7      pRRR4       \	        XX4       R#   + '       g   i     L; i)r¬   r­   r¯   ú	.*Water.*r=   ÚUnitNr³   )r_   r·   re   rZ   r�   r¸   r¹   s   &&&&   r   Útest_spam_urlÚTestReadHtml.test_spam_urlè   sd   € ô �) g×.Õ.°!Ø×$Ñ$¨Q¯V©V«XÐ$Ô6Ù" :§>¡>¸ÔEˆCÙ" :§>¡>¸Ô@ˆC÷ /ô
 	˜s CÖ(÷ /×.úr¼   c                óP   € V! VR RR/R7      pV! VRRR/R7      p\        W44       R# )z.*Florida.*ÚidÚtable©r>   rr   r²   N©r8   )r_   ri   rZ   r¸   r¹   s   &&&  r   Útest_banklistÚTestReadHtml.test_banklistò   s8   € áØ °t¸W°oô
ˆñ Ø ¸¸g°ô
ˆô 	˜sÖ(r   c                óÈ   € V! VR R7      pV! VRR7      p\        W44       V^ ,          P                  R,          R8X  g   Q hV^ ,          P                  ^ ,          R8X  g   Q hR# )r¾   r=   r¿   Ú
ProximatesÚNutrientN©r   r   )r8   Úilocro   ©r_   re   rZ   r¸   r¹   s   &&&  r   Ú	test_spamÚTestReadHtml.test_spamý   sX   € Ù˜y°Ô<ˆÙ˜y°Ô7ˆÜ˜sÔ(à�1�v�{‰{˜4Õ  LÔ0Ð0Ð0Ø�1�v�~‰~˜aÕ  JÔ.Ð.Ò.r   c                óX   € V! V4      pV F  p\        V\        4      '       d   K  Q h	  R # r"   r#   )r_   re   rZ   Údfsr   s   &&&  r   Útest_spam_no_matchÚTestReadHtml.test_spam_no_match  s)   € Ù˜yÓ)ˆÛˆBÜ˜b¤)×,Ô,Ð,Ð,ó r   c                ó`   € V! VR R/R7      pV F  p\        V\        4      '       d   K  Q h	  R# )rÃ   rÄ   )rr   Nr#   )r_   ri   rZ   rÒ   r   s   &&&  r   Útest_banklist_no_matchÚ#TestReadHtml.test_banklist_no_match
  s/   € Ù˜}°T¸7°OÔDˆÛˆBÜ˜b¤)×,Ô,Ð,Ð,ó r   c                ó†   € V! VR ^R7      ^ ,          pVP                   ^ ,          R8X  g   Q hVP                  '       d   Q hR# )r¾   ©r>   ÚheaderrÊ   N)ro   r/   )r_   re   rZ   r   s   &&& r   Útest_spam_headerÚTestReadHtml.test_spam_header  s;   € Ù˜i¨{À1ÔEÀaÕHˆØ�z‰z˜!�} Ô,Ð,Ð,Ø—8—8�8Ðˆ|‘8r   c                óH   € V! VR ^R7      pV! VR^R7      p\        W44       R# ©r¾   ©r>   Úskiprowsr¿   NrÆ   rÎ   s   &&&  r   Útest_skiprows_intÚTestReadHtml.test_skiprows_int  ó&   € Ù˜y°ÀaÔHˆÙ˜y°ÀÔCˆä˜sÖ(r   c                ól   € V! VR \        ^4      R7      pV! VR\        ^4      R7      p\        W44       R# rÞ   )Úranger8   rÎ   s   &&&  r   Útest_skiprows_rangeÚ TestReadHtml.test_skiprows_range  ó.   € Ù˜y°ÄeÈAÃhÔOˆÙ˜y°ÄÀqÃÔJˆä˜sÖ(r   c                óP   € V! VR ^^.R7      pV! VR^^.R7      p\        W44       R# rÞ   rÆ   rÎ   s   &&&  r   Útest_skiprows_listÚTestReadHtml.test_skiprows_list   ó.   € Ù˜y°ÀqÈ!ÀfÔMˆÙ˜y°À!ÀQÀÔHˆä˜sÖ(r   c                óP   € V! VR ^^0R7      pV! VR^^0R7      p\        W44       R# rÞ   rÆ   rÎ   s   &&&  r   Útest_skiprows_setÚTestReadHtml.test_skiprows_set&  rì   r   c                óH   € V! VR ^R7      pV! VR^R7      p\        W44       R# rÞ   rÆ   rÎ   s   &&&  r   Útest_skiprows_sliceÚ TestReadHtml.test_skiprows_slice,  rã   r   c                ól   € V! VR \        ^4      R7      pV! VR\        ^4      R7      p\        W44       R# rÞ   ©Úslicer8   rÎ   s   &&&  r   Útest_skiprows_slice_shortÚ&TestReadHtml.test_skiprows_slice_short2  rè   r   c           	     ór   € V! VR \        ^^4      R7      pV! VR\        ^^R4      R7      p\        W44       R# )r¾   rß   r¿   Néÿÿÿÿrô   rÎ   s   &&&  r   Útest_skiprows_slice_longÚ%TestReadHtml.test_skiprows_slice_long8  s4   € Ù˜y°ÄeÈAÈqÃkÔRˆÙ˜y°ÄÀqÈ!ÈRÃÔQˆä˜sÖ(r   c                ó˜   € V! VR \         P                  ! ^4      R7      pV! VR\         P                  ! ^4      R7      p\        W44       R# rÞ   )ru   Úaranger8   rÎ   s   &&&  r   Útest_skiprows_ndarrayÚ"TestReadHtml.test_skiprows_ndarray>  s7   € Ù˜y°ÄbÇiÂiÐPQÃlÔSˆÙ˜y°ÄÇÂÈ1ÃÔNˆä˜sÖ(r   c                óž   € \         P                  ! \        R R7      ;_uu_ 4        V! VRRR7       RRR4       R#   + '       g   i     R# ; i)z%is not a valid type for skipping rowsr=   r¾   Úasdfrß   N)rC   rF   Ú	TypeError)r_   re   rZ   s   &&&r   Útest_skiprows_invalidÚ"TestReadHtml.test_skiprows_invalidD  s0   € Ü�]Š]œ9Ð-T×VÖVÙ˜Y¨kÀFÕK÷ W×V×VÒVús	   ¥;»A	c                óH   € V! VR ^ R7      pV! VR^ R7      p\        W44       R# ©r¾   ©r>   rS   r¿   NrÆ   rÎ   s   &&&  r   Ú
test_indexÚTestReadHtml.test_indexH  s&   € Ù˜y°ÀqÔIˆÙ˜y°À!ÔDˆÜ˜sÖ(r   c                óL   € V! VR ^^ R7      pV! VR^^ R7      p\        W44       R# ©r¾   )r>   rÚ   rS   r¿   NrÆ   rÎ   s   &&&  r   Útest_header_and_index_no_typesÚ+TestReadHtml.test_header_and_index_no_typesM  ó+   € Ù˜y°ÀAÐQRÔSˆÙ˜y°¸qÈAÔNˆÜ˜sÖ(r   c                óL   € V! VR ^^ R7      pV! VR^^ R7      p\        W44       R# r  rÆ   rÎ   s   &&&  r   Ú test_header_and_index_with_typesÚ-TestReadHtml.test_header_and_index_with_typesR  r  r   c                óH   € V! VR ^ R7      pV! VR^ R7      p\        W44       R# r  rÆ   rÎ   s   &&&  r   Útest_infer_typesÚTestReadHtml.test_infer_typesW  s&   € á˜y°ÀqÔIˆÙ˜y°À!ÔDˆÜ˜sÖ(r   c                ól  € \        VR R7      ;_uu_ 4       p\        VP                  4       4      pRRR4       \        VR R7      ;_uu_ 4       p\        VP                  4       4      pRRR4       V! XRR7      pV! XRR7      p\        Wg4       R#   + '       g   i     Lh; i  + '       g   i     LD; i©úUTF-8r­   Nr¾   r=   r¿   )r´   r   r¶   r8   )r_   re   rZ   r�   Údata1Údata2r¸   r¹   s   &&&     r   Útest_string_ioÚTestReadHtml.test_string_io]  s€   € Ü�) g×.Õ.°!Ü˜QŸV™V›XÓ&ˆE÷ /ô �) g×.Õ.°!Ü˜QŸV™V›XÓ&ˆE÷ /ñ ˜u¨KÔ8ˆÙ˜u¨FÔ3ˆÜ˜sÖ(÷ /×.ú÷ /×.ús   –BÁB#ÂB 	Â#B3	c                óê   € \        VR R7      ;_uu_ 4       pVP                  4       pRRR4       V! \        X4      RR7      pV! \        V4      RR7      p\        WV4       R#   + '       g   i     LC; ir  )r´   r¶   r   r8   )r_   re   rZ   r�   r   r¸   r¹   s   &&&    r   Útest_stringÚTestReadHtml.test_stringh  sT   € Ü�) g×.Õ.°!Ø—6‘6“8ˆD÷ /ñ œx¨›~°[ÔAˆÙœx¨›~°VÔ<ˆä˜sÖ(÷ /×.ús   –A"Á"A2	c                ó
  € \        VR R7      ;_uu_ 4       pV! VRR7      pRRR4       \        VR R7      ;_uu_ 4       pV! VRR7      pRRR4       \        XX4       R#   + '       g   i     LF; i  + '       g   i     L1; i)r  r­   r¾   r=   Nr¿   )r´   r8   )r_   re   rZ   r�   r¸   r¹   s   &&&   r   Útest_file_likeÚTestReadHtml.test_file_likeq  sb   € Ü�) g×.Õ.°!Ù" 1¨KÔ8ˆC÷ /ô �) g×.Õ.°!Ù" 1¨FÔ3ˆC÷ /ô 	˜s CÖ(÷ /×.ú÷ /×.ús   –A¾A2ÁA/	Á2B	c                óÂ   € VP                  R RR7       \        P                  ! \        R R7      ;_uu_ 4        V! RRR7       RRR4       R#   + '       g   i     R# ; i)z#urlopen error unknown url type: gité”  ©Úcoder=   zgit://github.comr¾   N)rµ   rC   rF   r	   )r_   r·   rZ   s   &&&r   Útest_bad_url_protocolÚ"TestReadHtml.test_bad_url_protocolz  sE   € ð 	× Ñ Ð!FÈSÐ ÔQÜ�]Š]œ8Ð+P×QÖQÙÐ/°{ÕC÷ R×Q×QÒQús   ¸AÁA	c                óÚ  € VP                  R RR7        \        P                  ! \        \        3RR7      ;_uu_ 4       pV! VP
                  RR7       RRR4       \        XP                  \        4      '       d   VP                  P                  4        R# R#   + '       g   i     LN; i  \        XP                  \        4      '       d   TP                  P                  4        i i ; i)zName or service not knownr#  r$  zHTTP Error 404: NOT FOUNDr=   r¾   N)	rµ   rC   rF   r	   rM   rN   r$   ÚvalueÚclose)r_   r·   rZ   Úerrs   &&& r   Útest_invalid_urlÚTestReadHtml.test_invalid_url�  s«   € ð 	× Ñ Ð!<À3Ð ÔGð		"Ü—’Üœ:Ð&Ð.I÷õ àÙ  §¡°{ÕC÷ô
 ˜#Ÿ)™)¤X×.Ò.ð —	‘	—‘Ö!ñ /÷÷ ûô
 ˜#Ÿ)™)¤X×.Ò.ð —	‘	—‘Õ!ð /ús"   •*B- ¿BÁB- ÂB*	Â%B- Â-=C*c                óâ   € TpV! \        \        P                  P                  V4      4      R RR/R7      p\	        V\
        4      '       g   Q hV F  p\	        V\        4      '       d   K  Q h	  R# )ÚFirstrÃ   rÄ   rÅ   N)r   ÚosÚpathÚabspathr$   rz   r   ©r_   ri   rZ   rN   rÒ   r   s   &&&   r   Útest_file_urlÚTestReadHtml.test_file_url‘  sa   € àˆÙÜœRŸW™WŸ_™_¨SÓ1Ó2¸'È$ÐPWÈô
ˆô ˜#œt×$Ò$Ð$Ð$ÛˆBÜ˜b¤)×,Ô,Ð,Ð,ó r   c                ó¦   € Tp\         P                  ! \        R R7      ;_uu_ 4        V! VRRR/R7       RRR4       R#   + '       g   i     R# ; i)zNo tables foundr=   r±   rÃ   Ú	tasdfablerÅ   N©rC   rF   rM   )r_   ri   rZ   rN   s   &&& r   Útest_invalid_table_attrsÚ%TestReadHtml.test_invalid_table_attrs›  s>   € àˆÜ�]Š]œ:Ð->×?Ö?ÙØÐ:À4ÈÐBUõ÷ @×?×?Ò?úó	   §?¿A	c                óx   € V! VR RR/^ ^.R7      ^ ,          p\        VP                  \        4      '       g   Q hR# )ÚMetcalfrÃ   rÄ   )r>   rr   rÚ   N©r$   ro   r   ©r_   ri   rZ   r   s   &&& r   Útest_multiindex_headerÚ#TestReadHtml.test_multiindex_header£  s>   € áØ °4¸°/È1ÈaÈ&ô
à
õˆô ˜"Ÿ*™*¤j×1Ò1Ð1Ò1r   c                óx   € V! VR RR/^ ^.R7      ^ ,          p\        VP                  \        4      '       g   Q hR# )r=  rÃ   rÄ   )r>   rr   rS   N)r$   r“   r   r?  s   &&& r   Útest_multiindex_indexÚ"TestReadHtml.test_multiindex_indexª  s?   € áØ °4¸°/ÈaÐQRÈVô
à
õˆô ˜"Ÿ(™(¤J×/Ò/Ð/Ò/r   c                óÂ   € V! VR RR/^ ^.^ ^.R7      ^ ,          p\        VP                  \        4      '       g   Q h\        VP                  \        4      '       g   Q hR# )r=  rÃ   rÄ   )r>   rr   rÚ   rS   N)r$   ro   r   r“   r?  s   &&& r   Útest_multiindex_header_indexÚ)TestReadHtml.test_multiindex_header_index±  sa   € áØØØ˜�/Ø�q�6Ø˜!�fô
ð õˆô ˜"Ÿ*™*¤j×1Ò1Ð1Ð1Ü˜"Ÿ(™(¤J×/Ò/Ð/Ò/r   c                óz   € V! VR RR/^ ^.^R7      ^ ,          p\        VP                  \        4      '       g   Q hR# ©r=  rÃ   rÄ   )r>   rr   rÚ   rà   Nr>  r?  s   &&& r   Ú&test_multiindex_header_skiprows_tuplesÚ3TestReadHtml.test_multiindex_header_skiprows_tuples½  óF   € áØØØ˜�/Ø�q�6Øô
ð õˆô ˜"Ÿ*™*¤j×1Ò1Ð1Ò1r   c                óz   € V! VR RR/^ ^.^R7      ^ ,          p\        VP                  \        4      '       g   Q hR# rI  r>  r?  s   &&& r   Útest_multiindex_header_skiprowsÚ,TestReadHtml.test_multiindex_header_skiprowsÈ  rL  r   c           	     óÄ   € V! VR RR/^ ^.^ ^.^R7      ^ ,          p\        VP                  \        4      '       g   Q h\        VP                  \        4      '       g   Q hR# )r=  rÃ   rÄ   )r>   rr   rÚ   rS   rà   N)r$   r“   r   ro   r?  s   &&& r   Ú%test_multiindex_header_index_skiprowsÚ2TestReadHtml.test_multiindex_header_index_skiprowsÓ  sd   € áØØØ˜�/Ø�q�6Ø˜!�fØô
ð õˆô ˜"Ÿ(™(¤J×/Ò/Ð/Ð/Ü˜"Ÿ*™*¤j×1Ò1Ð1Ò1r   c                ó2  € TpV! \        \        P                  P                  V4      4      \        P
                  ! \        P
                  ! R 4      4      RR/R7      p\        V\        4      '       g   Q hV F  p\        V\        4      '       d   K  Q h	  R# )ÚFloridarÃ   rÄ   rÅ   N)	r   r0  r1  r2  ÚreÚcompiler$   rz   r   r3  s   &&&   r   Útest_regex_idempotencyÚ#TestReadHtml.test_regex_idempotencyà  st   € àˆÙÜœRŸW™WŸ_™_¨SÓ1Ó2Ü—*’*œRŸZšZ¨	Ó2Ó3Ø˜�/ô
ˆô
 ˜#œt×$Ò$Ð$Ð$ÛˆBÜ˜b¤)×,Ô,Ð,Ð,ó r   c                ó¢   € R p\         P                  ! \        VR7      ;_uu_ 4        V! VRRR7       RRR4       R#   + '       g   i     R# ; i)z\(you passed a negative value\)r=   ÚWaterrß   Nrù   r8  )r_   re   rZ   r4   s   &&& r   Útest_negative_skiprowsÚ#TestReadHtml.test_negative_skiprowsì  s3   € Ø0ˆÜ�]Š]œ:¨S×1Ö1Ù˜Y¨gÀÕC÷ 2×1×1Ò1ús	   §=½A	c                ó   € R # )af  
          <table class="contentstable" align="center"><tr>
            <td width="50%">
            <p class="biglink"><a class="biglink" href="whatsnew/2.7.html">What's new in Python 2.7?</a><br/>
                <span class="linkdescr">or <a href="whatsnew/index.html">all "What's new" documents</a> since 2.0</span></p>
            <p class="biglink"><a class="biglink" href="tutorial/index.html">Tutorial</a><br/>
                <span class="linkdescr">start here</span></p>
            <p class="biglink"><a class="biglink" href="library/index.html">Library Reference</a><br/>
                <span class="linkdescr">keep this under your pillow</span></p>
            <p class="biglink"><a class="biglink" href="reference/index.html">Language Reference</a><br/>
                <span class="linkdescr">describes syntax and language elements</span></p>
            <p class="biglink"><a class="biglink" href="using/index.html">Python Setup and Usage</a><br/>
                <span class="linkdescr">how to use Python on different platforms</span></p>
            <p class="biglink"><a class="biglink" href="howto/index.html">Python HOWTOs</a><br/>
                <span class="linkdescr">in-depth documents on specific topics</span></p>
            </td><td width="50%">
            <p class="biglink"><a class="biglink" href="installing/index.html">Installing Python Modules</a><br/>
                <span class="linkdescr">installing from the Python Package Index &amp; other sources</span></p>
            <p class="biglink"><a class="biglink" href="distributing/index.html">Distributing Python Modules</a><br/>
                <span class="linkdescr">publishing modules for installation by others</span></p>
            <p class="biglink"><a class="biglink" href="extending/index.html">Extending and Embedding</a><br/>
                <span class="linkdescr">tutorial for C/C++ programmers</span></p>
            <p class="biglink"><a class="biglink" href="c-api/index.html">Python/C API</a><br/>
                <span class="linkdescr">reference for C/C++ programmers</span></p>
            <p class="biglink"><a class="biglink" href="faq/index.html">FAQs</a><br/>
                <span class="linkdescr">frequently asked questions (with answers!)</span></p>
            </td></tr>
        </table>

        <p><strong>Indices and tables:</strong></p>
        <table class="contentstable" align="center"><tr>
            <td width="50%">
            <p class="biglink"><a class="biglink" href="py-modindex.html">Python Global Module Index</a><br/>
                <span class="linkdescr">quick access to all modules</span></p>
            <p class="biglink"><a class="biglink" href="genindex.html">General Index</a><br/>
                <span class="linkdescr">all functions, classes, terms</span></p>
            <p class="biglink"><a class="biglink" href="glossary.html">Glossary</a><br/>
                <span class="linkdescr">the most important terms explained</span></p>
            </td><td width="50%">
            <p class="biglink"><a class="biglink" href="search.html">Search page</a><br/>
                <span class="linkdescr">search this documentation</span></p>
            <p class="biglink"><a class="biglink" href="contents.html">Complete Table of Contents</a><br/>
                <span class="linkdescr">lists all sections and subsections</span></p>
            </td></tr>
        </table>
        rc   ©r_   s   &r   Úpython_docsÚTestReadHtml.python_docsñ  s   € ñ-r   c                óv   € VP                  VR 7       V! VP                  RR7      p\        V4      ^8”  g   Q hR# )r¯   ÚPythonr=   N)rµ   rN   r)   )r_   r_  r·   rZ   rÒ   s   &&&& r   Útest_multiple_matchesÚ"TestReadHtml.test_multiple_matches"  s5   € ð 	× Ñ ¨Ð Ô5Ù˜zŸ~™~°XÔ>ˆÜ�3‹x˜!Œ|ÐŠ|r   c                óÔ   € VP                  VR 7       V! VP                  RR7      pV Uu. uF  qUP                  R,          R,          NK  	  pp\        V4      RR.8X  g   Q hR# u upi )r¯   rb  r=   :r   rs   NÚPythÚWhatNrÌ   )rµ   rN   rÍ   Úsorted)r_   r_  r·   rZ   rÒ   r   Úzzs   &&&&   r   Útest_python_docs_tableÚ#TestReadHtml.test_python_docs_table)  sc   € ð 	× Ñ ¨Ð Ô5Ù˜zŸ~™~°XÔ>ˆÙ+.Ó/©3 R�g‰g�d�m˜C× Ð ©3ˆÐ/Ü�b‹z˜f fÐ-Ô-Ð-Ò-ùò 0s   «"A%c                óP   € RpV! \        V4      4      p\        V4      ^8X  g   Q hR# )z0
Make sure that read_html ignores empty tables.
aà  
            <table>
                <thead>
                    <tr>
                        <th>A</th>
                        <th>B</th>
                    </tr>
                </thead>
                <tbody>
                    <tr>
                        <td>1</td>
                        <td>2</td>
                    </tr>
                </tbody>
            </table>
            <table>
                <tbody>
                </tbody>
            </table>
        N)r   r)   )r_   rZ   r?   r¤   s   &&  r   Útest_empty_tablesÚTestReadHtml.test_empty_tables1  s+   € ðˆñ( "¤(¨4£.Ó1ˆÜ�6‹{˜aÔÐÒr   c                óŒ   € V! \        R 4      4      ^ ,          p\        ^^.^^..RR.R7      p\        P                  ! W#4       R# )aÎ  <table>
            <thead>
                <tr>
                    <th>A</th>
                    <th>B</th>
                </tr>
            </thead>
            <tbody>
                <tr>
                    <td>1</td>
                    <td>2</td>
                </tr>
            </tbody>
            <tbody>
                <tr>
                    <td>3</td>
                    <td>4</td>
                </tr>
            </tbody>
        </table>ÚAÚB©r   ro   N©r   r   r-   r.   ©r_   rZ   r¤   r§   s   &&  r   Útest_multiple_tbodyÚ TestReadHtml.test_multiple_tbodyL  sR   € ñ "Üðóó
ð. õ/ˆô2  A q 6¨A¨q¨6Ð"2¸SÀ#¸JÔGˆä
×Ò˜fÖ/r   c                ó‚   € V! \        R4      4      ^ ,          p\        RR/^ .R7      p\        P                  ! W#4       R# )z\
Don't fail with bs4 when there is a header and only one column
as described in issue #9178
a3  <table>
                <thead>
                    <tr>
                        <th>Header</th>
                    </tr>
                </thead>
                <tbody>
                    <tr>
                        <td>first</td>
                    </tr>
                </tbody>
            </table>ÚHeaderÚfirst©r   r“   Nrs  rt  s   &&  r   Útest_header_and_one_columnÚ'TestReadHtml.test_header_and_one_columnl  sH   € ñ
 "Üðóó
ð õˆô"  8¨WÐ"5¸a¸SÔAˆä
×Ò˜fÖ/r   c                ó†   € V! \        R4      4      ^ ,          p\        . RO.. ROR7      p\        P                  ! W#4       R# )z;
Ensure parser adds <tr> within <thead> on malformed HTML.
aœ  <table>
            <thead>
                <tr>
                    <th>Country</th>
                    <th>Municipality</th>
                    <th>Year</th>
                </tr>
            </thead>
            <tbody>
                <tr>
                    <td>Ukraine</td>
                    <th>Odessa</th>
                    <td>1944</td>
                </tr>
            </tbody>
        </table>rr  N)ÚUkraineÚOdessaé˜  )ÚCountryÚMunicipalityÚYearrs  rt  s   &&  r   Útest_thead_without_trÚ"TestReadHtml.test_thead_without_tr†  sJ   € ñ "Üðóó
ð& õ'ˆô* Ú-Ð.Ú7ô
ˆô
 	×Ò˜fÖ/r   c                óX  € Rp\        RR..RR.R7      p\        RR.RR..RR.R7      pVP                  R	R
7      pVP                  RR
7      pV! \        V4      4      ^ ,          pV! \        V4      4      ^ ,          p\        P                  ! Ws4       \        P                  ! W„4       R# )zP
Make sure that read_html reads tfoot, containing td or th.
Ignores empty tfoot
a†  <table>
            <thead>
                <tr>
                    <th>A</th>
                    <th>B</th>
                </tr>
            </thead>
            <tbody>
                <tr>
                    <td>bodyA</td>
                    <td>bodyB</td>
                </tr>
            </tbody>
            <tfoot>
                {footer}
            </tfoot>
        </table>ÚbodyAÚbodyBrp  rq  rr  ÚfootAÚfootBÚ )Úfooterz%<tr><td>footA</td><th>footB</th></tr>N)r   r{   r   r-   r.   )	r_   rZ   Údata_templateÚ	expected1Ú	expected2r  r  Úresult1Úresult2s	   &&       r   Útest_tfoot_readÚTestReadHtml.test_tfoot_read¦  s°   € ð
ˆô$  W¨gÐ$6Ð#7À#ÀsÀÔLˆ	äØ˜GÐ$ w°Ð&8Ð9ÀCÈÀ:ô
ˆ	ð ×$Ñ$¨BÐ$Ó/ˆØ×$Ñ$Ð,SÐ$ÓTˆá"¤8¨E£?Ó3°AÕ6ˆÙ"¤8¨E£?Ó3°AÕ6ˆä
×Ò˜gÔ1Ü
×Ò˜gÖ1r   c                ó†   € V! \        R 4      ^ R7      ^ ,          p\        RR..RR7      p\        P                  ! W#4       R# )a
  
            <table>
                <tr>
                    <td>S</td>
                    <td>I</td>
                </tr>
                <tr>
                    <td>text</td>
                    <td>1944</td>
                </tr>
            </table>
        ©rÚ   Útextr€  rn   N)ÚSÚIrs  rt  s   &&  r   Ú&test_parse_header_of_non_string_columnÚ3TestReadHtml.test_parse_header_of_non_string_columnÌ  sM   € ñ "Üðóð ô
ð  õ!ˆô$ ˜v t˜nÐ-°zÔBˆä
×Ò˜fÖ/r   c                ó8  a€ ^ RI Ho V3R lpV! VRRR/R7      ^ ,          p\        V! RRR	R
4      R\        R\        /R7      pVP                  \        V4      VP                  ^,          38X  g   Q h. ROp. ROpVP                  V4      P                  Wx4      p	VP                  V4      p
T	pRR.pW¼,          P                  \        4      W¼&   WªR,          P                  VR,          4      ,          P                  RR7      p
\        P                  ! Wº4       R# )r   )Ú_remove_whitespacec                 ó<   <€  S! V 4      #   \          d    T u # i ; ir"   )ÚAttributeError)r%   rœ  s   &€r   Útry_remove_wsÚ8TestReadHtml.test_banklist_header.<locals>.try_remove_wsé  s'   ø€ ðÙ)¨!Ó,Ð,øÜ!ô Ø’ðús   ƒ ‹šr=  rÃ   rÄ   rÅ   r   r   Úcsvzbanklist.csvzUpdated DatezClosing Date©Ú
convertersz	Bank NameT)ÚdropN)
z,First Vietnamese American Bank In Vietnamesez"Westernbank Puerto Rico En Espanolz*R-G Premier Bank of Puerto Rico En EspanolzEurobank En EspanolzSanderson State Bank En EspanolzLWashington Mutual Bank (Including its subsidiary Washington Mutual Bank FSB)zSilver State Bank En Espanolz%AmTrade International Bank En EspanolzHamilton Bank, NA En Espanolz6The Citizens Savings Bank Pioneer Community Bank, Inc.)
zFirst Vietnamese American BankzWesternbank Puerto RicozR-G Premier Bank of Puerto RicoÚEurobankzSanderson State BankzWashington Mutual BankzSilver State BankzAmTrade International BankzHamilton Bank, NAzThe Citizens Savings Bank)Úpandas.io.htmlrœ  r   r   Úshaper)   r+   ÚreplaceÚapplyr   ÚisinÚreset_indexr-   r.   )r_   ri   r   rZ   rŸ  r   Úground_truthÚoldÚnewÚdfnewÚgtnewÚ	convertedÚ	date_colsrœ  s   &&&&         @r   Útest_banklist_headerÚ!TestReadHtml.test_banklist_headerå  s  ø€ å5õ	ñ ˜m°9ÀTÈ7ÀOÔTÐUVÕWˆÜÙ�T˜6 5¨.Ó9Ø&¬	°>Ä9ÐMô
ˆð
 �x‰xœC ›G \×%7Ñ%7¸Õ%:Ð;Ô;Ð;Ð;ò
ˆò
ˆð —‘�}Ó%×-Ñ-¨cÓ7ˆØ× Ñ  Ó/ˆØˆ	Ø# ^Ð4ˆ	Ø(Õ3×9Ñ9¼+ÓFˆ	ÑØ˜KÕ(×-Ñ-¨i¸Õ.DÓEÕF×RÑRØð Só 
ˆô 	×Ò˜iÖ/r   c                óð   € R p\        VRR7      ;_uu_ 4       pVP                  4       pRRR4       VX9   g   Q hV! WRR/R7      ^ ,          pW6P                  4       9   g   Q hR#   + '       g   i     LD; i)zHeartland Bankr¬   r­   NrÃ   rÄ   rÅ   )r´   r¶   Ú	to_string)r_   ri   rZ   Úgcr�   Úraw_textr   s   &&&    r   Útest_heartland_bankÚ TestReadHtml.test_heartland_bank  sd   € àˆÜ�-¨'×2Õ2°aØ—v‘v“xˆH÷ 3ð �XŒ~Ðˆ~Ù˜m¸dÀG¸_ÔMÈaÕPˆØ—\‘\“^Ô#Ð#Ò#÷ 3×2ús   ˜A%Á%A5	c                óš   € V! \        R 4      ^ R7      ^ ,          pV! \        R4      ^ R7      ^ ,          p\        P                  ! W24       R# )a�  <table>
                        <thead>
                            <tr style="text-align: right;">
                            <th></th>
                            <th>C_l0_g0</th>
                            <th>C_l0_g1</th>
                            <th>C_l0_g2</th>
                            <th>C_l0_g3</th>
                            <th>C_l0_g4</th>
                            </tr>
                        </thead>
                        <tbody>
                            <tr>
                            <th>R_l0_g0</th>
                            <td> 0.763</td>
                            <td> 0.233</td>
                            <td> nan</td>
                            <td> nan</td>
                            <td> nan</td>
                            </tr>
                            <tr>
                            <th>R_l0_g1</th>
                            <td> 0.244</td>
                            <td> 0.285</td>
                            <td> 0.392</td>
                            <td> 0.137</td>
                            <td> 0.222</td>
                            </tr>
                        </tbody>
                    </table>©rS   a¸  <table>
                    <thead>
                        <tr style="text-align: right;">
                        <th></th>
                        <th>C_l0_g0</th>
                        <th>C_l0_g1</th>
                        <th>C_l0_g2</th>
                        <th>C_l0_g3</th>
                        <th>C_l0_g4</th>
                        </tr>
                    </thead>
                    <tbody>
                        <tr>
                        <th>R_l0_g0</th>
                        <td> 0.763</td>
                        <td> 0.233</td>
                        </tr>
                        <tr>
                        <th>R_l0_g1</th>
                        <td> 0.244</td>
                        <td> 0.285</td>
                        <td> 0.392</td>
                        <td> 0.137</td>
                        <td> 0.222</td>
                        </tr>
                    </tbody>
                 </table>N)r   r-   r.   )r_   rZ   r§   r¤   s   &&  r   Útest_different_number_of_colsÚ*TestReadHtml.test_different_number_of_cols#  sf   € Ù#Üð óð@ ôC"
ðD õE"ˆñH "Üðóð: ô=
ð> õ?ˆôB 	×Ò˜fÖ/r   c                ó†   € V! \        R 4      4      ^ ,          p\        . RO.. ROR7      p\        P                  ! W#4       R# )aZ  
            <table>
                <tr>
                    <th>A</th>
                    <th colspan="1">B</th>
                    <th rowspan="1">C</th>
                </tr>
                <tr>
                    <td>a</td>
                    <td>b</td>
                    <td>c</td>
                </tr>
            </table>
        rn   Nrœ   )rp  rq  ÚCrs  rt  s   &&  r   Útest_colspan_rowspan_1Ú#TestReadHtml.test_colspan_rowspan_1k  sB   € á!Üðóó
ð" õ#ˆô& šoÐ.ºÔHˆä
×Ò˜fÖ/r   c                óŠ   € V! \        R 4      ^ R7      ^ ,          p\        . RO.. ROR7      p\        P                  ! W#4       R# )a…  
            <table>
                <tr>
                    <td colspan="2">X</td>
                    <td>Y</td>
                    <td rowspan="2">Z</td>
                    <td>W</td>
                </tr>
                <tr>
                    <td>A</td>
                    <td colspan="2">B</td>
                    <td>C</td>
                </tr>
            </table>
        r•  rr  N)rp  rq  rq  ÚZrÀ  )ÚXzX.1ÚYrÄ  ÚWrs  rt  s   &&  r   Ú test_colspan_rowspan_copy_valuesÚ-TestReadHtml.test_colspan_rowspan_copy_values„  sO   € ñ "Üðóð" ô%
ð& õ'ˆô* Ú+Ð,Ò6Qô
ˆô 	×Ò˜fÖ/r   c                óŠ   € V! \        R 4      ^ R7      ^ ,          p\        . RO.. ROR7      p\        P                  ! W#4       R# )a(  
            <table>
                <tr>
                    <td rowspan="2">A</td>
                    <td rowspan="2" colspan="3">B</td>
                    <td>C</td>
                </tr>
                <tr>
                    <td>D</td>
                </tr>
            </table>
        r•  rr  N)rp  rq  rq  rq  ÚD)rp  rq  zB.1zB.2rÀ  rs  rt  s   &&  r   Útest_colspan_rowspan_both_not_1Ú,TestReadHtml.test_colspan_rowspan_both_not_1§  sO   € ñ "Üðóð ô
ð  õ!ˆô$ Ú+Ð,Ò6Sô
ˆô 	×Ò˜fÖ/r   c                óŠ   € V! \        R 4      ^ R7      ^ ,          p\        RR..RR.R7      p\        P                  ! W#4       R# )zñ
            <table>
                <tr>
                    <td>A</td>
                    <td rowspan="2">B</td>
                </tr>
                <tr>
                    <td>C</td>
                </tr>
            </table>
        r•  rÀ  rq  rp  rr  Nrs  rt  s   &&  r   Útest_rowspan_at_end_of_rowÚ'TestReadHtml.test_rowspan_at_end_of_rowÇ  sP   € ñ "Üð
óð ô
ð õˆô"  C¨ : ,¸¸c¸
ÔCˆä
×Ò˜fÖ/r   c                ó�   € V! \        R 4      ^ R7      ^ ,          p\        RR.RR..RR.R7      p\        P                  ! W#4       R# )z³
            <table>
                <tr>
                    <td rowspan="3">A</td>
                    <td rowspan="3">B</td>
                </tr>
            </table>
        r•  rp  rq  rr  Nrs  rt  s   &&  r   Útest_rowspan_only_rowsÚ#TestReadHtml.test_rowspan_only_rowsä  sW   € ñ "Üðó	ð ô
ð õˆô  C¨ :°°S¨zÐ":ÀSÈ#ÀJÔOˆä
×Ò˜fÖ/r   c                óŒ   € V! \        R 4      4      ^ ,          p\        R^.R^..RR.R7      p\        P                  ! W#4       R# )aZ  
            <table>
                <tr>
                    <th rowspan="2">A</th>
                    <th>B</th>
                </tr>
                <tr>
                    <td>1</td>
                </tr>
                <tr>
                    <td>C</td>
                    <td>2</td>
                </tr>
            </table>
        rp  rÀ  rq  rr  Nrs  rt  s   &&  r   Ú*test_rowspan_in_header_overflowing_to_bodyÚ7TestReadHtml.test_rowspan_in_header_overflowing_to_bodyù  sR   € ñ "Üðóó
ð$ õ%ˆô(  C¨ 8¨c°1¨XÐ"6ÀÀcÀ
ÔKˆä
×Ò˜fÖ/r   c                ó´   € V! \        R 4      4      ^ ,          p\        RR.RR..^ ^.^ ^..R7      p\        ^^..VR7      p\        P                  ! W$4       R# )am  
            <table>
                <tr>
                    <th>A</th>
                    <th>B</th>
                </tr>
                <tr>
                    <th>a</th>
                    <th>b</th>
                </tr>
                <tr>
                    <td>1</td>
                    <td>2</td>
                </tr>
            </table>
        rp  rq  r…   rˆ   ©ÚlevelsÚcodesrr  N©r   r   r   r-   r.   ©r_   rZ   r¤   ro   r§   s   &&   r   Ú+test_header_inferred_from_rows_with_only_thÚ8TestReadHtml.test_header_inferred_from_rows_with_only_th  sl   € á!Üðóó
ð& õ'ˆô*  c¨3 Z°#°s°Ð$<ÀaÈÀVÈaÐQRÈVÐDTÔUˆÜ A q 6 (°GÔ<ˆä
×Ò˜fÖ/r   c                óz  € \        R \        R^
R7      /4      pVR,          pVR ,          P                  P                  R4      VR &   VP	                  4       pV! \        V4      ^.^ R7      p\        P                  ! W5^ ,          4       V! \        V4      R .^ R7      p\        P                  ! W5^ ,          4       R# )Údatez1/1/2001©Úperiods:NNNÚus)Úparse_datesrS   N)r   r   ÚdtÚas_unitr~   r   r-   r.   )r_   rZ   r   r§   Ústr_dfr�   s   &&    r   Útest_parse_dates_listÚ"TestReadHtml.test_parse_dates_list0  s›   € Ü˜¤
¨:¸rÔ BÐCÓDˆà�a•5ˆØ# FÕ+×.Ñ.×6Ñ6°tÓ<ˆ�Ñà—‘“ˆÙœx¨Ó/¸a¸SÈAÔNˆÜ
×Ò˜h¨A­Ô/Ùœx¨Ó/¸f¸XÐQRÔSˆÜ
×Ò˜h¨A­Ö/r   c                ó  € V! R RRR4      p\         P                  P                  V4      '       g   Q V: R24       h\         P                  P                  V4      '       g   Q V: R24       hV! VR^R7      ^ ,          pVP                  R8X  g   Q hRVP
                  R,          9   g   Q hVR	,          P                  \        P                  ! R
4      8X  g   Q h\        P                  ! VP                  R,          R4      '       g   Q hR# )r   r   r?   úwikipedia_states.htmlz is not a filez is an empty fileÚArizonarÙ   ÚUnnamedúsq miÚfloat64çHázPN$AN)é<   é   rù   )r   rî  )
r0  r1  ÚisfileÚgetsizer§  ro   r‡   ru   ÚallcloseÚloc©r_   r   rZ   r   r¤   s   &&&  r   Útest_wikipedia_states_tableÚ(TestReadHtml.test_wikipedia_states_table<  sÛ   € Ù˜˜f fÐ.EÓFˆÜ�w‰w�~‰~˜d×#Ò#Ð>¨¡x¨~Ð%>Ó>Ð#Ü�w‰w�‰˜t×$Ò$ÐB¨©Ð0AÐ&BÓBÐ$Ù! $¨iÀÔBÀ1ÕEˆØ�|‰|˜xÔ'Ð'Ð'Ø˜FŸN™N¨2Õ.Ô.Ð.Ð.Ø�g�×$Ñ$¬¯ª°Ó(;Ô;Ð;Ð;Ü�{Š{˜6Ÿ:™: jÕ1°9×=Ò=Ð=Ò=r   c                óB  € V! R RRR4      pV! VR^ R7      ^ ,          pVP                   R	8X  g   Q hRVP                  R
,          ^,          9   g   Q hVP                  P                  ^8X  g   Q h\        P                  ! VP
                  R,          R4      '       g   Q hR# )r   r   r?   rë  rì  r  rí  rð  N)rñ  é   rù   )ÚAlaska)zTotal area[2]rî  )r§  ro   Únlevelsru   rõ  rö  r÷  s   &&&  r   Ú test_wikipedia_states_multiindexÚ-TestReadHtml.test_wikipedia_states_multiindexF  s�   € Ù˜˜f fÐ.EÓFˆÙ! $¨iÀ1ÔEÀaÕHˆØ�|‰|˜xÔ'Ð'Ð'Ø˜FŸN™N¨2Õ.¨qÕ1Ô1Ð1Ð1Ø�~‰~×%Ñ%¨Ô*Ð*Ð*Ü�{Š{˜6Ÿ:™:Ð&JÕKÈY×WÒWÐWÒWr   c                ó¸   € V! \        R 4      ^ ^.R7      p\        RR..\        P                  ! RR.4      R7      p\        P
                  ! V^ ,          V4       R# )aK  
                <table>
                    <thead>
                        <tr><th></th><th></tr>
                        <tr><th>A</th><th>B</th></tr>
                    </thead>
                    <tbody>
                        <tr><td>a</td><td>b</td></tr>
                    </tbody>
                </table>
            r•  r…   rˆ   rn   N)úUnnamed: 0_level_0rp  )zUnnamed: 1_level_0rq  )r   r   r   Úfrom_tuplesr-   r.   rt  s   &&  r   Ú%test_parser_error_on_empty_header_rowÚ2TestReadHtml.test_parser_error_on_empty_header_rowN  sd   € Ù!Üð
óð �q�6ô
ˆô  Ø�3ˆZˆLÜ×*Ò*Ø,Ð.IÐJóô
ˆô 	×Ò˜f Q�i¨Ö2r   c                óâ   € V! \        R 4      RR7      ^ ,          p\        RR/^ .R7      pVR,          P                  \        P                  ! R4      8X  g   Q h\        P
                  ! W#4       R# )a�  <html>
            <body>
             <table>
                <thead>
                    <tr>
                        <th>Header</th>
                    </tr>
                </thead>
                <tbody>
                    <tr>
                        <td>1100#101</td>
                    </tr>
                </tbody>
            </table>
            </body>
        </html>Ú#)Údecimalrx  g–C‹lg0‘@rz  rï  N)r   r   r‡   ru   r-   r.   rt  s   &&  r   Útest_decimal_rowsÚTestReadHtml.test_decimal_rowsg  sm   € á!Üðóð$ ô'
ð( õ)ˆô,  8¨XÐ"6¸q¸cÔBˆà�hÕ×%Ñ%¬¯ª°)Ó)<Ô<Ð<Ð<Ü
×Ò˜fÖ/r   ÚargTFc                óÆ   € \         P                  ! R 4      p\        P                  ! \        VR7      ;_uu_ 4        V! WR7       RRR4       R#   + '       g   i     R# ; i)z–Passing a bool to header is invalid. Use header=None for no header or header=int or list-like of ints to specify the row(s) making up the column namesr=   r•  N)rU  ÚescaperC   rF   r  )r_   re   r
  rZ   r4   s   &&&& r   Útest_bool_header_argÚ!TestReadHtml.test_bool_header_arg„  sA   € ô �iŠiðó
ˆô
 �]Š]œ9¨C×0Ö0Ù˜YÕ3÷ 1×0×0Ò0ús   »
AÁA 	c                ó�   € V! \        R 4      R\        /R7      ^ ,          p\        RRR./4      p\        P                  ! W#4       R# )aƒ  <table>
                 <thead>
                   <tr>
                     <th>a</th>
                    </tr>
                 </thead>
                 <tbody>
                   <tr>
                     <td> 0.763</td>
                   </tr>
                   <tr>
                     <td> 0.244</td>
                   </tr>
                 </tbody>
               </table>r…   r¢  z0.763z0.244N)r   Ústrr   r-   r.   rt  s   &&  r   Útest_convertersÚTestReadHtml.test_converters�  sP   € á!Üðóð" œS�zô%
ð& õ'ˆô* ˜c G¨WÐ#5Ð6Ó7ˆä
×Ò˜fÖ/r   c                ó¢   € V! \        R 4      R.R7      ^ ,          p\        RR\        P                  ./4      p\        P
                  ! W#4       R# )a‚  <table>
                 <thead>
                   <tr>
                     <th>a</th>
                   </tr>
                 </thead>
                 <tbody>
                   <tr>
                     <td> 0.763</td>
                   </tr>
                   <tr>
                     <td> 0.244</td>
                   </tr>
                 </tbody>
               </table>g¬Zd;Ï?)Ú	na_valuesr…   gÑ"Ûù~jè?N©r   r   ru   Únanr-   r.   rt  s   &&  r   Útest_na_valuesÚTestReadHtml.test_na_valuesª  sQ   € á!Üðóð" �gô%
ð& õ'ˆô* ˜c E¬2¯6©6 ?Ð3Ó4ˆä
×Ò˜fÖ/r   c                ó>  € R p\        RRR./4      pV! \        V4      RR7      ^ ,          p\        P                  ! W44       \        R\        P
                  \        P
                  ./4      pV! \        V4      RR7      ^ ,          p\        P                  ! W44       R# )aé  <table>
                        <thead>
                            <tr>
                            <th>a</th>
                            </tr>
                        </thead>
                        <tbody>
                            <tr>
                            <td> N/A</td>
                            </tr>
                            <tr>
                            <td> NA</td>
                            </tr>
                        </tbody>
                    </table>r…   zN/Ar   F)Úkeep_default_naTN)r   r   r-   r.   ru   r  )r_   rZ   Ú	html_dataÚexpected_dfÚhtml_dfs   &&   r   Útest_keep_default_naÚ!TestReadHtml.test_keep_default_naÅ  s‚   € ð ˆ	ô     u¨d mÐ 4Ó5ˆÙ"¤8¨IÓ#6ÈÔNÈqÕQˆÜ
×Ò˜kÔ3ä ¤r§v¡v¬r¯v©vÐ&6Ð 7Ó8ˆÙ"¤8¨IÓ#6ÈÔMÈaÕPˆÜ
×Ò˜kÖ3r   c                óÄ   € V! \        R 4      4      ^ ,          p\        RR.\        P                  \        P                  ..RR.R7      p\        P
                  ! W#4       R# )ak  
            <table>
                <tr>
                    <th>A</th>
                    <th>B</th>
                </tr>
                <tr>
                    <td>a</td>
                    <td>b</td>
                </tr>
                <tr>
                    <td></td>
                    <td></td>
                </tr>
            </table>
        r…   rˆ   rp  rq  rr  Nr  rt  s   &&  r   Útest_preserve_empty_rowsÚ%TestReadHtml.test_preserve_empty_rowsÞ  sZ   € Ù!Üðóó
ð& õ'ˆô*  C¨ :´·±¼¿¹Ð/?Ð"@È3ÐPSÈ*ÔUˆä
×Ò˜fÖ/r   c                ó´   € V! \        R 4      4      ^ ,          p\        RR.RR..^ ^.^ ^..R7      p\        ^^..VR7      p\        P                  ! W$4       R# )aU  
            <table>
                <thead>
                    <tr><th></th><th></tr>
                    <tr><th>A</th><th>B</th></tr>
                    <tr><th>a</th><th>b</th></tr>
                </thead>
                <tbody>
                    <tr><td>1</td><td>2</td></tr>
                </tbody>
            </table>
        rp  rq  r…   rˆ   rØ  rr  NrÛ  rÜ  s   &&   r   Ú,test_ignore_empty_rows_when_inferring_headerÚ9TestReadHtml.test_ignore_empty_rows_when_inferring_headerø  sl   € Ù!Üðóó
ð õˆô"  c¨3 Z°#°s°Ð$<ÀaÈÀVÈaÐQRÈVÐDTÔUˆÜ A q 6 (°GÔ<ˆä
×Ò˜fÖ/r   c                ó¼   € \        . ROR7      p. RO. RO.Vn        VP                  RR7      pV! \        V4      4      ^ ,          p\        P
                  ! W$4       R# )ÚHillary)r   Fr’   N))r'  éD   rË  )ÚBernieéJ   rË  )ÚDonaldéE   ÚR)r  ÚAgeÚParty)ÚNamezUnnamed: 1_level_1zUnnamed: 2_level_1)r   ro   r~   r   r-   r.   )r_   rZ   r  r?   r  s   &&   r   Útest_multiple_header_rowsÚ&TestReadHtml.test_multiple_header_rows  sW   € äÚQô
ˆò 3Ú@ð
ˆÔð ×"Ñ"¨Ð"Ó/ˆÙ"¤8¨D£>Ó2°1Õ5ˆÜ
×Ò˜kÖ3r   c                óž   € V! R RRR4      pV! V^ R7      p\        V\        4      '       g   Q h\        V^ ,          \        4      '       g   Q hR# )r   r   r?   rR   r¼  N)r$   rz   r   )r_   r   rZ   rT   rÒ   s   &&&  r   Útest_works_on_valid_markupÚ'TestReadHtml.test_works_on_valid_markup  sI   € Ù˜D &¨&Ð2EÓFˆÙ˜x°1Ô5ˆÜ˜#œt×$Ò$Ð$Ð$Ü˜#˜a�&¤)×,Ò,Ð,Ò,r   c                ó6   € V! R RRR4      pV! VRRR.R7       R# )	r   r   r?   rh   r¾   rQ   r;   rL   Nrc   )r_   r   rZ   ri   s   &&& r   Útest_fallback_successÚ"TestReadHtml.test_fallback_success"  s#   € á   v¨v°ÓGˆá˜¨kÀ6È:ÐBV×Wr   c                óÄ   € \        R ^
R7      p\        \        P                  P	                  ^4      P                  R4      VR7      pVP                  4       pR V9   g   Q hR# )z
2000-01-01rá  r’   N)é
   rs   )r   r   ru   rv   rw   Ústandard_normalr~   )r_   Úrngr   r¤   s   &   r   Útest_to_html_timestampÚ#TestReadHtml.test_to_html_timestamp(  sN   € Ü˜¨rÔ2ˆÜ”r—y‘y×,Ñ,¨QÓ/×?Ñ?ÀÓHÐPSÔTˆà—‘“ˆØ˜vÔ%Ð%Ò%r   c                ó‚  € \        R ^R^/.4      pVP                  4       pVP                  RR7      pVP                  ^R7      pVP                  ^R7      pVP                  ^ R7      pVP                  RR7      pRV9   g   Q hW28X  g   Q hW$8X  g   Q hW%8w  g   Q hRV9   g   Q hRV9  g   Q hRV9  g   Q hWg8X  g   Q hR	# )
rp  rq  T)ÚborderFz border="1"z border="2"z border="0"z borderN)r   r~   )r_   r   Úout_border_defaultÚout_border_trueÚout_border_explicit_defaultÚout_border_nondefaultÚout_border_zeroÚout_border_falses   &       r   Útest_to_html_borderlessÚ$TestReadHtml.test_to_html_borderless/  sâ   € Ü˜˜a  aÐ(Ð)Ó*ˆØŸZ™Z›\ÐØŸ*™*¨D˜*Ó1ˆØ&(§j¡j¸ jÓ&:Ð#Ø "§
¡
°! 
Ó 4ÐØŸ*™*¨A˜*Ó.ˆàŸ:™:¨U˜:Ó3ÐàÐ 2Ô2Ð2Ð2ØÔ4Ð4Ð4Ø!Ô@Ð@Ð@Ø!Ô:Ð:Ð:ØÐ 5Ô5Ð5Ð5Ø OÔ3Ð3Ð3ØÐ 0Ô0Ð0Ð0ØÔ2Ð2Ò2r   zdisplayed_only,exp0,exp1ÚfooNzfoo  bar  baz  quxc                óî   € R p\        V4      pV! \        V4      VR7      p\        P                  ! V^ ,          V4       Ve!   \        P                  ! V^,          V4       R# \	        V4      ^8X  g   Q hR# )a  <html>
          <body>
            <table>
              <tr>
                <td>
                  foo
                  <span style="display:none;text-align:center">bar</span>
                  <span style="display:none">baz</span>
                  <span style="display: none">qux</span>
                </td>
              </tr>
            </table>
            <table style="display: none">
              <tr>
                <td>foo</td>
              </tr>
            </table>
          </body>
        </html>©Údisplayed_onlyN)r   r   r-   r.   r)   )r_   rL  Úexp0Úexp1rZ   r   rÒ   s   &&&&&  r   Útest_displayed_onlyÚ TestReadHtml.test_displayed_onlyB  sb   € ðˆô( ˜‹ˆÙœx¨›~¸nÔMˆÜ
×Ò˜c !�f dÔ+àÒÜ×!Ò! # a¥&¨$Ö/ä�s“8˜q”=Ð ’=r   rL  c                ó�   € R pV! \        V4      VR7      ^ ,          p\        R^^.R^^./4      p\        P                  ! WE4       R# )aW  
        <table>
            <tr>
                <th>A</th>
                <th>B</th>
            </tr>
            <tr>
                <td>1</td>
                <td>2</td>
            </tr>
            <tr>
                <td><span style="display:none"></span>4</td>
                <td>5</td>
            </tr>
        </table>
        rK  rp  rq  Nrs  )r_   rL  rZ   Ú
html_tabler¤   r§   s   &&&   r   Ú&test_displayed_only_with_many_elementsÚ3TestReadHtml.test_displayed_only_with_many_elementsh  sO   € ðˆ
ñ  "¤(¨:Ó"6À~ÔVØõ
ˆô ˜c A q 6¨3°°A°Ð7Ó8ˆÜ
×Ò˜fÖ/r   z\ignore:You provided Unicode markup but also provided a value for from_encoding.*:UserWarningc                óH  € \         P                  P                  V4      p\         P                  P                  V4      ^ ,          pVP	                  R4      w  rV \        VR4      ;_uu_ 4       pV! \        VP                  4       4      V^ R7      P                  4       pRRR4       \        VR4      ;_uu_ 4       pV! \        VP                  4       4      V^ R7      P                  4       p	RRR4       V! W^ R7      P                  4       p
\        P                  ! XX	4       \        P                  ! WŠ4       R#   + '       g   i     L¤; i  + '       g   i     Lj; i  \         d6    \        4       '       d$   RT9   g   RT9   d   \        P                  ! 4        h i ; i)r   Ú_Úrb)r®   rS   NÚ16Ú32)r0  r1  ÚbasenameÚsplitextÚsplitr´   r   r¶   Úpopr-   r.   Ú	Exceptionr
   rC   Úskip)r_   r   rZ   Ú	base_pathÚrootrV  r®   ÚfobjÚfrom_stringÚfrom_file_likeÚfrom_filenames   &&&        r   Útest_encodeÚTestReadHtml.test_encode€  s?  € ô
 —G‘G×$Ñ$Ð%7Ó8ˆ	Ü�w‰w×Ñ 	Ó*¨1Õ-ˆØ—j‘j “o‰ˆð	ÜÐ(¨$×/Ô/°4Ù.Ü˜DŸI™I›KÓ(°8Àqôç‘#“%ð ÷ 0ô
 Ð(¨$×/Ô/°4Ù!1Ü˜DŸI™I›KÓ(°8Àqô"ç‘#“%ð ÷ 0ñ
 -Ø"Àôç‰c‹eð ô ×!Ò! +¨~Ô>Ü×!Ò! +Ö=÷ 0×/ú÷
 0×/ûô ô 	ä"×$Ò$Ø˜8Ô# t¨xÔ'7Ü—K’K”MØð	ús>   ÁE! Á.1D;ÂE! Â;1EÃ,AE! Ä;E	ÅE! ÅE	ÅE! Å!A F!c                óR  € VP                   P                  R 4      R8X  d   \        P                  ! R4        ! R R\        4      pV! R4      pV! V4      '       g   Q h\        P
                  ! \        RR7      ;_uu_ 4        V! V4       RRR4       R#   + '       g   i     R# ; i)	rB   rQ   zNot applicable for lxmlc                   ó&   a € ] tR tRt o R tRtV tR# )ÚFTestReadHtml.test_parse_failure_unseekable.<locals>.UnseekableStringIOi¦  c                ó   € R # )Frc   r^  s   &r   ÚseekableÚOTestReadHtml.test_parse_failure_unseekable.<locals>.UnseekableStringIO.seekable§  s   € Ùr   rc   N)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__rl  Ú__static_attributes__Ú__classdictcell__©Ú__classdict__s   @r   ÚUnseekableStringIOrj  ¦  s   ø‡ € ÷ð r   rv  z?
            <table><tr><td>spam<foobr />eggs</td></tr></table>z#passed a non-rewindable file objectr=   N)ÚkeywordsÚgetrC   r_  r   rF   rM   )r_   rZ   rv  Úbads   &&  r   Útest_parse_failure_unseekableÚ*TestReadHtml.test_parse_failure_unseekable   s…   € ð ×$Ñ$×(Ñ(¨Ó2°fÔ<Ü�KŠKÐ1Ô2ô	¤ô 	ñ !ðBó
ˆñ
   ×$Ò$Ð$Ð$ä�]Š]œ:Ð-R×SÖSÙ˜SÔ!÷ T×S×SÒSús   Â	BÂB&	c                óz   €  ! R  R4      pV! R4      pV! R4      pV! V4      '       g   Q hV! V4      '       g   Q hR# )c                   ó`   a € ] tR tRt o V 3R lR ltRR ltR tR tR tV 3R	 lR
 lt	Rt
V tR# )Ú9TestReadHtml.test_parse_failure_rewinds.<locals>.MockFilei·  c                ó   <€ V ^8„  d   QhRR/# )rl   ÚreturnNrc   )r{   ru  s   "€r   Ú__annotate__ÚFTestReadHtml.test_parse_failure_rewinds.<locals>.MockFile.__annotate__¸  s   ø€ ÷ $ñ $¨ñ $r   c                ó    € Wn         R V n        R# ©FN)r   Úat_end)r_   r   s   &&r   Ú__init__ÚBTestReadHtml.test_parse_failure_rewinds.<locals>.MockFile.__init__¸  s   € Ø ”	Ø#�–r   Nc                óT   € V P                   '       d   R MV P                  pRV n         V# )r‹  T©r…  r   )r_   Úsizer   s   && r   r¶   Ú>TestReadHtml.test_parse_failure_rewinds.<locals>.MockFile.read¼  s!   € Ø!Ÿ[Ÿ[˜[‘r¨d¯i©i�Ø"�”Ø�r   c                ó   € R V n         R# r„  )r…  )r_   Úoffsets   &&r   ÚseekÚ>TestReadHtml.test_parse_failure_rewinds.<locals>.MockFile.seekÁ  s	   € Ø#�–r   c                ó   € R # )Trc   r^  s   &r   rl  ÚBTestReadHtml.test_parse_failure_rewinds.<locals>.MockFile.seekableÄ  s   € Ùr   c                ó   € R # r"   rc   r^  s   &r   Ú__next__ÚBTestReadHtml.test_parse_failure_rewinds.<locals>.MockFile.__next__Ç  s   € ¡r   c                ó    <€ V ^8„  d   QhRS[ /# )rl   r€  r   )r{   ru  s   "€r   r�  r‚  É  s   ø€ ÷ ñ ¡(ñ r   c                ó   € V # r"   rc   r^  s   &r   Ú__iter__ÚBTestReadHtml.test_parse_failure_rewinds.<locals>.MockFile.__iter__É  s	   € ð �r   r‰  r"   )rn  ro  rp  rq  r†  r¶   rŽ  rl  r“  r—  rr  rs  rt  s   @r   ÚMockFiler~  ·  s-   ø‡ € ÷$ð $ôò
$òò $÷ö r   r™  z/<table><tr><td>spam<br />eggs</td></tr></table>z2<table><tr><td>spam<foobr />eggs</td></tr></table>Nrc   )r_   rZ   r™  Úgoodry  s   &&   r   Útest_parse_failure_rewindsÚ'TestReadHtml.test_parse_failure_rewinds´  sF   € ÷	ñ 	ñ. ÐIÓJˆÙÐKÓLˆá ×%Ò%Ð%Ð%Ù ×$Ò$Ð$Ò$r   c                ó^  €  ! R  R\         P                  4      pV! RRRR4      pV! W$3R7      pV! W$3R7      pVP                  4        VP                  4        VP                  4       '       g   VP                  4       '       d   K.  RVP                  u;J d   VP                  J g   Q h Q hR# )c                   ó2   a a€ ] tR tRt oV 3R ltRtVtV ;t# )Ú@TestReadHtml.test_importcheck_thread_safety.<locals>.ErrorThreadiÙ  c                ór   <€  \         SV `  4        R V n        R #   \         d   pYn         R p?R # R p?ii ; ir"   )ÚsuperÚrunr+  r^  )r_   r+  Ú	__class__s   & €r   r¢  ÚDTestReadHtml.test_importcheck_thread_safety.<locals>.ErrorThread.runÚ  s3   ø€ ð$Ü‘G‘K”Mð  $�D–Høô !ô #Ø"—H’Hûð#ús   ƒ š6¥1±6)r+  )rn  ro  rp  rq  r¢  rr  rs  Ú__classcell__)r£  ru  s   @@r   ÚErrorThreadrŸ  Ù  s   ù‡ € ÷$õ $r   r¦  r   r   r?   rR   )Útargetr2   N)Ú	threadingÚThreadÚstartÚis_aliver+  )r_   r   rZ   r¦  rT   Úhelper_thread1Úhelper_thread2s   &&&    r   Útest_importcheck_thread_safetyÚ+TestReadHtml.test_importcheck_thread_safetyÔ  sž   € ô
	$œ)×*Ñ*ô 	$ñ ˜D &¨&Ð2EÓFˆÙ$Ð,<À;ÔOˆÙ$Ð,<À;ÔOˆà×ÑÔØ×ÑÔà×%Ñ%×'Ò'¨>×+BÑ+B×+DÒ+DÙØ�~×)Ñ)Õ?¨^×-?Ñ-?Ó?Ð?Ñ?Ð?Ò?r   c                óš   € V! R RRR4      p\        V4      pV! V4      ^ ,          pV! V4      ^ ,          p\        P                  ! WV4       R# )r   r   r?   r@   N)r   r-   r.   )r_   r   rZ   Úfile_path_stringÚ	file_pathr¸   r¹   s   &&&    r   Útest_parse_path_objectÚ#TestReadHtml.test_parse_path_objectí  sK   € á# D¨&°&¸+ÓFÐÜÐ)Ó*ˆ	ÙÐ/Ó0°Õ3ˆÙ˜yÓ)¨!Õ,ˆÜ
×Ò˜cÖ'r   c                ó‚   € V! \        R 4      4      ^ ,          p\        R..R.R7      p\        P                  ! W#4       R# )zÓ
            <table>
                <tr>
                    <th>A</th>
                </tr>
                <tr>
                    <td>word1<br>word2</td>
                </tr>
            </table>
        zword1 word2rp  rr  Nrs  rt  s   &&  r   Útest_parse_br_as_spaceÚ#TestReadHtml.test_parse_br_as_spaceõ  sF   € á!Üð	óó
ð õˆô  M ?Ð"3¸c¸UÔCˆä
×Ò˜fÖ/r   c                óØ  € R pR. ROR. ROR. ROR. ROR. ROR. RO/pVR,          pVR,          pVR,          pVR8X  d   VR,          pVR,          pVR,          pM2VR	8X  d   VR,          pM!VR
8X  d   VR,          pMVR8X  d
   VR,          pV! \        V4      VR7      ^ ,          p\        WV.VR7      p	V	P                  \        P                  4      p	\
        P                  ! W‰4       R# )aì  
          <table>
            <tr>
              <th>HTTP</th>
              <th>FTP</th>
              <th><a href="https://en.wiktionary.org/wiki/linkless">Linkless</a></th>
            </tr>
            <tr>
              <td><a href="https://en.wikipedia.org/">Wikipedia</a></td>
              <td>SURROUNDING <a href="ftp://ftp.us.debian.org/">Debian</a> TEXT</td>
              <td>Linkless</td>
            </tr>
            <tfoot>
              <tr>
                <td><a href="https://en.wikipedia.org/wiki/Page_footer">Footer</a></td>
                <td>
                  Multiple <a href="1">links:</a> <a href="2">Only first captured.</a>
                </td>
              </tr>
            </tfoot>
          </table>
          Úhead_ignoreÚhead_extractNÚbody_ignoreÚbody_extractÚfooter_ignoreÚfooter_extractr*   ÚbodyrŒ  rÚ   ©Úextract_linksrn   )ÚHTTPÚFTPÚLinkless))rÂ  N)rÃ  N)rÄ  z'https://en.wiktionary.org/wiki/linkless)Ú	WikipediaúSURROUNDING Debian TEXTrÄ  ))rÅ  zhttps://en.wikipedia.org/)rÆ  zftp://ftp.us.debian.org/)rÄ  N)ÚFooterú$Multiple links: Only first captured.N))rÇ  z)https://en.wikipedia.org/wiki/Page_footer)rÈ  Ú1N)r   r   Úfillnaru   r  r-   r.   )
r_   r
  rZ   Úgh_13141_dataÚgh_13141_expectedÚdata_expÚfoot_expÚhead_expr¤   r§   s
   &&&       r   Útest_extract_linksÚTestReadHtml.test_extract_links
  s  € ðˆð0 Ò6Øò ð
 ÒOØò ð
 ò ð
 ò ð%
Ðð2 % ]Õ3ˆØ$ _Õ5ˆØ$ ]Õ3ˆØ�%Œ<Ø(¨Õ8ˆHØ(Ð)9Õ:ˆHØ(¨Õ8‰HØ�FŒ]Ø(¨Õ8‰HØ�HŒ_Ø(Ð)9Õ:‰HØ�HŒ_Ø(¨Õ8ˆHá!¤(¨=Ó"9ÈÔMÈaÕPˆÜ˜hÐ1¸8ÔDˆØ—?‘?¤2§6¡6Ó*ˆÜ
×Ò˜fÖ/r   c                ó¦   € R p\         P                  ! \        VR7      ;_uu_ 4        \        VRR7       RRR4       R#   + '       g   i     R# ; i)zY`extract_links` must be one of {None, "header", "footer", "body", "all"}, got "incorrect"r=   Ú	incorrectrÀ  N©rC   rF   rM   r   )r_   re   r4   s   && r   Útest_extract_links_badÚ#TestReadHtml.test_extract_links_badO  s9   € ðIð 	ô �]Š]œ:¨S×1Ö1Ü�i¨{Õ;÷ 2×1×1Ò1úr;  c                ó„   € R pV! \        V4      RR7      ^ ,          p\        R..4      p\        P                  ! W44       R# )z¦
        <table>
          <tr>
            <td>
              <a href='https://google.com'>Google.com</a>
            </td>
          </tr>
        </table>
        r*   rÀ  N)z
Google.comzhttps://google.comrs  ©r_   rZ   r   r¤   r§   s   &&   r   Ú test_extract_links_all_no_headerÚ-TestReadHtml.test_extract_links_all_no_headerW  s?   € ðˆñ "¤(¨4£.ÀÔFÀqÕIˆÜÐCÐDÐEÓFˆÜ
×Ò˜fÖ/r   c                ó¦   € R p\         P                  ! \        VR7      ;_uu_ 4        \        RRR7       RRR4       R#   + '       g   i     R# ; i)zPdtype_backend numpy is invalid, only 'numpy_nullable' and 'pyarrow' are allowed.r=   ÚtestÚnumpyr”   NrÔ  )r_   r4   s   & r   Útest_invalid_dtype_backendÚ'TestReadHtml.test_invalid_dtype_backendf  s8   € ð%ð 	ô �]Š]œ:¨S×1Ö1Ü�f¨GÕ4÷ 2×1×1Ò1úr;  c                ó�   € R pV! \        V4      4      ^ ,          p\        RR.RR..RR.R7      p\        P                  ! W44       R# )	a�  
        <table>
            <tr>
                <th>
                    <style>.style</style>
                    A
                    </th>
                <th>B</th>
            </tr>
            <tr>
                <td>A1</td>
                <td>B1</td>
            </tr>
            <tr>
                <td>A2</td>
                <td>B2</td>
            </tr>
        </table>
        ÚA1ÚB1ÚA2ÚB2rp  rq  rr  Nrs  rØ  s   &&   r   Útest_style_tagÚTestReadHtml.test_style_tagn  sI   € ðˆñ& "¤(¨4£.Ó1°!Õ4ˆÜ D¨$ <°$¸°Ð">ÈÈcÈ
ÔSˆÜ
×Ò˜fÖ/r   rc   )r*   r¿  rÚ   rŒ  )grn  ro  rp  rq  r`   rC   Úfixturere   ri   r‚   r©   ÚmarkÚnetworkÚ
single_cpurº   rÀ   ÚslowrÇ   rÏ   rÓ   rÖ   rÛ   rá   ræ   rê   rî   rñ   rö   rú   rþ   r  r  r  r  r  r  r  r   r&  r,  r4  r9  r@  rC  rF  rJ  rN  rQ  rW  r[  r_  rc  rj  rm  ru  r{  r„  r’  r™  r³  r¹  r½  rÁ  rÈ  rÌ  rÏ  rÒ  rÕ  rÝ  rè  rø  rþ  r  r  Úparametrizer  r  r  r  r!  r$  r1  r4  r7  r=  rG  r   rO  rS  Úfilterwarningsrf  rz  r›  r®  r³  r¶  rÐ  rÕ  rÙ  rÞ  rå  rr  rs  rt  s   @r   r\   r\   l   sl  ø‡ € òð8 ‡^�^ñ;ó ð;ð ‡^�^ñ?ó ð?ò'ò4Iðl ‡[�[×ÑØ‡[�[×Ññ)ó ó ð)ð  ‡[�[×ÑØ‡[�[×Ññ)ó ó ð)ð ‡[�[×Ññ)ó ð)ò/ò-ò
-ò
ò
)ò)ò)ò)ò)ò)ò)ò)òLò)ò
)ò
)ò
)ò	)ò)ò)ð ‡[�[×ÑØ‡[�[×ÑñDó ó ðDð
 ‡[�[×ÑØ‡[�[×ÑØ‡[�[×Ññ"ó ó ó ð"ð ‡[�[×Ññ-ó ð-ð ‡[�[×Ññó ðð ‡[�[×Ññ2ó ð2ð ‡[�[×Ññ0ó ð0ð ‡[�[×Ññ	0ó ð	0ð ‡[�[×Ññ2ó ð2ð ‡[�[×Ññ2ó ð2ð ‡[�[×Ññ
2ó ð
2ð ‡[�[×Ññ	-ó ð	-òDð
 ‡^�^ñ.ó ð.ð` ‡[�[×ÑØ‡[�[×Ññó ó ðð
 ‡[�[×ÑØ‡[�[×Ññ.ó ó ð.ò ò60ò@0ò40ò@$2òL0ð2 ‡[�[×Ññ10ó ð10ðf ‡[�[×Ññ$ó ð$òF0òP0ò2!0òF0ò@0ò:0ò*0ò60ò8
0ò>òXò3ò20ð: ‡[�[×Ñ˜U T¨5 MÓ2ñ4ó 3ð4ò0ò60ò64ò20ò40ò.4ò-ð ‡[�[×ÑñXó ðXò
&ò3ð& ‡[�[×ÑØ"à�E�7˜DÐ!ØÐ)Ð*©I°u°gÓ,>Ð?ð	
óñ!óð!ð> ‡[�[×ÑÐ-°°e¨}Ó=ñ0ó >ð0ð. ‡[�[×Ñð	&óñó	ðò8"ò(%ð@ ‡[�[×ÑØ‡[�[×Ññ@ó ó ð@ò.(ò0ð* ‡[�[×Ñ˜UÒ$GÓHñB0ó IðB0òH<ò0ò5÷0ð 0r   r\   )zchinese_utf-16.htmlzchinese_utf-32.htmlzchinese_utf-8.htmlzletz_latin1.html)1Úcollections.abcr   Ú	functoolsr   r   r   r   r0  Úpathlibr   rU  r¨  Úurllib.errorr	   rÝ  ru   rC   Úpandas.compatr
   Úpandas.util._test_decoratorsÚutilÚ_test_decoratorsÚtdÚpandasrx   r   r   r   r   r   r   r   r   r   Úpandas._testingÚ_testingr-   Úpandas.io.commonr   rç  r   r8   rI   rO   rW   r   Ú
skip_if_norZ   r\   rc   r   r   Ú<module>rü     sî   ðÝ $Ý ÷ó 
Ý Û 	Û Ý !ã Û å -ß )Ð )ã ÷
÷ 
õ 
õ å -ð ‡‚òôñBóðBò
:ò(Mò@ò.ð ‡‚à�Š�U 2§=¢=°Ó#7¸¿ºÀzÓ9RÐ"SÔTØ�Š�V 2§=¢=°Ó#8Ô9ðôñ4óð4÷Y0ó Y0r   