ó
    ®œ‘hÍÜ  ã            	       ó  • S SK Jr  S SKJr  S SKJrJr  S SKrS SKJ	r	  S SK
r
S SKrS SKJr  S SKrS SKrS SKJr  S SKJs  Jr  S SKrS SKJrJrJrJrJrJrJrJ r J!r!  S SK"J#r$  S S	K%J&r&  \RN                  " / S
QS9S 5       r(S r)S r*S r+S r,\RN                  " \RZ                  " S\R\                  " S5      \R\                  " S5      /S9\RZ                  " S\R\                  " S5      S9/S9S 5       r/ " S S5      r0g)é    )Ú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)zchinese_utf-16.htmlzchinese_utf-32.htmlzchinese_utf-8.htmlzletz_latin1.html)Úparamsc                 ó,   • U" SSSU R                   5      $ )z6Parametrized fixture for HTML encoding test filenames.ÚioÚdataÚhtml_encoding)Úparam)ÚrequestÚdatapaths     Ú]C:\Users\psant\Downloads\Noiseback\school\venv\Lib\site-packages\pandas/tests/io/test_html.pyÚhtml_encoding_filer   $   s   € ñ �D˜& /°7·=±=ÓAÐAó    c                 óL  • [        U 5      [        U5      :X  d   S[        U 5       S[        U5       35       eSn[        [        S U U5      5      nU(       d   U5       e[        X5       H7  u  pg[        R
                  " Xg/UQ70 UD6  UR                  (       d  M2   S5       e   g )Nz*lists are not of equal size len(list1) == z, len(list2) == z$not all list elements are DataFramesc                 óP   • [        U [        5      =(       a    [        U[        5      $ ©N©Ú
isinstancer   )ÚxÚys     r   Ú<lambda>Ú(assert_framelist_equal.<locals>.<lambda>:   s   € œ A¤yÓ1×N´jÀÄIÓ6NÐNr   zframes are both empty)ÚlenÚallÚmapÚzipÚtmÚassert_frame_equalÚempty)Úlist1Úlist2ÚargsÚkwargsÚmsgÚboth_framesÚframe_iÚframe_js           r   Úassert_framelist_equalr7   1   s°   € Üˆu‹:œ˜U›Ó#ð ð	Ü˜U›˜ð %Ü˜U›˜ð	&óÐ#ð
 1€CÜÜÙNØØó	
ó€Kö Ð˜Óˆ;Ü Ö-ÑˆÜ
×Ò˜gÐ@°Ò@¸Ò@Ø—=—=‘=Ð9Ð"9Ó9Ð ò .r   c           	      ó  • [         R                  " S5      n[         R                  " S5        U R                  USS5        [         R                  " [        SS9   [        U" SSS	S
5      SS9  S S S 5        g ! , (       d  f       g = f)NÚbs4Úhtml5libÚ__version__z4.2zPandas requires version©Úmatchr   r   Úhtmlú	spam.html©Úflavor)ÚpytestÚimportorskipÚsetattrÚraisesÚImportErrorr   )Úmonkeypatchr   r9   s      r   Útest_bs4_version_failsrH   E   sc   € Ü
×
Ò
˜eÓ
$€CÜ
×Ò˜
Ô#à×Ñ˜˜]¨EÔ2Ü	�Š”{Ð*CÓ	DÜ‘(˜4 ¨°Ó=ÀeÒL÷ 
E×	DÖ	Dús   ÁA6Á6
Bc                  óª   • Sn SnSU-   S-   n[         R                  " [        US9   [        [	        U 5      SUS9  S S S 5        g ! , (       d  f       g = f)Nz
google.comzinvalid flavorz\{z \} is not a valid set of flavorsr<   Úgoogle©r=   rA   )rB   rE   Ú
ValueErrorr   r   )ÚurlrA   r3   s      r   Útest_invalid_flavorrN   N   sE   € Ø
€CØ€FØ
�&‰.Ð>Ñ
>€Cä	�Š”z¨Ó	-Ü”(˜3“- x¸Ò?÷ 
.×	-Ö	-ús   ¦AÁ
Ac                 óä   • [         R                  " S5        [         R                  " S5        [         R                  " S5        U " SSSS5      n[        USS/S	9n[        USS/S	9n[        X#5        g )
Nr9   Úlxmlr:   r   r   r>   úvalid_markup.htmlr   )Ú	index_colrA   )rB   rC   r   r7   )r   ÚfilenameÚdfs_lxmlÚdfs_bs4s       r   Útest_same_orderingrV   W   se   € Ü
×Ò˜ÔÜ
×Ò˜ÔÜ
×Ò˜
Ô#á˜˜f fÐ.AÓB€HÜ˜¨Q¸°xÑ@€HÜ˜¨A°u°gÑ>€GÜ˜8Õ-r   r9   r:   )ÚmarksrP   c                 ó2   • [        [        U R                  S9$ )Nr@   )r   r   r   )r   s    r   Úflavor_read_htmlrY   b   s   € ô ”9 W§]¡]Ñ3Ð3r   c            	       ó˜	  • \ rS rSrS r\R                  S 5       r\R                  S 5       rS r	S r
\R                  R                  \R                  R                  S 5       5       r\R                  R                  \R                  R                  S 5       5       r\R                  R                   S	 5       rS
 rS rS rS rS rS rS rS rS rS rS rS rS rS rS r S r!S r"S r#S r$S r%\R                  R                  \R                  R                  S 5       5       r&\R                  R                   \R                  R                  \R                  R                  S 5       5       5       r'\R                  R                   S  5       r(\R                  R                   S! 5       r)\R                  R                   S" 5       r*\R                  R                   S# 5       r+\R                  R                   S$ 5       r,\R                  R                   S% 5       r-\R                  R                   S& 5       r.\R                  R                   S' 5       r/\R                  R                   S( 5       r0S) r1\R                  S* 5       r2\R                  R                  \R                  R                  S+ 5       5       r3\R                  R                  \R                  R                  S, 5       5       r4S- r5S. r6S/ r7S0 r8S1 r9S2 r:\R                  R                   S3 5       r;\R                  R                   S4 5       r<S5 r=S6 r>S7 r?S8 r@S9 rAS: rBS; rCS< rDS= rES> rFS? rGS@ rHSA rI\R                  R•                  SBSCSD/5      SE 5       rKSF rLSG rMSH rNSI rOSJ rPSK rQSL rR\R                  R                   SM 5       rSSN rTSO rU\R                  R•                  SPSC\V" SQ/5      SR4SD\V" SS/5      \V" SQ/5      4/5      ST 5       rW\R                  R•                  SUSCSD/5      SV 5       rX\YR´                  " 5       \R                  R·                  SW5      SX 5       5       r\SY r]SZ r^\R                  R                   \R                  R                  S[ 5       5       r_S\ r`S] ra\R                  R•                  SB/ S^Q5      S_ 5       rbS` rcSa rdSb reSc rfSdrggR)eÚTestReadHtmlél   c                 ó~   • Sn[         R                  " [        US9   U" S5        S S S 5        g ! , (       d  f       g = f)Nz™Passing literal html to 'read_html' is deprecated and will be removed in a future version. To read from a literal string, wrap it in a 'StringIO' object.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>)r,   Úassert_produces_warningÚFutureWarning)ÚselfrY   r3   s      r   Útest_literal_html_deprecationÚ*TestReadHtml.test_literal_html_deprecationm   s8   € ð>ð 	ô ×'Ò'¬¸SÓAÙðô÷ B×AÖAúó   œ	.®
<c                 ó   • U" SSSS5      $ )Nr   r   r>   r?   © ©r`   r   s     r   Ú	spam_dataÚTestReadHtml.spam_data�   s   € á˜˜f f¨kÓ:Ð:r   c                 ó   • U" SSSS5      $ )Nr   r   r>   úbanklist.htmlre   rf   s     r   Úbanklist_dataÚTestReadHtml.banklist_data‘   s   € á˜˜f f¨oÓ>Ð>r   c                 óz  • [        [        R                  R                  S5      R                  S5      [        R
                  " [        S5      5      S9R                  SR                  5      R                  [        5      nUR                  5       nU" [        U5      SS0SS	9S   n[        R                  " XB5        g )
Né   )é   é   Úabc©Úcolumnsz{:.3f}ÚclassÚ	dataframer   )ÚattrsrR   )r   ÚnpÚrandomÚdefault_rngÚpdÚIndexÚlistr*   ÚformatÚastypeÚfloatÚto_htmlr   r,   r-   )r`   rY   ÚdfÚoutÚress        r   Útest_to_html_compatÚ TestReadHtml.test_to_html_compat•   s“   € äÜ—	‘	×%Ñ% aÓ(×/Ñ/°Ó7ÜŸš¤ e£Ó-ñ÷
 ‰S�—‘Ó!§&¡&¬£-ð 	ð �j‰j‹lˆÙÜ�S‹M '¨;Ð!7À1ñ
à
ñˆô 	×Ò˜cÕ&r   c                 óú  • [        [        S[        R                  S/SS9[        / SQSS9[        S[        R                  S/SS9[        / S	QSS9/ S
Q/ SQ/ SQ/ SQS.5      nUR	                  SS9n[
        R                  " SU5         U" [        U5      US9S   nS S S 5        US:X  a;  [        R                  " S5      n[
        R                  " UR                  5       5      nO[
        R                  " U5      n[        [        S[        R                  S/SS9[        / SQSS9[        S[        R                  S/SS9[        / S	QSS9[        SS[        /SS9[        / SQSS9[        / SQUS9[        / SQUS9S.5      n	US:X  aF  SS KnSSKJn
  [        U	R"                   Vs0 s H  nXº" UR%                  X›   SS95      _M     sn5      n	[&        R(                  " WU	SS9  g ! , (       d  f       GNP= fs  snf )Né   rp   ÚInt64)Údtype)r‡   rn   rp   ç      ø?ç      @ÚFloat64)rŠ   g       @r‹   )TFN)TFT©ÚaÚbÚc)rŽ   r�   N)rŽ   r�   r�   ÚdÚeÚfÚgÚhF©Úindexzmode.string_storage©Údtype_backendr   ÚpyarrowTÚboolean)ÚArrowExtensionArray)Úfrom_pandas)Úcheck_column_type)r   r   rw   Únanr€   rz   Úoption_contextr   rB   rC   Ú
ArrowDtypeÚstringÚStringDtyper
   rš   Úpandas.arraysrœ   rs   Úarrayr,   r-   )r`   Ústring_storager™   rY   r�   r‚   ÚresultÚpaÚstring_dtypeÚexpectedrœ   Úcols               r   Útest_dtype_backendÚTestReadHtml.test_dtype_backend¤   sÍ  € ää˜Q¤§¡¨˜N°'Ñ:ÜšI¨WÑ5Ü˜S¤"§&¡&¨#Ð.°iÑ@ÜšO°9Ñ=Ú(Ú(Ú$Ú%ñ	ó
ˆð �j‰j˜uˆjÐ%ˆÜ×ÒÐ4°nÕEÙ%¤h¨s£mÀ=ÑQÐRSÑTˆF÷ Fð ˜IÓ%Ü×$Ò$ YÓ/ˆBÜŸ=š=¨¯©«Ó5‰LäŸ>š>¨.Ó9ˆLää˜Q¤§¡¨˜N°'Ñ:ÜšI¨WÑ5Ü˜S¤"§&¡&¨#Ð.°iÑ@ÜšO°9Ñ=Ü˜T 5¬"Ð-°YÑ?ÜÒ/°yÑAÜšO°<Ñ@ÜÒ,°LÑAñ	ó
ˆð ˜IÓ%Û å9ä ð  (×/Ò/óâ/˜ð Ð,¨R¯X©X°h±mÐQU¨XÐ-VÓWÒWÙ/ñóˆHô 	×Ò˜f hÀ%ÓH÷I FÖEüò8s   Â	G&Æ&"G8Ç&
G5c                 óâ   • [        USS9 nUR                  UR                  5       S9  U" UR                  SS9nU" UR                  SS9nS S S 5        [	        WW5        g ! , (       d  f       N= f)Núutf-8©Úencoding©ÚcontentúFirst Federal Bank of Floridar<   úMetcalf Bank©ÚopenÚserve_contentÚreadrM   r7   )r`   Ú
httpserverrk   rY   r“   Údf1Údf2s          r   Útest_banklist_urlÚTestReadHtml.test_banklist_urlÚ   sk   € ô �-¨'Ò2°aØ×$Ñ$¨Q¯V©V«XÐ$Ñ6Ù"à—‘Ø5ñˆCñ #Ø—‘Ø$ñˆC÷ 3ô 	˜s CÕ(÷ 3Õ2úó   ‹A A Á 
A.c                 óâ   • [        USS9 nUR                  UR                  5       S9  U" UR                  SS9nU" UR                  SS9nS S S 5        [	        WW5        g ! , (       d  f       N= f)Nr¯   r°   r²   ú	.*Water.*r<   ÚUnitr¶   )r`   rº   rg   rY   r“   r»   r¼   s          r   Útest_spam_urlÚTestReadHtml.test_spam_urlì   sa   € ô �) gÒ.°!Ø×$Ñ$¨Q¯V©V«XÐ$Ñ6Ù" :§>¡>¸ÑEˆCÙ" :§>¡>¸Ñ@ˆC÷ /ô
 	˜s CÕ(÷ /Õ.úr¿   c                 óB   • U" USSS0S9nU" USSS0S9n[        X45        g )Nz.*Florida.*ÚidÚtable©r=   rv   rµ   ©r7   )r`   rk   rY   r»   r¼   s        r   Útest_banklistÚTestReadHtml.test_banklistö   s8   € áØ °t¸W°oñ
ˆñ Ø ¸¸g°ñ
ˆô 	˜sÕ(r   c                 ó–   • U" USS9nU" USS9n[        X45        US   R                  S   S:X  d   eUS   R                  S   S:X  d   eg )NrÁ   r<   rÂ   r   ©r   r   Ú
ProximatesÚNutrient)r7   Úilocrs   ©r`   rg   rY   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                 óT   • U" U5      nU H  n[        U[        5      (       a  M   e   g r!   r"   )r`   rg   rY   Údfsr�   s        r   Útest_spam_no_matchÚTestReadHtml.test_spam_no_match	  s)   € Ù˜yÓ)ˆÛˆBÜ˜b¤)×,Ó,Ð,Ð,ò r   c                 óV   • U" USS0S9nU H  n[        U[        5      (       a  M   e   g )NrÆ   rÇ   )rv   r"   )r`   rk   rY   rÕ   r�   s        r   Útest_banklist_no_matchÚ#TestReadHtml.test_banklist_no_match  s/   € Ù˜}°T¸7°OÑDˆÛˆBÜ˜b¤)×,Ó,Ð,Ð,ò r   c                 ój   • U" USSS9S   nUR                   S   S:X  d   eUR                  (       a   eg )NrÁ   rn   ©r=   Úheaderr   rÎ   )rs   r.   )r`   rg   rY   r�   s       r   Útest_spam_headerÚTestReadHtml.test_spam_header  s9   € Ù˜i¨{À1ÑEÀaÑHˆØ�z‰z˜!‰} Ó,Ð,Ð,Ø—8—8Ðˆ|�8r   c                 ó:   • U" USSS9nU" USSS9n[        X45        g ©NrÁ   r‡   ©r=   ÚskiprowsrÂ   rÉ   rÑ   s        r   Útest_skiprows_intÚTestReadHtml.test_skiprows_int  ó&   € Ù˜y°ÀaÑHˆÙ˜y°ÀÑCˆä˜sÕ(r   c                 ó^   • U" US[        S5      S9nU" US[        S5      S9n[        X45        g ©NrÁ   rn   râ   rÂ   )Úranger7   rÑ   s        r   Útest_skiprows_rangeÚ TestReadHtml.test_skiprows_range  ó.   € Ù˜y°ÄeÈAÃhÑOˆÙ˜y°ÄÀqÃÑJˆä˜sÕ(r   c                 óB   • U" USSS/S9nU" USSS/S9n[        X45        g ©NrÁ   r‡   rn   râ   rÂ   rÉ   rÑ   s        r   Útest_skiprows_listÚTestReadHtml.test_skiprows_list$  ó.   € Ù˜y°ÀqÈ!ÀfÑMˆÙ˜y°À!ÀQÀÑHˆä˜sÕ(r   c                 óB   • U" USSS1S9nU" USSS1S9n[        X45        g rî   rÉ   rÑ   s        r   Útest_skiprows_setÚTestReadHtml.test_skiprows_set*  rñ   r   c                 ó:   • U" USSS9nU" USSS9n[        X45        g rá   rÉ   rÑ   s        r   Útest_skiprows_sliceÚ TestReadHtml.test_skiprows_slice0  ræ   r   c                 ó^   • U" US[        S5      S9nU" US[        S5      S9n[        X45        g rè   ©Úslicer7   rÑ   s        r   Útest_skiprows_slice_shortÚ&TestReadHtml.test_skiprows_slice_short6  rì   r   c           	      ód   • U" US[        SS5      S9nU" US[        SSS5      S9n[        X45        g )	NrÁ   rn   é   râ   rÂ   ro   r‡   éÿÿÿÿrù   rÑ   s        r   Útest_skiprows_slice_longÚ%TestReadHtml.test_skiprows_slice_long<  s4   € Ù˜y°ÄeÈAÈqÃkÑRˆÙ˜y°ÄÀqÈ!ÈRÃÑQˆä˜sÕ(r   c                 óŠ   • U" US[         R                  " S5      S9nU" US[         R                  " S5      S9n[        X45        g rè   )rw   Úaranger7   rÑ   s        r   Útest_skiprows_ndarrayÚ"TestReadHtml.test_skiprows_ndarrayB  s7   € Ù˜y°ÄbÇiÂiÐPQÃlÑSˆÙ˜y°ÄÇÂÈ1ÃÑNˆä˜sÕ(r   c                 óz   • [         R                  " [        SS9   U" USSS9  S S S 5        g ! , (       d  f       g = f)Nz%is not a valid type for skipping rowsr<   rÁ   Úasdfrâ   )rB   rE   Ú	TypeError)r`   rg   rY   s      r   Útest_skiprows_invalidÚ"TestReadHtml.test_skiprows_invalidH  s*   € Ü�]Š]œ9Ð-TÓVÙ˜Y¨kÀFÒK÷ W×VÖVús   š	,¬
:c                 ó:   • U" USSS9nU" USSS9n[        X45        g ©NrÁ   r   ©r=   rR   rÂ   rÉ   rÑ   s        r   Ú
test_indexÚTestReadHtml.test_indexL  s&   € Ù˜y°ÀqÑIˆÙ˜y°À!ÑDˆÜ˜sÕ(r   c                 ó>   • U" USSSS9nU" USSSS9n[        X45        g ©NrÁ   r‡   r   )r=   rÝ   rR   rÂ   rÉ   rÑ   s        r   Útest_header_and_index_no_typesÚ+TestReadHtml.test_header_and_index_no_typesQ  ó+   € Ù˜y°ÀAÐQRÑSˆÙ˜y°¸qÈAÑNˆÜ˜sÕ(r   c                 ó>   • U" USSSS9nU" USSSS9n[        X45        g r  rÉ   rÑ   s        r   Ú test_header_and_index_with_typesÚ-TestReadHtml.test_header_and_index_with_typesV  r  r   c                 ó:   • U" USSS9nU" USSS9n[        X45        g r  rÉ   rÑ   s        r   Útest_infer_typesÚTestReadHtml.test_infer_types[  s&   € á˜y°ÀqÑIˆÙ˜y°À!ÑDˆÜ˜sÕ(r   c                 ó*  • [        USS9 n[        UR                  5       5      nS S S 5        [        USS9 n[        UR                  5       5      nS S S 5        U" WSS9nU" WSS9n[        Xg5        g ! , (       d  f       NT= f! , (       d  f       N9= f©NzUTF-8r°   rÁ   r<   rÂ   )r·   r   r¹   r7   )r`   rg   rY   r“   Údata1Údata2r»   r¼   s           r   Útest_string_ioÚTestReadHtml.test_string_ioa  sz   € Ü�) gÒ.°!Ü˜QŸV™V›XÓ&ˆE÷ /ô �) gÒ.°!Ü˜QŸV™V›XÓ&ˆE÷ /ñ ˜u¨KÑ8ˆÙ˜u¨FÑ3ˆÜ˜sÕ(÷ /Õ.ú÷ /Õ.ús   ‹A3·BÁ3
BÂ
Bc                 óÂ   • [        USS9 nUR                  5       nS S S 5        U" [        W5      SS9nU" [        U5      SS9n[        XV5        g ! , (       d  f       N:= fr  )r·   r¹   r   r7   )r`   rg   rY   r“   r   r»   r¼   s          r   Útest_stringÚTestReadHtml.test_stringl  sQ   € Ü�) gÒ.°!Ø—6‘6“8ˆD÷ /ñ œx¨›~°[ÑAˆÙœx¨›~°VÑ<ˆä˜sÕ(÷ /Õ.ús   ‹AÁ
Ac                 óÈ   • [        USS9 nU" USS9nS S S 5        [        USS9 nU" USS9nS S S 5        [        WW5        g ! , (       d  f       N5= f! , (       d  f       N,= fr  )r·   r7   )r`   rg   rY   r“   r»   r¼   s         r   Útest_file_likeÚTestReadHtml.test_file_likeu  s\   € Ü�) gÒ.°!Ù" 1¨KÑ8ˆC÷ /ô �) gÒ.°!Ù" 1¨FÑ3ˆC÷ /ô 	˜s CÕ(÷ /Õ.ú÷ /Õ.ús   ‹A¥AÁ
AÁ
A!c                 ó˜   • UR                  SSS9  [        R                  " [        SS9   U" SSS9  S S S 5        g ! , (       d  f       g = f)Nz#urlopen error unknown url type: gité”  ©Úcoder<   zgit://github.comrÁ   )r¸   rB   rE   r   ©r`   rº   rY   s      r   Útest_bad_url_protocolÚ"TestReadHtml.test_bad_url_protocol~  s?   € ð 	× Ñ Ð!FÈSÐ ÑQÜ�]Š]œ8Ð+PÓQÙÐ/°{ÒC÷ R×QÖQús	   ª;»
A	c                 ó¸   • UR                  SSS9  [        R                  " [        [        4SS9   U" UR
                  SS9  S S S 5        g ! , (       d  f       g = f)NzName or service not knownr(  r)  zHTTP Error 404: NOT FOUNDr<   rÁ   )r¸   rB   rE   r   rL   rM   r+  s      r   Útest_invalid_urlÚTestReadHtml.test_invalid_url…  sG   € ð 	× Ñ Ð!<À3Ð ÑGÜ�]Š]œH¤jÐ1Ð9TÓUÙ˜ZŸ^™^°;Ò?÷ V×UÖUús   °AÁ
Ac                 óÖ   • UnU" [        [        R                  R                  U5      5      SSS0S9n[	        U[
        5      (       d   eU H  n[	        U[        5      (       a  M   e   g )NÚFirstrÆ   rÇ   rÈ   )r   ÚosÚpathÚabspathr#   r|   r   ©r`   rk   rY   rM   rÕ   r�   s         r   Útest_file_urlÚTestReadHtml.test_file_url�  sa   € àˆÙÜœRŸW™WŸ_™_¨SÓ1Ó2¸'È$ÐPWÈñ
ˆô ˜#œt×$Ñ$Ð$Ð$ÛˆBÜ˜b¤)×,Ó,Ð,Ð,ò r   c                 ó‚   • Un[         R                  " [        SS9   U" USSS0S9  S S S 5        g ! , (       d  f       g = f)NzNo tables foundr<   r´   rÆ   Ú	tasdfablerÈ   ©rB   rE   rL   )r`   rk   rY   rM   s       r   Útest_invalid_table_attrsÚ%TestReadHtml.test_invalid_table_attrs—  s8   € àˆÜ�]Š]œ:Ð->Ó?ÙØÐ:À4ÈÐBUò÷ @×?Ö?úó   œ0°
>c                 óf   • U" USSS0SS/S9S   n[        UR                  [        5      (       d   eg )NÚMetcalfrÆ   rÇ   r   r‡   )r=   rv   rÝ   ©r#   rs   r   ©r`   rk   rY   r�   s       r   Útest_multiindex_headerÚ#TestReadHtml.test_multiindex_headerŸ  s>   € áØ °4¸°/È1ÈaÈ&ñ
à
ñˆô ˜"Ÿ*™*¤j×1Ñ1Ð1Ñ1r   c                 óf   • U" USSS0SS/S9S   n[        UR                  [        5      (       d   eg )Nr@  rÆ   rÇ   r   r‡   )r=   rv   rR   )r#   r—   r   rB  s       r   Útest_multiindex_indexÚ"TestReadHtml.test_multiindex_index¦  s?   € áØ °4¸°/ÈaÐQRÈVñ
à
ñˆô ˜"Ÿ(™(¤J×/Ñ/Ð/Ñ/r   c                 ó®   • U" USSS0SS/SS/S9S   n[        UR                  [        5      (       d   e[        UR                  [        5      (       d   eg )Nr@  rÆ   rÇ   r   r‡   )r=   rv   rÝ   rR   )r#   rs   r   r—   rB  s       r   Útest_multiindex_header_indexÚ)TestReadHtml.test_multiindex_header_index­  sa   € áØØØ˜�/Ø�q�6Ø˜!�fñ
ð ñˆô ˜"Ÿ*™*¤j×1Ñ1Ð1Ð1Ü˜"Ÿ(™(¤J×/Ñ/Ð/Ñ/r   c                 óh   • U" USSS0SS/SS9S   n[        UR                  [        5      (       d   eg ©Nr@  rÆ   rÇ   r   r‡   )r=   rv   rÝ   rã   rA  rB  s       r   Ú&test_multiindex_header_skiprows_tuplesÚ3TestReadHtml.test_multiindex_header_skiprows_tuples¹  óF   € áØØØ˜�/Ø�q�6Øñ
ð ñˆô ˜"Ÿ*™*¤j×1Ñ1Ð1Ñ1r   c                 óh   • U" USSS0SS/SS9S   n[        UR                  [        5      (       d   eg rL  rA  rB  s       r   Útest_multiindex_header_skiprowsÚ,TestReadHtml.test_multiindex_header_skiprowsÄ  rO  r   c           	      ó°   • U" USSS0SS/SS/SS9S   n[        UR                  [        5      (       d   e[        UR                  [        5      (       d   eg )Nr@  rÆ   rÇ   r   r‡   )r=   rv   rÝ   rR   rã   )r#   r—   r   rs   rB  s       r   Ú%test_multiindex_header_index_skiprowsÚ2TestReadHtml.test_multiindex_header_index_skiprowsÏ  sd   € áØØØ˜�/Ø�q�6Ø˜!�fØñ
ð ñˆô ˜"Ÿ(™(¤J×/Ñ/Ð/Ð/Ü˜"Ÿ*™*¤j×1Ñ1Ð1Ñ1r   c                 ó&  • UnU" [        [        R                  R                  U5      5      [        R
                  " [        R
                  " S5      5      SS0S9n[        U[        5      (       d   eU H  n[        U[        5      (       a  M   e   g )NÚFloridarÆ   rÇ   rÈ   )	r   r3  r4  r5  ÚreÚcompiler#   r|   r   r6  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                 ó~   • Sn[         R                  " [        US9   U" USSS9  S S S 5        g ! , (       d  f       g = f)Nz\(you passed a negative value\)r<   ÚWaterrÿ   râ   r;  )r`   rg   rY   r3   s       r   Útest_negative_skiprowsÚ#TestReadHtml.test_negative_skiprowsè  s-   € Ø0ˆÜ�]Š]œ:¨SÓ1Ù˜Y¨gÀÒC÷ 2×1Ö1úrc   c                 ó   • g)Naf  
          <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>
        re   ©r`   s    r   Úpython_docsÚTestReadHtml.python_docsí  s   € ð-r   c                 óf   • UR                  US9  U" UR                  SS9n[        U5      S:”  d   eg )Nr²   ÚPythonr<   r‡   )r¸   rM   r(   )r`   rb  rº   rY   rÕ   s        r   Útest_multiple_matchesÚ"TestReadHtml.test_multiple_matches  s5   € ð 	× Ñ ¨Ð Ñ5Ù˜zŸ~™~°XÑ>ˆÜ�3‹x˜!‹|Ð‰|r   c                 ó¶   • UR                  US9  U" UR                  SS9nU Vs/ s H  oUR                  S   SS PM     nn[        U5      SS/:X  d   eg s  snf )	Nr²   re  r<   rÍ   r   ro   ÚPythÚWhat)r¸   rM   rÐ   Úsorted)r`   rb  rº   rY   rÕ   r�   Úzzs          r   Útest_python_docs_tableÚ#TestReadHtml.test_python_docs_table%  sb   € ð 	× Ñ ¨Ð Ñ5Ù˜zŸ~™~°XÑ>ˆÙ+.Ó/ª3 R�g‰g�d‰m˜A˜aÓ ©3ˆÐ/Ü�b‹z˜f fÐ-Ó-Ð-Ñ-ùò 0s   ¥Ac                 óL   • SnU" [        U5      5      n[        U5      S:X  d   eg)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>
        r‡   N)r   r(   )r`   rY   r>   r§   s       r   Útest_empty_tablesÚTestReadHtml.test_empty_tables-  s+   € ðˆñ( "¤(¨4£.Ó1ˆÜ�6‹{˜aÓÐÑr   c                 ó|   • U" [        S5      5      S   n[        SS/SS//SS/S	9n[        R                  " X#5        g )
NaÎ  <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>r   r‡   rn   rp   ro   ÚAÚB©r   rs   ©r   r   r,   r-   ©r`   rY   r§   rª   s       r   Útest_multiple_tbodyÚ TestReadHtml.test_multiple_tbodyH  sR   € ñ "Üðóó
ð. ñ/ˆô2  A q 6¨A¨q¨6Ð"2¸SÀ#¸JÑGˆä
×Ò˜fÕ/r   c                 ór   • U" [        S5      5      S   n[        SS0S/S9n[        R                  " X#5        g)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>r   ÚHeaderÚfirst©r   r—   Nrv  rw  s       r   Útest_header_and_one_columnÚ'TestReadHtml.test_header_and_one_columnh  sH   € ñ
 "Üðóó
ð ñˆô"  8¨WÐ"5¸a¸SÑAˆä
×Ò˜fÕ/r   c                 óv   • U" [        S5      5      S   n[        / SQ// SQS9n[        R                  " X#5        g)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>r   )ÚUkraineÚOdessaé˜  )ÚCountryÚMunicipalityÚYearru  Nrv  rw  s       r   Útest_thead_without_trÚ"TestReadHtml.test_thead_without_tr‚  sJ   € ñ "Üðóó
ð& ñ'ˆô* Ú-Ð.Ú7ñ
ˆô
 	×Ò˜fÕ/r   c                 ó.  • Sn[        SS//SS/S9n[        SS/SS//SS/S9nUR                  S	S
9nUR                  SS
9nU" [        U5      5      S   nU" [        U5      5      S   n[        R                  " Xs5        [        R                  " X„5        g)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ÚbodyBrs  rt  ru  ÚfootAÚfootBÚ )Úfooterz%<tr><td>footA</td><th>footB</th></tr>r   N)r   r}   r   r,   r-   )	r`   rY   Ú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                 óp   • U" [        S5      SS9S   n[        SS//SS9n[        R                  " X#5        g )Na
  
            <table>
                <tr>
                    <td>S</td>
                    <td>I</td>
                </tr>
                <tr>
                    <td>text</td>
                    <td>1944</td>
                </tr>
            </table>
        r   ©rÝ   Útextrƒ  )ÚSÚIrr   rv  rw  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                 óˆ  ^• SSK Jm  U4S jnU" USSS0S9S   n[        U" SS	S
S5      [        [        S.S9nUR                  UR                  :X  d   e/ SQn/ SQnUR                  U5      R                  Xx5      n	UR                  U5      n
U	nSS/nX¼   R                  [        5      X¼'   [        R                  " Xº5        g )Nr   )Ú_remove_whitespacec                 ó:   >•  T" U 5      $ ! [          a    U s $ f = f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.csv)úUpdated DateúClosing Date©Ú
converters)
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 Bankr¦  r¥  )Úpandas.io.htmlrŸ  r   r   Úshaper*   ÚreplaceÚapplyr   r,   r-   )r`   rk   r   rY   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Ü(1Ä9ÑMñ
ˆð �x‰x˜<×-Ñ-Ó-Ð-Ð-ò
ˆò
ˆð —‘�}Ó%×-Ñ-¨cÓ7ˆØ× Ñ  Ó/ˆØˆ	Ø# ^Ð4ˆ	Ø(Ñ3×9Ñ9¼+ÓFˆ	ÑÜ
×Ò˜iÕ/r   c                 óÄ   • Sn[        USS9 nUR                  5       nS S S 5        UW;   d   eU" USSS0S9S   nX6R                  5       ;   d   eg ! , (       d  f       N9= f)NzGold Canyonr¯   r°   rÆ   rÇ   rÈ   r   )r·   r¹   Ú	to_string)r`   rk   rY   Úgcr“   Úraw_textr�   s          r   Útest_gold_canyonÚTestReadHtml.test_gold_canyon  sk   € àˆÜ�-¨'Ò2°aØ—v‘v“xˆH÷ 3ð �X‹~Ðˆ~ÙØ °t¸W°oñ
à
ñˆð —\‘\“^Ó#Ð#Ñ#÷ 3Õ2ús   �AÁ
Ac                 ó|   • U" [        S5      SS9S   nU" [        S5      SS9S   n[        R                  " X25        g )Na�  <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>r   ©rR   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>)r   r,   r-   )r`   rY   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   • U" [        S5      5      S   n[        / SQ// SQS9n[        R                  " X#5        g )NaZ  
            <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>
        r   r�   )rs  rt  ÚCrr   rv  rw  s       r   Útest_colspan_rowspan_1Ú#TestReadHtml.test_colspan_rowspan_1e  sB   € á!Üðóó
ð" ñ#ˆô& šoÐ.ºÑHˆä
×Ò˜fÕ/r   c                 ót   • U" [        S5      SS9S   n[        / SQ// SQS9n[        R                  " X#5        g )Na…  
            <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   r˜  )rs  rt  rt  ÚZrÂ  )ÚXzX.1ÚYrÆ  ÚWru  rv  rw  s       r   Ú test_colspan_rowspan_copy_valuesÚ-TestReadHtml.test_colspan_rowspan_copy_values~  sO   € ñ "Üðóð" ñ%
ð& ñ'ˆô* Ú+Ð,Ò6Qñ
ˆô 	×Ò˜fÕ/r   c                 ót   • U" [        S5      SS9S   n[        / SQ// SQS9n[        R                  " X#5        g )Na(  
            <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   r˜  )rs  rt  rt  rt  ÚD)rs  rt  zB.1zB.2rÂ  ru  rv  rw  s       r   Útest_colspan_rowspan_both_not_1Ú,TestReadHtml.test_colspan_rowspan_both_not_1¡  sO   € ñ "Üðóð ñ
ð  ñ!ˆô$ Ú+Ð,Ò6Sñ
ˆô 	×Ò˜fÕ/r   c                 ót   • U" [        S5      SS9S   n[        SS//SS/S9n[        R                  " X#5        g )Nzñ
            <table>
                <tr>
                    <td>A</td>
                    <td rowspan="2">B</td>
                </tr>
                <tr>
                    <td>C</td>
                </tr>
            </table>
        r   r˜  rÂ  rt  rs  ru  rv  rw  s       r   Útest_rowspan_at_end_of_rowÚ'TestReadHtml.test_rowspan_at_end_of_rowÁ  sP   € ñ "Üð
óð ñ
ð ñˆô"  C¨ : ,¸¸c¸
ÑCˆä
×Ò˜fÕ/r   c                 óz   • U" [        S5      SS9S   n[        SS/SS//SS/S9n[        R                  " X#5        g )Nz³
            <table>
                <tr>
                    <td rowspan="3">A</td>
                    <td rowspan="3">B</td>
                </tr>
            </table>
        r   r˜  rs  rt  ru  rv  rw  s       r   Útest_rowspan_only_rowsÚ#TestReadHtml.test_rowspan_only_rowsÞ  sW   € ñ "Üðó	ð ñ
ð ñˆô  C¨ :°°S¨zÐ":ÀSÈ#ÀJÑOˆä
×Ò˜fÕ/r   c                 óž   • U" [        S5      5      S   n[        SS/SS//SS/SS//S9n[        SS	//US
9n[        R                  " X$5        g )Nam  
            <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>
        r   rs  rt  rŽ   r�   r‡   ©ÚlevelsÚcodesrn   ru  ©r   r   r   r,   r-   ©r`   rY   r§   rs   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                 óú   • [        S[        SSS905      nUR                  5       nU" [        U5      S/SS9n[        R
                  " X$S   5        U" [        U5      S/SS9n[        R
                  " X$S   5        g )NÚdateú1/1/2001é
   ©Úperiodsr‡   r   ©Úparse_datesrR   )r   r   r€   r   r,   r-   )r`   rY   r�   rª   rƒ   s        r   Útest_parse_dates_listÚ"TestReadHtml.test_parse_dates_list  sr   € Ü˜¤
¨:¸rÑ BÐCÓDˆØ—:‘:“<ˆÙœx¨Ó1À¸sÈaÑPˆÜ
×Ò˜b a¡&Ô)Ùœx¨Ó1À¸xÐSTÑUˆÜ
×Ò˜b a¡&Õ)r   c                 ó  • [        [        SSS95      n[        UR                  S 5      UR                  S 5      S.5      nU" [	        UR                  5       5      SSS	/0SS
9n[        SU05      n[        R                  " XTS   5        g )Nrà  rá  râ  c                 ó4   • [        U R                  5       5      $ r!   )Ústrrß  ©r$   s    r   r&   Ú7TestReadHtml.test_parse_dates_combine.<locals>.<lambda>  ó   € ´°A·F±F³H´r   c                 ó4   • [        U R                  5       5      $ r!   )rê  Útimerë  s    r   r&   rì    rí  r   )rß  rï  Údatetimer‡   rn   rä  r   )r   r   r   r*   r   r€   r,   r-   )r`   rY   Ú	raw_datesr�   rƒ   Únewdfs         r   Útest_parse_dates_combineÚ%TestReadHtml.test_parse_dates_combine  s‡   € Üœ: j¸"Ñ=Ó>ˆ	Üà!Ÿ™Ñ&=Ó>Ø!Ÿ™Ñ&=Ó>ñó
ˆñ Ü�R—Z‘Z“\Ó"°¸aÀ¸VÐ0DÐPQñ
ˆô ˜: yÐ1Ó2ˆÜ
×Ò˜e¨¡VÕ,r   c                 ó  • U" SSSS5      n[         R                  R                  U5      (       d   [        U5       S35       e[         R                  R	                  U5      (       d   [        U5       S35       eU" USSS	9S
   nUR
                  S:X  d   eSUR                  S   ;   d   eUS   R                  [        R                  " S5      :X  d   e[        R                  " UR                  S   S5      (       d   eg )Nr   r   r>   úwikipedia_states.htmlz is not a filez is an empty fileÚArizonar‡   rÜ   r   )é<   é   ÚUnnamedrÿ   úsq miÚfloat64)r   rû  çHázPN$A)r3  r4  ÚisfileÚreprÚgetsizer«  rs   r‰   rw   ÚallcloseÚloc©r`   r   rY   r   r§   s        r   Útest_wikipedia_states_tableÚ(TestReadHtml.test_wikipedia_states_table%  sã   € Ù˜˜f fÐ.EÓFˆÜ�w‰w�~‰~˜d×#Ñ#ÐB¬¨T«
 |°>Ð%BÓBÐ#Ü�w‰w�‰˜t×$Ñ$ÐF¬¨d«¨Ð4EÐ&FÓFÐ$Ù! $¨iÀÑBÀ1ÑEˆØ�|‰|˜xÓ'Ð'Ð'Ø˜FŸN™N¨2Ñ.Ó.Ð.Ð.Ø�g‰×$Ñ$¬¯ª°Ó(;Ó;Ð;Ð;Ü�{Š{˜6Ÿ:™: jÑ1°9×=Ñ=Ð=Ñ=r   c                 ó  • U" SSSS5      nU" USSS9S   nUR                   S:X  d   eS	UR                  S
   S   ;   d   eUR                  R                  S:X  d   e[        R                  " UR
                  S   S5      (       d   eg )Nr   r   r>   rö  r÷  r   r  )rø  é   rú  rÿ   r‡   rn   )ÚAlaska)zTotal area[2]rû  rý  )r«  rs   Únlevelsrw   r  r  r  s        r   Ú test_wikipedia_states_multiindexÚ-TestReadHtml.test_wikipedia_states_multiindex/  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                 ó¢   • U" [        S5      SS/S9n[        SS//[        R                  " SS/5      S	9n[        R
                  " US   U5        g )
NaK  
                <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˜  rŽ   r�   )úUnnamed: 0_level_0rs  )zUnnamed: 1_level_0rt  rr   )r   r   r   Úfrom_tuplesr,   r-   rw  s       r   Ú%test_parser_error_on_empty_header_rowÚ2TestReadHtml.test_parser_error_on_empty_header_row7  sd   € Ù!Üð
óð �q�6ñ
ˆô  Ø�3ˆZˆLÜ×*Ò*Ø,Ð.IÐJóñ
ˆô 	×Ò˜f Q™i¨Õ2r   c                 óÂ   • U" [        S5      SS9S   n[        SS0S/S9nUS   R                  [        R                  " S5      :X  d   e[        R
                  " X#5        g )	Na�  <html>
            <body>
             <table>
                <thead>
                    <tr>
                        <th>Header</th>
                    </tr>
                </thead>
                <tbody>
                    <tr>
                        <td>1100#101</td>
                    </tr>
                </tbody>
            </table>
            </body>
        </html>Ú#)Údecimalr   r{  g–C‹lg0‘@r}  rü  )r   r   r‰   rw   r,   r-   rw  s       r   Útest_decimal_rowsÚTestReadHtml.test_decimal_rowsP  sm   € á!Üðóð$ ñ'
ð( ñ)ˆô,  8¨XÐ"6¸q¸cÑBˆà�hÑ×%Ñ%¬¯ª°)Ó)<Ó<Ð<Ð<Ü
×Ò˜fÕ/r   ÚargTFc                 ó¢   • [         R                  " S5      n[        R                  " [        US9   U" XS9  S S S 5        g ! , (       d  f       g = f)Nz–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˜  )rX  ÚescaperB   rE   r  )r`   rg   r  rY   r3   s        r   Útest_bool_header_argÚ!TestReadHtml.test_bool_header_argm  s;   € ô �iŠiðó
ˆô
 �]Š]œ9¨CÓ0Ù˜YÒ3÷ 1×0Ö0ús   °A Á 
Ac                 ó€   • U" [        S5      S[        0S9S   n[        SSS/05      n[        R                  " X#5        g )Naƒ  <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§  r   z0.763z0.244)r   rê  r   r,   r-   rw  s       r   Útest_convertersÚTestReadHtml.test_convertersx  sP   € á!Üðóð" œS�zñ%
ð& ñ'ˆô* ˜c G¨WÐ#5Ð6Ó7ˆä
×Ò˜fÕ/r   c                 ó’   • U" [        S5      S/S9S   n[        SS[        R                  /05      n[        R
                  " X#5        g )Na‚  <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   rŽ   gÑ"Ûù~jè?©r   r   rw   rŸ   r,   r-   rw  s       r   Útest_na_valuesÚTestReadHtml.test_na_values“  sQ   € á!Üðóð" �gñ%
ð& ñ'ˆô* ˜c E¬2¯6©6 ?Ð3Ó4ˆä
×Ò˜fÕ/r   c                 ó   • Sn[        SSS/05      nU" [        U5      SS9S   n[        R                  " X45        [        S[        R
                  [        R
                  /05      nU" [        U5      SS9S   n[        R                  " X45        g )	Naé  <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_nar   T)r   r   r,   r-   rw   rŸ   )r`   rY   Ú	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                 ó´   • U" [        S5      5      S   n[        SS/[        R                  [        R                  //SS/S9n[        R
                  " X#5        g )Nak  
            <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Ž   r�   rs  rt  ru  r   rw  s       r   Útest_preserve_empty_rowsÚ%TestReadHtml.test_preserve_empty_rowsÇ  sZ   € Ù!Üðóó
ð& ñ'ˆô*  C¨ :´·±¼¿¹Ð/?Ð"@È3ÐPSÈ*ÑUˆä
×Ò˜fÕ/r   c                 óž   • U" [        S5      5      S   n[        SS/SS//SS/SS//S9n[        SS	//US
9n[        R                  " X$5        g )NaU  
            <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>
        r   rs  rt  rŽ   r�   r‡   r×  rn   ru  rÚ  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                 ó¦   • [        / SQS9n/ SQ/ SQ/Ul        UR                  SS9nU" [        U5      5      S   n[        R
                  " X$5        g )N))ÚHillaryéD   rÍ  )ÚBernieéJ   rÍ  )ÚDonaldéE   ÚR)r   )r  ÚAgeÚParty)ÚNamezUnnamed: 1_level_1zUnnamed: 2_level_1Fr–   r   )r   rs   r€   r   r,   r-   )r`   rY   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                 óŠ   • U" SSSS5      nU" USS9n[        U[        5      (       d   e[        US   [        5      (       d   eg )Nr   r   r>   rQ   r   r¾  )r#   r|   r   )r`   r   rY   rS   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                 ó.   • U" SSSS5      nU" USSS/S9  g )	Nr   r   r>   rj   rÁ   rP   r:   rK   re   )r`   r   rY   rk   s       r   Útest_fallback_successÚ"TestReadHtml.test_fallback_success  s#   € á   v¨v°ÓGˆá˜¨kÀ6È:ÐBVÓWr   c                 ó´   • [        SSS9n[        [        R                  R	                  S5      R                  S5      US9nUR                  5       nSU;   d   eg )Nz
2000-01-01rá  râ  rn   )rá  ro   r–   )r   r   rw   rx   ry   Ú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                 óP  • [        SSS./5      nUR                  5       nUR                  SS9nUR                  SS9nUR                  SS9nUR                  SS9nUR                  SS9nSU;   d   eX2:X  d   eX$:X  d   eX%:w  d   eS	U;   d   eS
U;  d   eSU;  d   eXg:X  d   eg )Nr‡   rn   ©rs  rt  T)Úborderr   Fz border="1"z border="2"z border="0"z border)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                 óº   • SnU" [        U5      US9n[        R                  " US   U5        Ub  [        R                  " US   U5        g [        U5      S:X  d   eg )Na  <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_onlyr   r‡   )r   r,   r-   r(   )r`   rV  Úexp0Úexp1rY   r   rÕ   s          r   Útest_displayed_onlyÚ TestReadHtml.test_displayed_only+  sY   € ðˆñ( œx¨›~¸nÑMˆÜ
×Ò˜c !™f dÔ+àÑÜ×!Ò! # a¡&¨$Õ/ä�s“8˜q“=Ð ‘=r   rV  c                 ó~   • SnU" [        U5      US9S   n[        SS/SS/S.5      n[        R                  " XE5        g )	NaW  
        <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>
        rU  r   r‡   ro   rn   rþ   rI  rv  )r`   rV  rY   Ú
html_tabler§   rª   s         r   Ú&test_displayed_only_with_many_elementsÚ3TestReadHtml.test_displayed_only_with_many_elementsP  sK   € ðˆ
ñ  "¤(¨:Ó"6À~ÑVØñ
ˆô  A q 6°°A°Ñ7Ó8ˆÜ
×Ò˜fÕ/r   z\ignore:You provided Unicode markup but also provided a value for from_encoding.*:UserWarningc                 óê  • [         R                  R                  U5      n[         R                  R                  U5      S   nUR	                  S5      u  pV [        US5       nU" UR                  5       USS9R                  5       nS S S 5        [        US5       nU" [        UR                  5       5      USS9R                  5       n	S S S 5        U" XSS9R                  5       n
[        R                  " WW	5        [        R                  " XŠ5        g ! , (       d  f       N“= f! , (       d  f       Nb= f! [         a2    [        5       (       a!  SU;   d  SU;   a  [        R                  " 5         e f = f)Nr   Ú_Úrb)r±   rR   Ú16Ú32)r3  r4  ÚbasenameÚsplitextÚsplitr·   r¹   Úpopr   r,   r-   Ú	Exceptionr	   rB   Úskip)r`   r   rY   Ú	base_pathÚrootr`  r±   ÚfobjÚfrom_stringÚfrom_file_likeÚfrom_filenames              r   Útest_encodeÚTestReadHtml.test_encodeh  s4  € ô —G‘G×$Ñ$Ð%7Ó8ˆ	Ü�w‰w×Ñ 	Ó*¨1Ñ-ˆØ—j‘j “o‰ˆð	ÜÐ(¨$Ô/°4Ù.Ø—I‘I“K¨(¸añç‘#“%ð ÷ 0ô
 Ð(¨$Ô/°4Ù!1Ü˜DŸI™I›KÓ(°8Àqñ"ç‘#“%ð ÷ 0ñ
 -Ø"Àñç‰c‹eð ô ×!Ò! +¨~Ô>Ü×!Ò! +Õ=÷ 0Õ/ú÷
 0Õ/ûô ó 	ä"×$Ñ$Ø˜8Ó# t¨xÓ'7Ü—K’K”MØð	ús=   ÁD6 Á"%DÂD6 Â.D%Ã	A
D6 Ä
D"ÄD6 Ä%
D3Ä/D6 Ä6<E2c                 ó0  • UR                   R                  S5      S:X  a  [        R                  " S5         " S S[        5      nU" S5      nU" U5      (       d   e[        R
                  " [        SS9   U" U5        S S S 5        g ! , (       d  f       g = f)	NrA   rP   zNot applicable for lxmlc                   ó   • \ rS rSrS rSrg)ÚFTestReadHtml.test_parse_failure_unseekable.<locals>.UnseekableStringIOi�  c                 ó   • g©NFre   ra  s    r   ÚseekableÚOTestReadHtml.test_parse_failure_unseekable.<locals>.UnseekableStringIO.seekable�  s   € Ør   re   N)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__rw  Ú__static_attributes__re   r   r   ÚUnseekableStringIOrt  �  s   † õr   r~  z?
            <table><tr><td>spam<foobr />eggs</td></tr></table>z#passed a non-rewindable file objectr<   )ÚkeywordsÚgetrB   ri  r   rE   rL   )r`   rY   r~  Úbads       r   Útest_parse_failure_unseekableÚ*TestReadHtml.test_parse_failure_unseekable‰  s   € ð ×$Ñ$×(Ñ(¨Ó2°fÓ<Ü�KŠKÐ1Ô2ô	¤ô 	ñ !ðBó
ˆñ
   ×$Ñ$Ð$Ð$ä�]Š]œ:Ð-RÓSÙ˜SÔ!÷ T×SÖSús   Á5	BÂ
Bc                 ót   •  " S S5      nU" S5      nU" S5      nU" U5      (       d   eU" U5      (       d   eg )Nc                   óH   • \ rS rSrSS jrSS jrS rS rS rS\	4S	 jr
S
rg)Ú9TestReadHtml.test_parse_failure_rewinds.<locals>.MockFilei   ÚreturnNc                 ó   • Xl         SU l        g rv  )r   Úat_end)r`   r   s     r   Ú__init__ÚBTestReadHtml.test_parse_failure_rewinds.<locals>.MockFile.__init__¡  s   € Ø ”	Ø#�•r   c                 óR   • U R                   (       a  SOU R                  nSU l         U$ )NrŽ  T©r‰  r   )r`   Úsizer   s      r   r¹   Ú>TestReadHtml.test_parse_failure_rewinds.<locals>.MockFile.read¥  s   € Ø!Ÿ[Ÿ[‘r¨d¯i©i�Ø"�”Ø�r   c                 ó   • SU l         g rv  )r‰  )r`   Úoffsets     r   ÚseekÚ>TestReadHtml.test_parse_failure_rewinds.<locals>.MockFile.seekª  s	   € Ø#�•r   c                 ó   • g)NTre   ra  s    r   rw  ÚBTestReadHtml.test_parse_failure_rewinds.<locals>.MockFile.seekable­  s   € Ør   c                 ó   • g r!   re   ra  s    r   Ú__next__ÚBTestReadHtml.test_parse_failure_rewinds.<locals>.MockFile.__next__±  s   € Ør   c                 ó   • U $ r!   re   ra  s    r   Ú__iter__ÚBTestReadHtml.test_parse_failure_rewinds.<locals>.MockFile.__iter__´  s	   € ð �r   r�  )r‡  Nr!   )ry  rz  r{  r|  rŠ  r¹   r’  rw  r—  r   rš  r}  re   r   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>re   )r`   rY   rœ  Úgoodr�  s        r   Útest_parse_failure_rewindsÚ'TestReadHtml.test_parse_failure_rewinds�  sF   € ÷	ñ 	ñ2 ÐIÓJˆÙÐKÓLˆá ×%Ñ%Ð%Ð%Ù ×$Ñ$Ð$Ñ$r   c                 ó¢  •  " S S[         R                  5      nU" SSSS5      nU" X$4S9nU" X$4S9nUR                  5         UR                  5         UR                  5       (       d  UR                  5       (       a/   UR                  5       (       a  M  UR                  5       (       a  M/  S UR                  s=L a  UR                  L d   e   eg )Nc                   ó(   ^ • \ rS rSrU 4S jrSrU =r$ )Ú@TestReadHtml.test_importcheck_thread_safety.<locals>.ErrorThreadiÄ  c                 ól   >•  [         TU ]  5         S U l        g ! [         a  nXl         S nAg S nAff = fr!   )ÚsuperÚrunÚerrrh  )r`   r¦  Ú	__class__s     €r   r¥  ÚDTestReadHtml.test_importcheck_thread_safety.<locals>.ErrorThread.runÅ  s3   ø€ ð$Ü‘G‘K”Mð  $�D•Høô !ó #Ø"—H‘Hûð#ús   ƒ ™
3£.®3)r¦  )ry  rz  r{  r|  r¥  r}  Ú__classcell__)r§  s   @r   ÚErrorThreadr¢  Ä  s   ø† ÷$ó $r   rª  r   r   r>   rQ   )Útargetr1   )Ú	threadingÚThreadÚstartÚis_aliver¦  )r`   r   rY   rª  rS   Úhelper_thread1Úhelper_thread2s          r   Útest_importcheck_thread_safetyÚ+TestReadHtml.test_importcheck_thread_safety¿  s½   € ô
	$œ)×*Ñ*ô 	$ñ ˜D &¨&Ð2EÓFˆÙ$Ð,<À;ÑOˆÙ$Ð,<À;ÑOˆà×ÑÔØ×ÑÔà×%Ñ%×'Ñ'¨>×+BÑ+B×+DÑ+DØð ×%Ñ%×'Ó'¨>×+BÑ+B×+DÓ+Dà�~×)Ñ)Ô?¨^×-?Ñ-?Ò?Ð?Ñ?Ð?Ñ?r   c                 óˆ   • U" SSSS5      n[        U5      nU" U5      S   nU" U5      S   n[        R                  " XV5        g )Nr   r   r>   r?   r   )r   r,   r-   )r`   r   rY   Ú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                 ór   • U" [        S5      5      S   n[        S//S/S9n[        R                  " X#5        g )NzÓ
            <table>
                <tr>
                    <th>A</th>
                </tr>
                <tr>
                    <td>word1<br>word2</td>
                </tr>
            </table>
        r   zword1 word2rs  ru  rv  rw  s       r   Útest_parse_br_as_spaceÚ#TestReadHtml.test_parse_br_as_spaceà  sF   € á!Üð	óó
ð ñˆô  M ?Ð"3¸c¸UÑCˆä
×Ò˜fÕ/r   )r)   ÚbodyrÝ   r�  c                 óh  • Sn/ SQ/ SQ/ SQ/ SQ/ SQ/ SQS.nUS	   nUS
   nUS   nUS:X  a  US   nUS   nUS   nO#US:X  a  US   nOUS:X  a  US   nOUS:X  a  US   nU" [        U5      US9S   n[        XV/US9n	U	R                  [        R                  5      n	[
        R                  " X‰5        g )Naì  
          <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>
          )Ú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)Úhead_ignoreÚhead_extractÚbody_ignoreÚbody_extractÚfooter_ignoreÚfooter_extractrÈ  rÊ  rÆ  r)   rÉ  rË  rÇ  r¼  r�  rÝ   ©Úextract_linksr   rr   )r   r   Úfillnarw   rŸ   r,   r-   )
r`   r  rY   Úgh_13141_dataÚgh_13141_expectedÚdata_expÚfoot_expÚhead_expr§   rª   s
             r   Útest_extract_linksÚTestReadHtml.test_extract_linksõ  sï   € ðˆò0 7òò
 Pòò
ò
ñ%
Ðð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                 ó‚   • Sn[         R                  " [        US9   [        USS9  S S S 5        g ! , (       d  f       g = f)NzY`extract_links` must be one of {None, "header", "footer", "body", "all"}, got "incorrect"r<   Ú	incorrectrÌ  ©rB   rE   rL   r   )r`   rg   r3   s      r   Útest_extract_links_badÚ#TestReadHtml.test_extract_links_bad:  s3   € ðIð 	ô �]Š]œ:¨SÓ1Ü�i¨{Ò;÷ 2×1Ö1úr>  c                 ót   • SnU" [        U5      SS9S   n[        S//5      n[        R                  " X45        g )Nz¦
        <table>
          <tr>
            <td>
              <a href='https://google.com'>Google.com</a>
            </td>
          </tr>
        </table>
        r)   rÌ  r   )z
Google.comzhttps://google.comrv  ©r`   rY   r   r§   rª   s        r   Ú test_extract_links_all_no_headerÚ-TestReadHtml.test_extract_links_all_no_headerB  s?   € ðˆñ "¤(¨4£.ÀÑFÀqÑIˆÜÐCÐDÐEÓFˆÜ
×Ò˜fÕ/r   c                 ó‚   • Sn[         R                  " [        US9   [        SSS9  S S S 5        g ! , (       d  f       g = f)NzPdtype_backend numpy is invalid, only 'numpy_nullable' and 'pyarrow' are allowed.r<   ÚtestÚnumpyr˜   rØ  )r`   r3   s     r   Útest_invalid_dtype_backendÚ'TestReadHtml.test_invalid_dtype_backendQ  s2   € ð%ð 	ô �]Š]œ:¨SÓ1Ü�f¨GÒ4÷ 2×1Ö1úr>  c                 ó€   • SnU" [        U5      5      S   n[        SS/SS//SS/S	9n[        R                  " X45        g )
Na�  
        <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>
        r   ÚA1ÚB1ÚA2ÚB2rs  rt  ru  rv  rÜ  s        r   Útest_style_tagÚTestReadHtml.test_style_tagY  sI   € ðˆñ& "¤(¨4£.Ó1°!Ñ4ˆÜ D¨$ <°$¸°Ð">ÈÈcÈ
ÑSˆÜ
×Ò˜fÕ/r   re   )hry  rz  r{  r|  ra   rB   Úfixturerg   rk   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/  r7  r<  rC  rF  rI  rM  rQ  rT  rZ  r^  rb  rf  rm  rp  rx  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.  r;  r>  rA  rF  rQ  r   rY  r]  ÚtdÚskip_if_windowsÚfilterwarningsrp  r‚  rž  r²  r·  rº  rÔ  rÙ  rÝ  râ  ré  r}  re   r   r   r[   r[   l   s‚  † òð@ ‡^�^ñ;ó ð;ð ‡^�^ñ?ó ð?ò'ò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 ‡[�[×Ññ-0ó ð-0ð^ ‡[�[×Ññ	$ó ð	$òF0òP0ò2!0òF0ò@0ò:0ò*0ò8*ò-ò>ò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ð& ‡[�[×ÑØ"à‘9˜e˜WÓ% tÐ,Ø‘IÐ3Ð4Ó5±yÀ%ÀÓ7IÐJð	
óñ!óð!ð< ‡[�[×ÑÐ-°°e¨}Ó=ñ0ó >ð0ð. ×ÒÓØ‡[�[×Ñð	&óñó	ó ð
ò8"ò( %ðD ‡[�[×ÑØ‡[�[×Ññ@ó ó ð@ò.(ò0ð* ‡[�[×Ñ˜UÒ$GÓHñB0ó IðB0òH<ò0ò5õ0r   r[   )1Úcollections.abcr   Ú	functoolsr   r   r   r   r3  Úpathlibr   rX  r¬  Úurllib.errorr   rá  rw   rB   Úpandas.compatr	   Úpandas.util._test_decoratorsÚutilÚ_test_decoratorsrñ  Úpandasrz   r
   r   r   r   r   r   r   r   r   Úpandas._testingÚ_testingr,   Úpandas.io.commonr   rë  r   r7   rH   rN   rV   r   Ú
skip_if_norY   r[   re   r   r   Ú<module>r     sî   ðÝ $Ý ÷ó 
Ý Û 	Û Ý !ã Û å -ß )Ð )ã ÷
÷ 
õ 
õ å -ð ‡‚òññBóðBò
:ò(Mò@ò.ð ‡‚à�Š�U 2§=¢=°Ó#7¸¿ºÀzÓ9RÐ"SÑTØ�Š�V 2§=¢=°Ó#8Ñ9ðññ4óð4÷D0ò D0r   