Ë
    ¤ehÞ  ã            	       ó*  — d dl mZ d dlmZ d dlmZmZ d dlZd dlm	Z	 d dl
Z
d dlZd dlmZ d dlZd dlZd dlmZ d dlmc mZ d dlZd dlmZmZmZmZmZmZmZm Z m!Z! d dl"m#Z$ d d	l%m&Z&m'Z' d d
l(m)Z)  ejT                  g d¢¬«      d„ «       Z+d„ Z,d„ Z-d„ Z.d„ Z/ ejT                   ej`                  d ejb                  d«       ejb                  d«      g¬«       ej`                  d ejb                  d«      ¬«      g¬«      d„ «       Z2 G d„ d«      Z3y)é    )ÚIterator)Úpartial)ÚBytesIOÚStringION)ÚPath)ÚURLError)Úis_platform_windows)	ÚNAÚ	DataFrameÚ
MultiIndexÚSeriesÚ	TimestampÚ
date_rangeÚread_csvÚ	read_htmlÚto_datetime)ÚArrowStringArrayÚStringArray)Úfile_path_to_url)zchinese_utf-16.htmlzchinese_utf-32.htmlzchinese_utf-8.htmlzletz_latin1.html)Úparamsc                 ó,   —  |ddd| j                   «      S )z6Parametrized fixture for HTML encoding test filenames.ÚioÚdataÚhtml_encoding)Úparam)ÚrequestÚdatapaths     úW/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/pandas/tests/io/test_html.pyÚhtml_encoding_filer   (   s   € ñ �D˜& /°7·=±=ÓAÐAó    c                 ó6  — t        | «      t        |«      k(  sJ dt        | «      › dt        |«      › �«       ‚d}t        t        d„ | |«      «      }|sJ |«       ‚t        | |«      D ]2  \  }}t	        j
                  ||g|¢­i |¤Ž |j                  sŒ-J d«       ‚ y )Nz*lists are not of equal size len(list1) == z, len(list2) == z$not all list elements are DataFramesc                 óF   — t        | t        «      xr t        |t        «      S ©N©Ú
isinstancer   )ÚxÚys     r   ú<lambda>z(assert_framelist_equal.<locals>.<lambda>>   s   € œ A¤yÓ1ÒN´jÀÄIÓ6N€ r    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_equalr8   5   s¹   € Üˆu‹:œ˜U›Ò#ð ð	Ü˜U›˜ð %Ü˜U›˜ð	&óÐ#ð
 1€CÜÜÙNØØó	
ó€Kñ Ð˜Óˆ;Ü  uÓ-ò :Ñˆ�Ü
×Ñ˜g wÐ@°Ò@¸Ò@Ø—=“=Ð9Ð"9Ó9Ð ñ:r    c           	      ó
  — t        j                  d«      }t        j                  d«       | j                  |dd«       t        j                  t        d¬«      5  t         |ddd	d
«      d¬«       d d d «       y # 1 sw Y   y xY w)NÚbs4Úhtml5libÚ__version__z4.2zPandas requires version©Úmatchr   r   Úhtmlú	spam.html©Úflavor)ÚpytestÚimportorskipÚsetattrÚraisesÚImportErrorr   )Úmonkeypatchr   r:   s      r   Útest_bs4_version_failsrI   I   so   € Ü
×
Ñ
˜eÓ
$€CÜ
×Ñ˜
Ô#à×Ñ˜˜]¨EÔ2Ü	�‰”{Ð*CÔ	Dñ MÜ‘(˜4 ¨°Ó=ÀeÕL÷M÷ Mñ Mús   ÁA9Á9Bc                  óª   — d} d}d|z   dz   }t        j                  t        |¬«      5  t        t	        | «      d|¬«       d d d «       y # 1 sw Y   y xY w)Nz
google.comzinvalid flavorz\{z \} is not a valid set of flavorsr=   Úgoogle©r>   rB   )rC   rF   Ú
ValueErrorr   r   )ÚurlrB   r4   s      r   Útest_invalid_flavorrO   R   sR   € Ø
€CØ€FØ
�&‰.Ð>Ñ
>€Cä	�‰”z¨Ô	-ñ @Ü”(˜3“- x¸Õ?÷@÷ @ñ @ús   ¨A	Á	Ac                 óì   — t        j                  d«       t        j                  d«       t        j                  d«        | dddd«      }t        |ddg¬	«      }t        |ddg¬	«      }t        ||«       y )
Nr:   Úlxmlr;   r   r   r?   úvalid_markup.htmlr   )Ú	index_colrB   )rC   rD   r   r8   )r   ÚfilenameÚdfs_lxmlÚdfs_bs4s       r   Útest_same_orderingrW   [   sg   € Ü
×Ñ˜ÔÜ
×Ñ˜ÔÜ
×Ñ˜
Ô#á˜˜f fÐ.AÓB€HÜ˜¨Q¸°xÔ@€HÜ˜¨A°u°gÔ>€GÜ˜8 WÕ-r    r:   r;   )ÚmarksrQ   c                 ó8   — t        t        | j                  ¬«      S )NrA   )r   r   r   )r   s    r   Úflavor_read_htmlrZ   f   s   € ô ”9 W§]¡]Ô3Ð3r    c            	       óh	  — e Zd Zd„ Zej
                  d„ «       Zej
                  d„ «       Zd„ Zd„ Z	ej                  j                  ej                  j                  d„ «       «       Zej                  j                  ej                  j                  d„ «       «       Zej                  j                  d„ «       Zd	„ Zd
„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z d„ Z!d„ Z"d„ Z#d„ Z$ej                  j                  ej                  j                  d„ «       «       Z%ej                  j                  ej                  j                  ej                  j                  d„ «       «       «       Z&ej                  j                  d„ «       Z'ej                  j                  d „ «       Z(ej                  j                  d!„ «       Z)ej                  j                  d"„ «       Z*ej                  j                  d#„ «       Z+ej                  j                  d$„ «       Z,ej                  j                  d%„ «       Z-ej                  j                  d&„ «       Z.ej                  j                  d'„ «       Z/d(„ Z0ej
                  d)„ «       Z1ej                  j                  ej                  j                  d*„ «       «       Z2ej                  j                  ej                  j                  d+„ «       «       Z3d,„ Z4d-„ Z5d.„ Z6d/„ Z7d0„ Z8d1„ Z9ej                  j                  d2„ «       Z:ej                  j                  d3„ «       Z;d4„ Z<d5„ Z=d6„ Z>d7„ Z?d8„ Z@d9„ ZAd:„ ZBd;„ ZCd<„ ZDd=„ ZEd>„ ZFd?„ ZGd@„ ZHej                  j“                  dAdBdCg«      dD„ «       ZJdE„ ZKdF„ ZLdG„ ZMdH„ ZNdI„ ZOdJ„ ZPdK„ ZQej                  j                  dL„ «       ZRdM„ ZSdN„ ZTej                  j“                  dOdB eUdPg«      dQfdC eUdRg«       eUdPg«      fg«      dS„ «       ZVej                  j“                  dTdBdCg«      dU„ «       ZWej                  j±                  dV«      dW„ «       ZYdX„ ZZdY„ Z[ej                  j                  ej                  j                  dZ„ «       «       Z\d[„ Z]d\„ Z^ej                  j“                  dAg d]¢«      d^„ «       Z_d_„ Z`d`„ Zada„ Zbdb„ ZcyQ)cÚTestReadHtmlc                 óx   — d}t        j                  t        |¬«      5   |d«       d d d «       y # 1 sw Y   y xY w)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)ÚselfrZ   r4   s      r   Útest_literal_html_deprecationz*TestReadHtml.test_literal_html_deprecationq   s@   € ð>ð 	ô ×'Ñ'¬¸SÔAñ 	Ùðô÷	÷ 	ñ 	ús   ž	0°9c                 ó   —  |dddd«      S )Nr   r   r?   r@   © ©r`   r   s     r   Ú	spam_datazTestReadHtml.spam_data‘   s   € á˜˜f f¨kÓ:Ð:r    c                 ó   —  |dddd«      S )Nr   r   r?   úbanklist.htmlrc   rd   s     r   Úbanklist_datazTestReadHtml.banklist_data•   s   € á˜˜f f¨oÓ>Ð>r    c                 ó�  — t        t        j                  j                  d«      j                  d«      t	        j
                  t        d«      t        ¬«      ¬«      j                  dj                  «      j                  t        «      }|j                  «       } |t        |«      ddid	¬
«      d	   }t        j                  ||«       y )Né   )é   é   Úabc©Údtype©Úcolumnsz{:.3f}ÚclassÚ	dataframer   )ÚattrsrS   )r   ÚnpÚrandomÚdefault_rngÚpdÚIndexÚlistÚobjectr+   ÚformatÚastypeÚfloatÚto_htmlr   r-   r.   )r`   rZ   ÚdfÚoutÚress        r   Útest_to_html_compatz TestReadHtml.test_to_html_compat™   s—   € äÜ—	‘	×%Ñ% aÓ(×/Ñ/°Ó7ÜŸ™¤ e£´FÔ;ô÷
 ‰S�—‘Ó!§&¡&¬£-ð 	ð �j‰j‹lˆÙÜ�S‹M '¨;Ð!7À1ô
à
ñˆô 	×Ñ˜c 2Õ&r    c                 óv  — t        t        dt        j                  dgd¬«      t        g d¢d¬«      t        dt        j                  dgd¬«      t        g d	¢d¬«      g d
¢g d¢g d¢g d¢dœ«      }|dk(  rft	        t        j
                  g d¢t        j                  ¬«      «      }t	        t        j
                  ddt        gt        j                  ¬«      «      }n |dk(  rNt        j                  d«      }ddl
m}  ||j                  g d¢«      «      } ||j                  g d¢«      «      }nMt        j                  d«      }t        |j                  g d¢«      «      }t        |j                  g d¢«      «      }|j                  d¬«      }	t        j                  d|«      5   |t!        |	«      |¬«      d   }
d d d «       t        t        dt        j                  dgd¬«      t        g d¢d¬«      t        dt        j                  dgd¬«      t        g d	¢d¬«      t        ddt        gd¬«      t        g d¢d¬«      ||dœ«      }|dk(  rHdd l}ddl
m} t        |j$                  D �ci c]  }| ||j                  ||   d¬«      «      “Œ! c}«      }t'        j(                  
|«       y # 1 sw Y   ŒòxY wc c}w )Né   rl   ÚInt64rn   )r…   rj   rl   ç      ø?ç      @ÚFloat64)r‡   g       @rˆ   )TFN)TFT©ÚaÚbÚc)r‹   rŒ   N)r‹   rŒ   r�   ÚdÚeÚfÚgÚhÚpythonr‹   rŒ   Úpyarrowr   )ÚArrowExtensionArrayF©Úindexzmode.string_storage©Údtype_backendTÚboolean)Úfrom_pandas)r   r   ru   Únanr   ÚarrayÚobject_r
   rC   rD   Úpandas.arraysr•   r   r   rx   Úoption_contextr   r”   rq   r-   r.   )r`   Ústring_storager™   rZ   r€   Ústring_arrayÚstring_array_naÚpar•   r�   ÚresultÚexpectedÚcols                r   Útest_dtype_backendzTestReadHtml.test_dtype_backend¨   s@  € ää˜Q¤§¡¨˜N°'Ô:ÜšI¨WÔ5Ü˜S¤"§&¡&¨#Ð.°iÔ@ÜšO°9Ô=Ú(Ú(Ú$Ú%ñ	ó
ˆð ˜XÒ%Ü&¤r§x¡x²ÄrÇzÁzÔ'RÓSˆLÜ)¬"¯(©(°C¸¼b°>ÌÏÉÔ*TÓU‰OØ˜iÒ'Ü×$Ñ$ YÓ/ˆBÝ9á.¨r¯x©xºÓ/HÓIˆLÙ1°"·(±(Ò;KÓ2LÓM‰Oä×$Ñ$ YÓ/ˆBÜ+¨B¯H©H²_Ó,EÓFˆLÜ.¨r¯x©xÒ8HÓ/IÓJˆOà�j‰j˜uˆjÓ%ˆÜ×ÑÐ4°nÓEñ 	UÙ%¤h¨s£mÀ=ÔQÐRSÑTˆF÷	Uô ä˜Q¤§¡¨˜N°'Ô:ÜšI¨WÔ5Ü˜S¤"§&¡&¨#Ð.°iÔ@ÜšO°9Ô=Ü˜T 5¬"Ð-°YÔ?ÜÒ/°yÔAØ!Ø$ñ	ó
ˆð ˜IÒ%Û å9ä ð  (×/Ñ/öàð Ñ,¨R¯X©X°h¸s±mÐQU¨XÓ-VÓWÑWòóˆHô 	×Ñ˜f hÕ/÷9	Uð 	Uüò,s   Æ"J*É($J6Ê*J3c                 óð   — t        |d¬«      5 }|j                  |j                  «       ¬«        ||j                  d¬«      } ||j                  d¬«      }d d d «       t	        «       y # 1 sw Y   ŒxY w)Núutf-8©Úencoding©ÚcontentúFirst Federal Bank of Floridar=   úMetcalf Bank©ÚopenÚserve_contentÚreadrN   r8   )r`   Ú
httpserverrh   rZ   r�   Údf1Údf2s          r   Útest_banklist_urlzTestReadHtml.test_banklist_urlä   sr   € ô �-¨'Ô2ð 	°aØ×$Ñ$¨Q¯V©V«XÐ$Ô6Ù"à—‘Ø5ôˆCñ #Ø—‘Ø$ôˆC÷	ô 	˜s CÕ(÷	ð 	úó   ŽA	A,Á,A5c                 óð   — t        |d¬«      5 }|j                  |j                  «       ¬«        ||j                  d¬«      } ||j                  d¬«      }d d d «       t	        «       y # 1 sw Y   ŒxY w)Nrª   r«   r­   ú	.*Water.*r=   ÚUnitr±   )r`   rµ   re   rZ   r�   r¶   r·   s          r   Útest_spam_urlzTestReadHtml.test_spam_urlö   sl   € ô �) gÔ.ð 	A°!Ø×$Ñ$¨Q¯V©V«XÐ$Ô6Ù" :§>¡>¸ÔEˆCÙ" :§>¡>¸Ô@ˆC÷	Aô
 	˜s CÕ(÷	Að 	Aúr¹   c                 óP   —  ||dddi¬«      } ||dddi¬«      }t        ||«       y )Nz.*Florida.*ÚidÚtable©r>   rt   r°   ©r8   )r`   rh   rZ   r¶   r·   s        r   Útest_banklistzTestReadHtml.test_banklist   s:   € áØ °t¸W°oô
ˆñ Ø ¸¸g°ô
ˆô 	˜s CÕ(r    c                 ó    —  ||d¬«      } ||d¬«      }t        ||«       |d   j                  d   dk(  sJ ‚|d   j                  d   dk(  sJ ‚y )Nr»   r=   r¼   r   ©r   r   Ú
ProximatesÚNutrient)r8   Úilocrq   ©r`   re   rZ   r¶   r·   s        r   Ú	test_spamzTestReadHtml.test_spam  sZ   € Ù˜y°Ô<ˆÙ˜y°Ô7ˆÜ˜s CÔ(à�1‰v�{‰{˜4Ñ  LÒ0Ð0Ð0Ø�1‰v�~‰~˜aÑ  JÒ.Ð.Ñ.r    c                 óF   —  ||«      }|D ]  }t        |t        «      rŒJ ‚ y r#   r$   )r`   re   rZ   Údfsr€   s        r   Útest_spam_no_matchzTestReadHtml.test_spam_no_match  s+   € Ù˜yÓ)ˆØò 	-ˆBÜ˜b¤)Õ,Ð,Ð,ñ	-r    c                 óN   —  ||ddi¬«      }|D ]  }t        |t        «      rŒJ ‚ y )Nr¿   rÀ   )rt   r$   )r`   rh   rZ   rÌ   r€   s        r   Útest_banklist_no_matchz#TestReadHtml.test_banklist_no_match  s1   € Ù˜}°T¸7°OÔDˆØò 	-ˆBÜ˜b¤)Õ,Ð,Ð,ñ	-r    c                 ód   —  ||dd¬«      d   }|j                   d   dk(  sJ ‚|j                  rJ ‚y )Nr»   rj   ©r>   Úheaderr   rÆ   )rq   r/   )r`   re   rZ   r€   s       r   Útest_spam_headerzTestReadHtml.test_spam_header  s9   € Ù˜i¨{À1ÔEÀaÑHˆØ�z‰z˜!‰} Ò,Ð,Ð,Ø—8’8Ðˆ|�8r    c                 óH   —  ||dd¬«      } ||dd¬«      }t        ||«       y ©Nr»   r…   ©r>   Úskiprowsr¼   rÂ   rÉ   s        r   Útest_skiprows_intzTestReadHtml.test_skiprows_int"  ó(   € Ù˜y°ÀaÔHˆÙ˜y°ÀÔCˆä˜s CÕ(r    c                 ól   —  ||dt        d«      ¬«      } ||dt        d«      ¬«      }t        ||«       y ©Nr»   rj   rÖ   r¼   )Úranger8   rÉ   s        r   Útest_skiprows_rangez TestReadHtml.test_skiprows_range(  ó0   € Ù˜y°ÄeÈAÃhÔOˆÙ˜y°ÄÀqÃÔJˆä˜s CÕ(r    c                 óP   —  ||dddg¬«      } ||dddg¬«      }t        ||«       y ©Nr»   r…   rj   rÖ   r¼   rÂ   rÉ   s        r   Útest_skiprows_listzTestReadHtml.test_skiprows_list.  ó0   € Ù˜y°ÀqÈ!ÀfÔMˆÙ˜y°À!ÀQÀÔHˆä˜s CÕ(r    c                 óP   —  ||dddh¬«      } ||dddh¬«      }t        ||«       y rà   rÂ   rÉ   s        r   Útest_skiprows_setzTestReadHtml.test_skiprows_set4  râ   r    c                 óH   —  ||dd¬«      } ||dd¬«      }t        ||«       y rÕ   rÂ   rÉ   s        r   Útest_skiprows_slicez TestReadHtml.test_skiprows_slice:  rÙ   r    c                 ól   —  ||dt        d«      ¬«      } ||dt        d«      ¬«      }t        ||«       y rÛ   ©Úslicer8   rÉ   s        r   Útest_skiprows_slice_shortz&TestReadHtml.test_skiprows_slice_short@  rÞ   r    c           	      ór   —  ||dt        dd«      ¬«      } ||dt        ddd«      ¬«      }t        ||«       y )	Nr»   rj   é   rÖ   r¼   rk   r…   éÿÿÿÿrè   rÉ   s        r   Útest_skiprows_slice_longz%TestReadHtml.test_skiprows_slice_longF  s6   € Ù˜y°ÄeÈAÈqÃkÔRˆÙ˜y°ÄÀqÈ!ÈRÃÔQˆä˜s CÕ(r    c                 ó”   —  ||dt        j                  d«      ¬«      } ||dt        j                  d«      ¬«      }t        ||«       y rÛ   )ru   Úaranger8   rÉ   s        r   Útest_skiprows_ndarrayz"TestReadHtml.test_skiprows_ndarrayL  s9   € Ù˜y°ÄbÇiÁiÐPQÃlÔSˆÙ˜y°ÄÇÁÈ1ÃÔNˆä˜s CÕ(r    c                 óz   — t        j                  t        d¬«      5   ||dd¬«       d d d «       y # 1 sw Y   y xY w)Nz%is not a valid type for skipping rowsr=   r»   ÚasdfrÖ   )rC   rF   Ú	TypeError)r`   re   rZ   s      r   Útest_skiprows_invalidz"TestReadHtml.test_skiprows_invalidR  s6   € Ü�]‰]œ9Ð-TÔVñ 	LÙ˜Y¨kÀFÕK÷	L÷ 	Lñ 	Lús   œ1±:c                 óH   —  ||dd¬«      } ||dd¬«      }t        ||«       y ©Nr»   r   ©r>   rS   r¼   rÂ   rÉ   s        r   Ú
test_indexzTestReadHtml.test_indexV  s(   € Ù˜y°ÀqÔIˆÙ˜y°À!ÔDˆÜ˜s CÕ(r    c                 óL   —  ||ddd¬«      } ||ddd¬«      }t        ||«       y ©Nr»   r…   r   )r>   rÒ   rS   r¼   rÂ   rÉ   s        r   Útest_header_and_index_no_typesz+TestReadHtml.test_header_and_index_no_types[  ó-   € Ù˜y°ÀAÐQRÔSˆÙ˜y°¸qÈAÔNˆÜ˜s CÕ(r    c                 óL   —  ||ddd¬«      } ||ddd¬«      }t        ||«       y rû   rÂ   rÉ   s        r   Ú test_header_and_index_with_typesz-TestReadHtml.test_header_and_index_with_types`  rý   r    c                 óH   —  ||dd¬«      } ||dd¬«      }t        ||«       y r÷   rÂ   rÉ   s        r   Útest_infer_typeszTestReadHtml.test_infer_typese  s(   € á˜y°ÀqÔIˆÙ˜y°À!ÔDˆÜ˜s CÕ(r    c                 ó0  — t        |d¬«      5 }t        |j                  «       «      }d d d «       t        |d¬«      5 }t        |j                  «       «      }d d d «        |d¬«      } |d¬«      }t        ||«       y # 1 sw Y   ŒYxY w# 1 sw Y   Œ6xY w©NzUTF-8r«   r»   r=   r¼   )r²   r   r´   r8   )r`   re   rZ   r�   Údata1Údata2r¶   r·   s           r   Útest_string_iozTestReadHtml.test_string_iok  sŠ   € Ü�) gÔ.ð 	'°!Ü˜QŸV™V›XÓ&ˆE÷	'ô �) gÔ.ð 	'°!Ü˜QŸV™V›XÓ&ˆE÷	'ñ ˜u¨KÔ8ˆÙ˜u¨FÔ3ˆÜ˜s CÕ(÷	'ð 	'ú÷	'ð 	'ús   ŽB ½BÂ B	ÂBc                 óÌ   — t        |d¬«      5 }|j                  «       }d d d «        |t        «      d¬«      } |t        |«      d¬«      }t        ||«       y # 1 sw Y   Œ<xY wr  )r²   r´   r   r8   )r`   re   rZ   r�   r   r¶   r·   s          r   Útest_stringzTestReadHtml.test_stringv  sZ   € Ü�) gÔ.ð 	°!Ø—6‘6“8ˆD÷	ñ œx¨›~°[ÔAˆÙœx¨›~°VÔ<ˆä˜s CÕ(÷	ð 	ús   ŽAÁA#c                 óÌ   — t        |d¬«      5 } ||d¬«      }d d d «       t        |d¬«      5 } ||d¬«      }d d d «       t        «       y # 1 sw Y   Œ6xY w# 1 sw Y   Œ"xY wr  )r²   r8   )r`   re   rZ   r�   r¶   r·   s         r   Útest_file_likezTestReadHtml.test_file_like  sj   € Ü�) gÔ.ð 	9°!Ù" 1¨KÔ8ˆC÷	9ô �) gÔ.ð 	4°!Ù" 1¨FÔ3ˆC÷	4ô 	˜s CÕ(÷	9ð 	9ú÷	4ð 	4ús   ŽA®AÁAÁA#c                 óž   — |j                  dd¬«       t        j                  t        d¬«      5   |dd¬«       d d d «       y # 1 sw Y   y xY w)Nz#urlopen error unknown url type: gité”  ©Úcoder=   zgit://github.comr»   )r³   rC   rF   r   ©r`   rµ   rZ   s      r   Útest_bad_url_protocolz"TestReadHtml.test_bad_url_protocolˆ  sK   € ð 	× Ñ Ð!FÈSÐ ÔQÜ�]‰]œ8Ð+PÔQñ 	DÙÐ/°{ÕC÷	D÷ 	Dñ 	Dús   ¯AÁAc                 ó¾   — |j                  dd¬«       t        j                  t        t        fd¬«      5   ||j
                  d¬«       d d d «       y # 1 sw Y   y xY w)NzName or service not knownr  r  zHTTP Error 404: NOT FOUNDr=   r»   )r³   rC   rF   r   rM   rN   r  s      r   Útest_invalid_urlzTestReadHtml.test_invalid_url�  sS   € ð 	× Ñ Ð!<À3Ð ÔGÜ�]‰]œH¤jÐ1Ð9TÔUñ 	@Ù˜ZŸ^™^°;Õ?÷	@÷ 	@ñ 	@ús   µAÁAc                 óÄ   — |} |t        t        j                  j                  |«      «      dddi¬«      }t	        |t
        «      sJ ‚|D ]  }t	        |t        «      rŒJ ‚ y )NÚFirstr¿   rÀ   rÁ   )r   ÚosÚpathÚabspathr%   rz   r   ©r`   rh   rZ   rN   rÌ   r€   s         r   Útest_file_urlzTestReadHtml.test_file_url—  s`   € àˆÙÜœRŸW™WŸ_™_¨SÓ1Ó2¸'È$ÐPWÈô
ˆô ˜#œtÔ$Ð$Ð$Øò 	-ˆBÜ˜b¤)Õ,Ð,Ð,ñ	-r    c                 ó‚   — |}t        j                  t        d¬«      5   ||dddi¬«       d d d «       y # 1 sw Y   y xY w)NzNo tables foundr=   r¯   r¿   Ú	tasdfablerÁ   ©rC   rF   rM   )r`   rh   rZ   rN   s       r   Útest_invalid_table_attrsz%TestReadHtml.test_invalid_table_attrs¡  s@   € àˆÜ�]‰]œ:Ð->Ô?ñ 	ÙØÐ:À4ÈÐBUõ÷	÷ 	ñ 	úó   ž5µ>c                 ób   —  ||dddiddg¬«      d   }t        |j                  t        «      sJ ‚y )NÚMetcalfr¿   rÀ   r   r…   )r>   rt   rÒ   ©r%   rq   r   ©r`   rh   rZ   r€   s       r   Útest_multiindex_headerz#TestReadHtml.test_multiindex_header©  s;   € áØ °4¸°/È1ÈaÈ&ô
à
ñˆô ˜"Ÿ*™*¤jÔ1Ð1Ñ1r    c                 ób   —  ||dddiddg¬«      d   }t        |j                  t        «      sJ ‚y )Nr   r¿   rÀ   r   r…   )r>   rt   rS   )r%   r—   r   r"  s       r   Útest_multiindex_indexz"TestReadHtml.test_multiindex_index°  s<   € áØ °4¸°/ÈaÐQRÈVô
à
ñˆô ˜"Ÿ(™(¤JÔ/Ð/Ñ/r    c                 ó    —  ||dddiddgddg¬«      d   }t        |j                  t        «      sJ ‚t        |j                  t        «      sJ ‚y )Nr   r¿   rÀ   r   r…   )r>   rt   rÒ   rS   )r%   rq   r   r—   r"  s       r   Útest_multiindex_header_indexz)TestReadHtml.test_multiindex_header_index·  s[   € áØØØ˜�/Ø�q�6Ø˜!�fô
ð ñˆô ˜"Ÿ*™*¤jÔ1Ð1Ð1Ü˜"Ÿ(™(¤JÔ/Ð/Ñ/r    c                 ód   —  ||dddiddgd¬«      d   }t        |j                  t        «      sJ ‚y ©Nr   r¿   rÀ   r   r…   )r>   rt   rÒ   r×   r!  r"  s       r   Ú&test_multiindex_header_skiprows_tuplesz3TestReadHtml.test_multiindex_header_skiprows_tuplesÃ  óC   € áØØØ˜�/Ø�q�6Øô
ð ñˆô ˜"Ÿ*™*¤jÔ1Ð1Ñ1r    c                 ód   —  ||dddiddgd¬«      d   }t        |j                  t        «      sJ ‚y r)  r!  r"  s       r   Útest_multiindex_header_skiprowsz,TestReadHtml.test_multiindex_header_skiprowsÎ  r+  r    c                 ó¢   —  ||dddiddgddgd¬«      d   }t        |j                  t        «      sJ ‚t        |j                  t        «      sJ ‚y )Nr   r¿   rÀ   r   r…   )r>   rt   rÒ   rS   r×   )r%   r—   r   rq   r"  s       r   Ú%test_multiindex_header_index_skiprowsz2TestReadHtml.test_multiindex_header_index_skiprowsÙ  s^   € áØØØ˜�/Ø�q�6Ø˜!�fØô
ð ñˆô ˜"Ÿ(™(¤JÔ/Ð/Ð/Ü˜"Ÿ*™*¤jÔ1Ð1Ñ1r    c                 ó  — |} |t        t        j                  j                  |«      «      t	        j
                  t	        j
                  d«      «      ddi¬«      }t        |t        «      sJ ‚|D ]  }t        |t        «      rŒJ ‚ y )NÚFloridar¿   rÀ   rÁ   )	r   r  r  r  ÚreÚcompiler%   rz   r   r  s         r   Útest_regex_idempotencyz#TestReadHtml.test_regex_idempotencyæ  ss   € àˆÙÜœRŸW™WŸ_™_¨SÓ1Ó2Ü—*‘*œRŸZ™Z¨	Ó2Ó3Ø˜�/ô
ˆô
 ˜#œtÔ$Ð$Ð$Øò 	-ˆBÜ˜b¤)Õ,Ð,Ð,ñ	-r    c                 ó~   — d}t        j                  t        |¬«      5   ||dd¬«       d d d «       y # 1 sw Y   y xY w)Nz\(you passed a negative value\)r=   ÚWaterrí   rÖ   r  )r`   re   rZ   r4   s       r   Útest_negative_skiprowsz#TestReadHtml.test_negative_skiprowsò  s:   € Ø0ˆÜ�]‰]œ:¨SÔ1ñ 	DÙ˜Y¨gÀÕC÷	D÷ 	Dñ 	Dús   ž3³<c                  ó   — y)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>
        rc   ©r`   s    r   Úpython_docszTestReadHtml.python_docs÷  s   € ð-r    c                 óp   — |j                  |¬«        ||j                  d¬«      }t        |«      dkD  sJ ‚y )Nr­   ÚPythonr=   r…   )r³   rN   r)   )r`   r:  rµ   rZ   rÌ   s        r   Útest_multiple_matchesz"TestReadHtml.test_multiple_matches(  s5   € ð 	× Ñ ¨Ð Ô5Ù˜zŸ~™~°XÔ>ˆÜ�3‹x˜!Š|Ð‰|r    c                 ó¼   — |j                  |¬«        ||j                  d¬«      }|D �cg c]  }|j                  d   dd ‘Œ }}t        |«      ddgk(  sJ ‚y c c}w )	Nr­   r<  r=   rÅ   r   rk   ÚPythÚWhat)r³   rN   rÈ   Úsorted)r`   r:  rµ   rZ   rÌ   r€   Úzzs          r   Útest_python_docs_tablez#TestReadHtml.test_python_docs_table/  sc   € ð 	× Ñ ¨Ð Ô5Ù˜zŸ~™~°XÔ>ˆØ+.Ö/ Rˆb�g‰g�d‰m˜A˜aÒ Ð/ˆÐ/Ü�b‹z˜f fÐ-Ò-Ð-Ñ-ùò 0s   «Ac                 óJ   — d} |t        |«      «      }t        |«      dk(  sJ ‚y)z@
        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`   rZ   r?   r¥   s       r   Útest_empty_tableszTestReadHtml.test_empty_tables7  s+   € ðˆñ( "¤(¨4£.Ó1ˆÜ�6‹{˜aÒÐÑr    c                 ó‚   —  |t        d«      «      d   }t        ddgddggddg¬	«      }t        j                  ||«       y )
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…   rj   rl   rk   ÚAÚB©r   rq   ©r   r   r-   r.   ©r`   rZ   r¥   r¦   s       r   Útest_multiple_tbodyz TestReadHtml.test_multiple_tbodyR  sT   € ñ "Üðóó
ð. ñ/ˆô2  A q 6¨A¨q¨6Ð"2¸SÀ#¸JÔGˆä
×Ñ˜f hÕ/r    c                 óx   —  |t        d«      «      d   }t        ddidg¬«      }t        j                  ||«       y)zt
        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—   NrJ  rK  s       r   Útest_header_and_one_columnz'TestReadHtml.test_header_and_one_columnr  sJ   € ñ
 "Üðóó
ð ñˆô"  8¨WÐ"5¸a¸SÔAˆä
×Ñ˜f hÕ/r    c                 ó|   —  |t        d«      «      d   }t        g d¢gg d¢¬«      }t        j                  ||«       y)zK
        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ÚYearrI  NrJ  rK  s       r   Útest_thead_without_trz"TestReadHtml.test_thead_without_trŒ  sL   € ñ "Üðóó
ð& ñ'ˆô* Ú-Ð.Ú7ô
ˆô
 	×Ñ˜f hÕ/r    c                 óF  — d}t        ddggddg¬«      }t        ddgddggddg¬«      }|j                  d	¬
«      }|j                  d¬
«      } |t        |«      «      d   } |t        |«      «      d   }t        j                  ||«       t        j                  ||«       y)zh
        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ÚbodyBrG  rH  rI  ÚfootAÚfootBÚ )Úfooterz%<tr><td>footA</td><th>footB</th></tr>r   N)r   r|   r   r-   r.   )	r`   rZ   Údata_templateÚ	expected1Ú	expected2r  r  Úresult1Úresult2s	            r   Útest_tfoot_readz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 yÔ1Ü
×Ñ˜g yÕ1r    c                 ó|   —  |t        d«      d¬«      d   }t        ddggd¬«      }t        j                  ||«       y )Na
  
            <table>
                <tr>
                    <td>S</td>
                    <td>I</td>
                </tr>
                <tr>
                    <td>text</td>
                    <td>1944</td>
                </tr>
            </table>
        r   ©rÒ   ÚtextrU  )ÚSÚIrp   rJ  rK  s       r   Ú&test_parse_header_of_non_string_columnz3TestReadHtml.test_parse_header_of_non_string_columnÒ  sO   € ñ "Üðóð ô
ð  ñ!ˆô$ ˜v t˜nÐ-°zÔBˆä
×Ñ˜f hÕ/r    c                 ó–  ‡— ddl mŠ ˆfd„} ||dddi¬«      d   }t         |dd	d
d«      t        t        dœ¬«      }|j                  |j                  k(  sJ ‚g d¢}g d¢}|j                  |«      j                  ||«      }	|j                  |«      }
|	}ddg}||   j                  t        «      ||<   t        j                  ||
«       y )Nr   )Ú_remove_whitespacec                 ó8   •— 	  ‰| «      S # t         $ r | cY S w xY wr#   )ÚAttributeError)r&   rn  s    €r   Útry_remove_wsz8TestReadHtml.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 Bankrt  rs  )Úpandas.io.htmlrn  r   r   Úshaper+   ÚreplaceÚapplyr   r-   r.   )r`   rh   r   rZ   rq  r€   Úground_truthÚoldÚnewÚdfnewÚgtnewÚ	convertedÚ	date_colsrn  s                @r   Útest_banklist_headerz!TestReadHtml.test_banklist_headerë  sÓ   ø€ å5ô	ñ ˜m°9ÀTÈ7ÀOÔTÐUVÑWˆÜÙ�T˜6 5¨.Ó9Ü(1Ä9ÑMô
ˆð �x‰x˜<×-Ñ-Ò-Ð-Ð-ò
ˆò
ˆð —‘�}Ó%×-Ñ-¨c°3Ó7ˆØ× Ñ  Ó/ˆØˆ	Ø# ^Ð4ˆ	Ø(¨Ñ3×9Ñ9¼+ÓFˆ	�)ÑÜ
×Ñ˜i¨Õ/r    c                 óÀ   — d}t        |d¬«      5 }|j                  «       }d d d «       |v sJ ‚ ||dddi¬«      d   }||j                  «       v sJ ‚y # 1 sw Y   Œ4xY w)NzGold Canyonrª   r«   r¿   rÀ   rÁ   r   )r²   r´   Ú	to_string)r`   rh   rZ   Úgcr�   Úraw_textr€   s          r   Útest_gold_canyonzTestReadHtml.test_gold_canyon  st   € àˆÜ�-¨'Ô2ð 	 °aØ—v‘v“xˆH÷	 ð �X‰~Ðˆ~ÙØ °t¸W°oô
à
ñˆð �R—\‘\“^Ñ#Ð#Ñ#÷	 ð 	 ús   �AÁAc                 óˆ   —  |t        d«      d¬«      d   } |t        d«      d¬«      d   }t        j                  ||«       y )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   ©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>)r   r-   r.   )r`   rZ   r¦   r¥   s       r   Útest_different_number_of_colsz*TestReadHtml.test_different_number_of_cols'  sh   € Ù#Üð óð@ ôC"
ðD ñE"ˆñH "Üðóð: ô=
ð> ñ?ˆôB 	×Ñ˜f hÕ/r    c                 ó|   —  |t        d«      «      d   }t        g d¢gg d¢¬«      }t        j                  ||«       y )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Š   )rG  rH  ÚCrp   rJ  rK  s       r   Útest_colspan_rowspan_1z#TestReadHtml.test_colspan_rowspan_1o  sD   € á!Üðóó
ð" ñ#ˆô& šoÐ.ºÔHˆä
×Ñ˜f hÕ/r    c                 ó€   —  |t        d«      d¬«      d   }t        g d¢gg d¢¬«      }t        j                  ||«       y )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   rh  )rG  rH  rH  ÚZr�  )ÚXzX.1ÚYr�  ÚWrI  rJ  rK  s       r   Ú test_colspan_rowspan_copy_valuesz-TestReadHtml.test_colspan_rowspan_copy_valuesˆ  sQ   € ñ "Üðóð" ô%
ð& ñ'ˆô* Ú+Ð,Ò6Qô
ˆô 	×Ñ˜f hÕ/r    c                 ó€   —  |t        d«      d¬«      d   }t        g d¢gg d¢¬«      }t        j                  ||«       y )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   rh  )rG  rH  rH  rH  ÚD)rG  rH  zB.1zB.2r�  rI  rJ  rK  s       r   Útest_colspan_rowspan_both_not_1z,TestReadHtml.test_colspan_rowspan_both_not_1«  sQ   € ñ "Üðóð ô
ð  ñ!ˆô$ Ú+Ð,Ò6Sô
ˆô 	×Ñ˜f hÕ/r    c                 ó€   —  |t        d«      d¬«      d   }t        ddggddg¬«      }t        j                  ||«       y )Nzñ
            <table>
                <tr>
                    <td>A</td>
                    <td rowspan="2">B</td>
                </tr>
                <tr>
                    <td>C</td>
                </tr>
            </table>
        r   rh  r�  rH  rG  rI  rJ  rK  s       r   Útest_rowspan_at_end_of_rowz'TestReadHtml.test_rowspan_at_end_of_rowË  sR   € ñ "Üð
óð ô
ð ñˆô"  C¨ : ,¸¸c¸
ÔCˆä
×Ñ˜f hÕ/r    c                 ó†   —  |t        d«      d¬«      d   }t        ddgddggddg¬«      }t        j                  ||«       y )Nz³
            <table>
                <tr>
                    <td rowspan="3">A</td>
                    <td rowspan="3">B</td>
                </tr>
            </table>
        r   rh  rG  rH  rI  rJ  rK  s       r   Útest_rowspan_only_rowsz#TestReadHtml.test_rowspan_only_rowsè  sY   € ñ "Üðó	ð ô
ð ñˆô  C¨ :°°S¨zÐ":ÀSÈ#ÀJÔOˆä
×Ñ˜f hÕ/r    c                 óª   —  |t        d«      «      d   }t        ddgddggddgddgg¬«      }t        dd	gg|¬
«      }t        j                  ||«       y )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   rG  rH  r‹   rŒ   r…   ©ÚlevelsÚcodesrj   rI  ©r   r   r   r-   r.   ©r`   rZ   r¥   rq   r¦   s        r   Ú+test_header_inferred_from_rows_with_only_thz8TestReadHtml.test_header_inferred_from_rows_with_only_thý  sn   € á!Üðóó
ð& ñ'ˆô*  c¨3 Z°#°s°Ð$<ÀaÈÀVÈaÐQRÈVÐDTÔUˆÜ A q 6 (°GÔ<ˆä
×Ñ˜f hÕ/r    c                 ó  — t        dt        dd¬«      i«      }|j                  «       } |t        |«      dgd¬«      }t	        j
                  ||d   «        |t        |«      dgd¬«      }t	        j
                  ||d   «       y )NÚdateú1/1/2001é
   ©Úperiodsr…   r   ©Úparse_datesrS   )r   r   r   r   r-   r.   )r`   rZ   r€   r¦   r‚   s        r   Útest_parse_dates_listz"TestReadHtml.test_parse_dates_list  sv   € Ü˜¤
¨:¸rÔ BÐCÓDˆØ—:‘:“<ˆÙœx¨Ó1À¸sÈaÔPˆÜ
×Ñ˜b # a¡&Ô)Ùœx¨Ó1À¸xÐSTÔUˆÜ
×Ñ˜b # a¡&Õ)r    c                 ó$  — t        t        dd¬«      «      }t        |j                  d„ «      |j                  d„ «      dœ«      } |t	        |j                  «       «      ddd	gid¬
«      }t        d|i«      }t        j                  ||d   «       y )Nr¥  r¦  r§  c                 ó4   — t        | j                  «       «      S r#   )Ústrr¤  ©r&   s    r   r(   z7TestReadHtml.test_parse_dates_combine.<locals>.<lambda>%  ó   € ´°A·F±F³H³€ r    c                 ó4   — t        | j                  «       «      S r#   )r®  Útimer¯  s    r   r(   z7TestReadHtml.test_parse_dates_combine.<locals>.<lambda>&  r°  r    )r¤  r²  Údatetimer…   rj   r©  r   )r   r   r   r+   r   r   r-   r.   )r`   rZ   Ú	raw_datesr€   r‚   Únewdfs         r   Útest_parse_dates_combinez%TestReadHtml.test_parse_dates_combine!  s‰   € Üœ: j¸"Ô=Ó>ˆ	Üà!Ÿ™Ñ&=Ó>Ø!Ÿ™Ñ&=Ó>ñó
ˆñ Ü�R—Z‘Z“\Ó"°¸aÀ¸VÐ0DÐPQô
ˆô ˜: yÐ1Ó2ˆÜ
×Ñ˜e S¨¡VÕ,r    c                 óÞ  —  |dddd«      }t         j                  j                  |«      sJ t        |«      › d�«       ‚t         j                  j	                  |«      sJ t        |«      › d�«       ‚ ||dd¬	«      d
   }|j
                  dk(  sJ ‚d|j                  d   v sJ ‚|d   j                  t        j                  d«      k(  sJ ‚t        j                  |j                  d   d«      sJ ‚y )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)r  r  ÚisfileÚreprÚgetsizery  rq   ro   ru   ÚallcloseÚloc©r`   r   rZ   r   r¥   s        r   Útest_wikipedia_states_tablez(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                 ó  —  |dddd«      } ||dd¬«      d   }|j                   dk(  sJ ‚d	|j                  d
   d   v sJ ‚|j                  j                  dk(  sJ ‚t        j                  |j
                  d   d«      sJ ‚y )Nr   r   r?   r¸  r¹  r   rø   )rº  é   r¼  rí   r…   rj   )ÚAlaska)zTotal area[2]r½  r¿  )ry  rq   Únlevelsru   rÃ  rÄ  rÅ  s        r   Ú test_wikipedia_states_multiindexz-TestReadHtml.test_wikipedia_states_multiindex9  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ÑWr    c                 óª   —  |t        d«      ddg¬«      }t        ddggt        j                  ddg«      ¬	«      }t	        j
                  |d   |«       y )
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…   rh  r‹   rŒ   )úUnnamed: 0_level_0rG  )zUnnamed: 1_level_0rH  rp   )r   r   r   Úfrom_tuplesr-   r.   rK  s       r   Ú%test_parser_error_on_empty_header_rowz2TestReadHtml.test_parser_error_on_empty_header_rowA  sd   € Ù!Üð
óð �q�6ô
ˆô  Ø�3ˆZˆLÜ×*Ñ*Ø,Ð.IÐJóô
ˆô 	×Ñ˜f Q™i¨Õ2r    c                 óÊ   —  |t        d«      d¬«      d   }t        ddidg¬«      }|d   j                  t        j                  d«      k(  sJ ‚t	        j
                  ||«       y )	Na�  <html>
            <body>
             <table>
                <thead>
                    <tr>
                        <th>Header</th>
                    </tr>
                </thead>
                <tbody>
                    <tr>
                        <td>1100#101</td>
                    </tr>
                </tbody>
            </table>
            </body>
        </html>ú#)Údecimalr   rN  g–C‹lg0‘@rP  r¾  )r   r   ro   ru   r-   r.   rK  s       r   Útest_decimal_rowszTestReadHtml.test_decimal_rowsZ  so   € á!Üðóð$ ô'
ð( ñ)ˆô,  8¨XÐ"6¸q¸cÔBˆà�hÑ×%Ñ%¬¯©°)Ó)<Ò<Ð<Ð<Ü
×Ñ˜f hÕ/r    ÚargTFc                 ó¢   — t        j                  d«      }t        j                  t        |¬«      5   |||¬«       d d d «       y # 1 sw Y   y xY w)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=   rh  )r2  ÚescaperC   rF   rô   )r`   re   rÔ  rZ   r4   s        r   Útest_bool_header_argz!TestReadHtml.test_bool_header_argw  sF   € ô �i‰iðó
ˆô
 �]‰]œ9¨CÔ0ñ 	4Ù˜Y¨sÕ3÷	4÷ 	4ñ 	4ús   ±AÁAc                 ó†   —  |t        d«      dt        i¬«      d   }t        dddgi«      }t        j                  ||«       y )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‹   ru  r   z0.763z0.244)r   r®  r   r-   r.   rK  s       r   Útest_converterszTestReadHtml.test_converters‚  sR   € á!Üðóð" œS�zô%
ð& ñ'ˆô* ˜c G¨WÐ#5Ð6Ó7ˆä
×Ñ˜f hÕ/r    c                 ó˜   —  |t        d«      dg¬«      d   }t        ddt        j                  gi«      }t	        j
                  ||«       y )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   ru   rœ   r-   r.   rK  s       r   Útest_na_valueszTestReadHtml.test_na_values�  sS   € á!Üðóð" �gô%
ð& ñ'ˆô* ˜c E¬2¯6©6 ?Ð3Ó4ˆä
×Ñ˜f hÕ/r    c                 ó,  — d}t        dddgi«      } |t        |«      d¬«      d   }t        j                  ||«       t        dt        j
                  t        j
                  gi«      } |t        |«      d¬«      d   }t        j                  ||«       y )	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.   ru   rœ   )r`   rZ   Ú	html_dataÚexpected_dfÚhtml_dfs        r   Útest_keep_default_naz!TestReadHtml.test_keep_default_na¸  s†   € ð ˆ	ô     u¨d mÐ 4Ó5ˆÙ"¤8¨IÓ#6ÈÔNÈqÑQˆÜ
×Ñ˜k¨7Ô3ä ¤r§v¡v¬r¯v©vÐ&6Ð 7Ó8ˆÙ"¤8¨IÓ#6ÈÔMÈaÑPˆÜ
×Ñ˜k¨7Õ3r    c                 óº   —  |t        d«      «      d   }t        ddgt        j                  t        j                  ggddg¬«      }t	        j
                  ||«       y )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Œ   rG  rH  rI  rÜ  rK  s       r   Útest_preserve_empty_rowsz%TestReadHtml.test_preserve_empty_rowsÑ  s\   € Ù!Üðóó
ð& ñ'ˆô*  C¨ :´·±¼¿¹Ð/?Ð"@È3ÐPSÈ*ÔUˆä
×Ñ˜f hÕ/r    c                 óª   —  |t        d«      «      d   }t        ddgddggddgddgg¬«      }t        dd	gg|¬
«      }t        j                  ||«       y )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   rG  rH  r‹   rŒ   r…   r�  rj   rI  r   r¡  s        r   Ú,test_ignore_empty_rows_when_inferring_headerz9TestReadHtml.test_ignore_empty_rows_when_inferring_headerë  sn   € Ù!Üðóó
ð ñˆô"  c¨3 Z°#°s°Ð$<ÀaÈÀVÈaÐQRÈVÐDTÔUˆÜ A q 6 (°GÔ<ˆä
×Ñ˜f hÕ/r    c                 ó²   — t        g d¢¬«      }g d¢g d¢g|_        |j                  d¬«      } |t        |«      «      d   }t	        j
                  ||«       y )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   rq   r   r   r-   r.   )r`   rZ   rá  r?   râ  s        r   Útest_multiple_header_rowsz&TestReadHtml.test_multiple_header_rows  sY   € äÚQô
ˆò 3Ú@ð
ˆÔð ×"Ñ"¨Ð"Ó/ˆÙ"¤8¨D£>Ó2°1Ñ5ˆÜ
×Ñ˜k¨7Õ3r    c                 ó|   —  |dddd«      } ||d¬«      }t        |t        «      sJ ‚t        |d   t        «      sJ ‚y )Nr   r   r?   rR   r   rŠ  )r%   rz   r   )r`   r   rZ   rT   rÌ   s        r   Útest_works_on_valid_markupz'TestReadHtml.test_works_on_valid_markup  sC   € Ù˜D &¨&Ð2EÓFˆÙ˜x°1Ô5ˆÜ˜#œtÔ$Ð$Ð$Ü˜#˜a™&¤)Ô,Ð,Ñ,r    c                 ó4   —  |dddd«      } ||dddg¬«       y )	Nr   r   r?   rg   r»   rQ   r;   rL   rc   )r`   r   rZ   rh   s       r   Útest_fallback_successz"TestReadHtml.test_fallback_success  s#   € á   v¨v°ÓGˆá˜¨kÀ6È:ÐBVÖWr    c                 ó¼   — t        dd¬«      }t        t        j                  j	                  d«      j                  d«      |¬«      }|j                  «       }d|v sJ ‚y )Nz
2000-01-01r¦  r§  rj   )r¦  rk   r–   )r   r   ru   rv   rw   Ústandard_normalr   )r`   Úrngr€   r¥   s       r   Útest_to_html_timestampz#TestReadHtml.test_to_html_timestamp  sN   € Ü˜¨rÔ2ˆÜ”r—y‘y×,Ñ,¨QÓ/×?Ñ?ÀÓHÐPSÔTˆà—‘“ˆØ˜vÑ%Ð%Ñ%r    c                 ó^  — t        dddœg«      }|j                  «       }|j                  d¬«      }|j                  d¬«      }|j                  d¬«      }|j                  d¬«      }|j                  d¬«      }d|v sJ ‚||k(  sJ ‚||k(  sJ ‚||k7  sJ ‚d	|v sJ ‚d
|vsJ ‚d|vsJ ‚||k(  sJ ‚y )Nr…   rj   ©rG  rH  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_borderlessz$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Ð4Ø!Ð%@Ò@Ð@Ð@Ø!Ð%:Ò:Ð:Ð:ØÐ 5Ñ5Ð5Ð5Ø OÑ3Ð3Ð3ØÐ 0Ñ0Ð0Ð0ØÐ"2Ò2Ð2Ñ2r    zdisplayed_only,exp0,exp1ÚfooNzfoo  bar  baz  quxc                 ó¸   — d} |t        |«      |¬«      }t        j                  |d   |«       |�t        j                  |d   |«       y t        |«      dk(  sJ ‚y )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`   r	  Úexp0Úexp1rZ   r   rÌ   s          r   Útest_displayed_onlyz TestReadHtml.test_displayed_only5  sY   € ðˆñ( œx¨›~¸nÔMˆÜ
×Ñ˜c !™f dÔ+àÐÜ×!Ñ! # a¡&¨$Õ/ä�s“8˜q’=Ð ‘=r    r	  c                 ó„   — d} |t        |«      |¬«      d   }t        ddgddgdœ«      }t        j                  ||«       y )	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>
        r  r   r…   rk   rj   rì   rý  rJ  )r`   r	  rZ   Ú
html_tabler¥   r¦   s         r   Ú&test_displayed_only_with_many_elementsz3TestReadHtml.test_displayed_only_with_many_elementsZ  sM   € ðˆ
ñ  "¤(¨:Ó"6À~ÔVØñ
ˆô  A q 6°°A°Ñ7Ó8ˆÜ
×Ñ˜f hÕ/r    z\ignore:You provided Unicode markup but also provided a value for from_encoding.*:UserWarningc                 óÔ  — t         j                  j                  |«      }t         j                  j                  |«      d   }|j	                  d«      \  }}	 t        |d«      5 } ||j                  «       |d¬«      j                  «       }d d d «       t        |d«      5 } |t        |j                  «       «      |d¬«      j                  «       }	d d d «        |||d¬«      j                  «       }
t        j                  	«       t        j                  ||
«       y # 1 sw Y   Œ”xY w# 1 sw Y   Œ[xY w# t        $ r( t        «       rd|v sd|v rt        j                  «        ‚ w xY w)Nr   Ú_Úrb)r¬   rS   Ú16Ú32)r  r  ÚbasenameÚsplitextÚsplitr²   r´   Úpopr   r-   r.   Ú	Exceptionr	   rC   Úskip)r`   r   rZ   Ú	base_pathÚrootr  r¬   ÚfobjÚfrom_stringÚfrom_file_likeÚfrom_filenames              r   Útest_encodezTestReadHtml.test_encoder  sE  € ô
 —G‘G×$Ñ$Ð%7Ó8ˆ	Ü�w‰w×Ñ 	Ó*¨1Ñ-ˆØ—j‘j “o‰ˆˆ8ð	ÜÐ(¨$Ó/ð °4Ù.Ø—I‘I“K¨(¸aôç‘#“%ð ÷ô
 Ð(¨$Ó/ð °4Ù!1Ü˜DŸI™I›KÓ(°8Àqô"ç‘#“%ð ÷ñ
 -Ø"¨XÀôç‰c‹eð ô ×!Ñ! +¨~Ô>Ü×!Ñ! +¨}Õ=÷ð ú÷
ð ûô ò 	ä"Ô$Ø˜8Ñ# t¨xÑ'7Ü—K‘K”MØð	ús=   ÁD6 Á#(DÂD6 Â1D*ÃAD6 ÄD'Ä#D6 Ä*D3Ä/D6 Ä61E'c                 ó  — |j                   j                  d«      dk(  rt        j                  d«        G d„ dt        «      } |d«      } ||«      sJ ‚t        j
                  t        d¬«      5   ||«       d d d «       y # 1 sw Y   y xY w)	NrB   rQ   zNot applicable for lxmlc                   ó   — e Zd Zd„ Zy)úFTestReadHtml.test_parse_failure_unseekable.<locals>.UnseekableStringIOc                  ó   — y©NFrc   r9  s    r   ÚseekablezOTestReadHtml.test_parse_failure_unseekable.<locals>.UnseekableStringIO.seekable™  s   € Ør    N)Ú__name__Ú
__module__Ú__qualname__r'  rc   r    r   ÚUnseekableStringIOr$  ˜  s   „ ór    r+  z?
            <table><tr><td>spam<foobr />eggs</td></tr></table>z#passed a non-rewindable file objectr=   )ÚkeywordsÚgetrC   r  r   rF   rM   )r`   rZ   r+  Úbads       r   Útest_parse_failure_unseekablez*TestReadHtml.test_parse_failure_unseekable’  s„   € ð ×$Ñ$×(Ñ(¨Ó2°fÒ<Ü�K‰KÐ1Ô2ô	¤ô 	ñ !ðBó
ˆñ
   Ô$Ð$Ð$ä�]‰]œ:Ð-RÔSñ 	"Ù˜SÔ!÷	"÷ 	"ñ 	"ús   Á0	BÂBc                 ó`   —  G d„ d«      } |d«      } |d«      } ||«      sJ ‚ ||«      sJ ‚y )Nc                   ó:   — e Zd Zd	d„Zd
d„Zd„ Zd„ Zd„ Zdefd„Z	y)ú9TestReadHtml.test_parse_failure_rewinds.<locals>.MockFileÚreturnNc                 ó    — || _         d| _        y r&  )r   Úat_end)r`   r   s     r   Ú__init__zBTestReadHtml.test_parse_failure_rewinds.<locals>.MockFile.__init__ª  s   € Ø �”	Ø#�•r    c                 óH   — | j                   rdn| j                  }d| _         |S )Nr_  T)r5  r   )r`   Úsizer   s      r   r´   z>TestReadHtml.test_parse_failure_rewinds.<locals>.MockFile.read®  s   € Ø!Ÿ[š[‘r¨d¯i©i�Ø"�”Ø�r    c                 ó   — d| _         y r&  )r5  )r`   Úoffsets     r   Úseekz>TestReadHtml.test_parse_failure_rewinds.<locals>.MockFile.seek³  s	   € Ø#�•r    c                  ó   — y)NTrc   r9  s    r   r'  zBTestReadHtml.test_parse_failure_rewinds.<locals>.MockFile.seekable¶  s   € Ør    c                  ó   — y r#   rc   r9  s    r   Ú__next__zBTestReadHtml.test_parse_failure_rewinds.<locals>.MockFile.__next__º  s   € Ør    c                 ó   — | S r#   rc   r9  s    r   Ú__iter__zBTestReadHtml.test_parse_failure_rewinds.<locals>.MockFile.__iter__½  s	   € ð �r    )r3  Nr#   )
r(  r)  r*  r6  r´   r;  r'  r>  r   r@  rc   r    r   ÚMockFiler2  ©  s'   „ ó$óò
$òòð (ô r    rA  z/<table><tr><td>spam<br />eggs</td></tr></table>z2<table><tr><td>spam<foobr />eggs</td></tr></table>rc   )r`   rZ   rA  Úgoodr.  s        r   Útest_parse_failure_rewindsz'TestReadHtml.test_parse_failure_rewinds¦  s@   € ÷	ñ 	ñ2 ÐIÓJˆÙÐKÓLˆá Ô%Ð%Ð%Ù Ô$Ð$Ñ$r    c                 ó‚  —  G d„ dt         j                  «      } |dddd«      } |||f¬«      } |||f¬«      }|j                  «        |j                  «        |j                  «       s|j                  «       r#	 |j                  «       rŒ|j                  «       rŒ#d |j                  cxu r|j                  u sJ ‚ J ‚y )Nc                   ó   ‡ — e Zd Zˆ fd„Zˆ xZS )ú@TestReadHtml.test_importcheck_thread_safety.<locals>.ErrorThreadc                 ól   •— 	 t         ‰| �  «        d | _        y # t        $ r}|| _        Y d }~y d }~ww xY wr#   )ÚsuperÚrunÚerrr  )r`   rJ  Ú	__class__s     €r   rI  zDTestReadHtml.test_importcheck_thread_safety.<locals>.ErrorThread.runÎ  s5   ø€ ð$Ü‘G‘K”Mð  $�D•Høô !ò #Ø"�D—H‘Hûð#ús   ƒ ™	3¢.®3)r(  r)  r*  rI  Ú__classcell__)rK  s   @r   ÚErrorThreadrF  Í  s   ø„ ÷$ð $r    rM  r   r   r?   rR   )Útargetr2   )Ú	threadingÚThreadÚstartÚis_aliverJ  )r`   r   rZ   rM  rT   Úhelper_thread1Úhelper_thread2s          r   Útest_importcheck_thread_safetyz+TestReadHtml.test_importcheck_thread_safetyÈ  sµ   € ô
	$œ)×*Ñ*ô 	$ñ ˜D &¨&Ð2EÓFˆÙ$Ð,<ÀHÀ;ÔOˆÙ$Ð,<ÀHÀ;ÔOˆà×ÑÔØ×ÑÔà×%Ñ%Ô'¨>×+BÑ+BÔ+DØð ×%Ñ%Õ'¨>×+BÑ+BÕ+Dà�~×)Ñ)Ó?¨^×-?Ñ-?Ñ?Ð?Ñ?Ð?Ñ?r    c                 óˆ   —  |dddd«      }t        |«      } ||«      d   } ||«      d   }t        j                  ||«       y )Nr   r   r?   r@   r   )r   r-   r.   )r`   r   rZ   Úfile_path_stringÚ	file_pathr¶   r·   s          r   Útest_parse_path_objectz#TestReadHtml.test_parse_path_objectá  sM   € á# D¨&°&¸+ÓFÐÜÐ)Ó*ˆ	ÙÐ/Ó0°Ñ3ˆÙ˜yÓ)¨!Ñ,ˆÜ
×Ñ˜c 3Õ'r    c                 óx   —  |t        d«      «      d   }t        dggdg¬«      }t        j                  ||«       y )NzÓ
            <table>
                <tr>
                    <th>A</th>
                </tr>
                <tr>
                    <td>word1<br>word2</td>
                </tr>
            </table>
        r   zword1 word2rG  rI  rJ  rK  s       r   Útest_parse_br_as_spacez#TestReadHtml.test_parse_br_as_spaceé  sH   € á!Üð	óó
ð ñˆô  M ?Ð"3¸c¸UÔCˆä
×Ñ˜f hÕ/r    )r*   ÚbodyrÒ   r`  c                 ón  — d}g d¢g d¢g d¢g d¢g d¢g d¢dœ}|d	   }|d
   }|d   }|dk(  r|d   }|d   }|d   }n |dk(  r|d   }n|dk(  r|d   }n
|dk(  r|d   } |t        |«      |¬«      d   }t        ||g|¬«      }	|	j                  t        j                  «      }	t        j                  ||	«       y )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`  ))ra  zhttps://en.wikipedia.org/)rb  zftp://ftp.us.debian.org/)r`  N)ÚFooterú$Multiple links: Only first captured.N))rc  z)https://en.wikipedia.org/wiki/Page_footer)rd  Ú1N)Úhead_ignoreÚhead_extractÚbody_ignoreÚbody_extractÚfooter_ignoreÚfooter_extractrh  rj  rf  r*   ri  rk  rg  r\  r`  rÒ   ©Úextract_linksr   rp   )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_linksz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 hÕ/r    c                 ó‚   — d}t        j                  t        |¬«      5  t        |d¬«       d d d «       y # 1 sw Y   y xY w)NzY`extract_links` must be one of {None, "header", "footer", "body", "all"}, got "incorrect"r=   Ú	incorrectrl  ©rC   rF   rM   r   )r`   re   r4   s      r   Útest_extract_links_badz#TestReadHtml.test_extract_links_badC  s<   € ðIð 	ô �]‰]œ:¨SÔ1ñ 	<Ü�i¨{Õ;÷	<÷ 	<ñ 	<úr  c                 óz   — d} |t        |«      d¬«      d   }t        dgg«      }t        j                  ||«       y )Nz¦
        <table>
          <tr>
            <td>
              <a href='https://google.com'>Google.com</a>
            </td>
          </tr>
        </table>
        r*   rl  r   )z
Google.comzhttps://google.comrJ  ©r`   rZ   r   r¥   r¦   s        r   Ú test_extract_links_all_no_headerz-TestReadHtml.test_extract_links_all_no_headerK  sA   € ðˆñ "¤(¨4£.ÀÔFÀqÑIˆÜÐCÐDÐEÓFˆÜ
×Ñ˜f hÕ/r    c                 ó‚   — d}t        j                  t        |¬«      5  t        dd¬«       d d d «       y # 1 sw Y   y xY w)NzPdtype_backend numpy is invalid, only 'numpy_nullable' and 'pyarrow' are allowed.r=   ÚtestÚnumpyr˜   rw  )r`   r4   s     r   Útest_invalid_dtype_backendz'TestReadHtml.test_invalid_dtype_backendZ  s;   € ð%ð 	ô �]‰]œ:¨SÔ1ñ 	5Ü�f¨GÕ4÷	5÷ 	5ñ 	5úr  c                 ó†   — d} |t        |«      «      d   }t        ddgddggddg¬	«      }t        j                  ||«       y )
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ÚB2rG  rH  rI  rJ  rz  s        r   Útest_style_tagzTestReadHtml.test_style_tagb  sK   € ðˆñ& "¤(¨4£.Ó1°!Ñ4ˆÜ D¨$ <°$¸°Ð">ÈÈcÈ
ÔSˆÜ
×Ñ˜f hÕ/r    )dr(  r)  r*  ra   rC   Úfixturere   rh   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  r  r  r#  r%  r'  r*  r-  r/  r4  r7  r:  r=  rC  rE  rL  rQ  rY  rf  rl  rƒ  rˆ  r‹  rŽ  r”  r—  r™  r›  r¢  r«  r¶  rÆ  rË  rÏ  rÓ  Úparametrizer×  rÙ  rÝ  rã  rå  rç  ró  rõ  r÷  rû  r  r   r  r  Úfilterwarningsr!  r/  rC  rU  rY  r[  rt  rx  r{  r  r…  rc   r    r   r\   r\   p   sp  „ òð@ ‡^�^ñ;ó ð;ð ‡^�^ñ?ó ð?ò'ò:0ðx ‡[�[×ÑØ‡[�[×Ññ)ó ó ð)ð  ‡[�[×ÑØ‡[�[×Ññ)ó ó ð)ð ‡[�[×Ññ)ó ð)ò/ò-ò
-ò
ò
)ò)ò)ò)ò)ò)ò)ò)ò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\   )4Úcollections.abcr   Ú	functoolsr   r   r   r   r  Úpathlibr   r2  rO  Ú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.core.arraysr   r   Ú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÷I0ò I0r    