Ë
    u™ãj™ë  ã            	       óú  — d dl mZ d dl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mZ d dlmc mZ d dlZd dlmZ d dlmZ  ej@                  g d	¢¬
«      d„ «       Z!d„ Z"d„ Z#d„ Z$d„ Z% ej@                   ejL                  d ejN                  d«       ejN                  d«      g¬«       ejL                  d ejN                  d«      ¬«      g¬
«      d„ «       Z( G d„ d«      Z)y)é    )ÚIteratorN)Úpartial)ÚBytesIOÚStringIO)ÚPath)ÚURLError)ÚWASMÚis_platform_windows)Ú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     úd/var/www/html/python-recuperauto-other/env/lib/python3.12/site-packages/pandas/tests/io/test_html.pyÚhtml_encoding_filer      s   € ñ �D˜& /°7·=±=ÓAÐAó    c                 ó:  — t        | «      t        |«      k(  sJ dt        | «      › dt        |«      › �«       ‚d}t        t        d„ | |«      «      }|sJ |«       ‚t        | |d¬«      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                 ón   — t        | t        j                  «      xr t        |t        j                  «      S ©N©Ú
isinstanceÚpdÚ	DataFrame)ÚxÚys     r   ú<lambda>z(assert_framelist_equal.<locals>.<lambda>3   s!   € œ A¤r§|¡|Ó4ÒT¼ÀAÄrÇ|Á|Ó9T€ r   T)Ústrictz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_equalr1   *   s»   € Üˆu‹:œ˜U›Ò#ð ð	Ü˜U›˜ð %Ü˜U›˜ð	&óÐ#ð
 1€CÜÜÙTØØó	
ó€Kñ Ð˜Óˆ;Ü  u°TÔ:ò :Ñˆ�Ü
×Ñ˜g wÐ@°Ò@¸Ò@Ø—=“=Ð9Ð"9Ó9Ð ñ:r   c           	      ó  — t        j                  d«      }t        j                  d«       | j                  |dd«       t        j                  t        d¬«      5  t        j                   |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   Ú	read_html)Úmonkeypatchr   r3   s      r   Útest_bs4_version_failsrC   >   ss   € Ü
×
Ñ
˜eÓ
$€CÜ
×Ñ˜
Ô#à×Ñ˜˜]¨EÔ2Ü	�‰”{Ð*CÔ	Dñ PÜ
�‰‘X˜d F¨F°KÓ@ÈÕO÷P÷ Pñ Pús   Á!BÂBc                  ó¾   — d} d}d|z   dz   }t        j                  t        |¬«      5  t        j                  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 flavorsr6   Úgoogle©r7   r;   )r<   r?   Ú
ValueErrorr   rA   r   )Úurlr;   r-   s      r   Útest_invalid_flavorrI   G   sV   € Ø
€CØ€FØ
�&‰.Ð>Ñ
>€Cä	�‰”z¨Ô	-ñ CÜ
�‰”X˜c“]¨(¸6ÕB÷C÷ Cñ Cús   ¨"AÁAc                 ó  — t        j                  d«       t        j                  d«       t        j                  d«        | dddd«      }t        j                  |ddg¬	«      }t        j                  |ddg¬	«      }t	        ||«       y )
Nr3   Úlxmlr4   r   r   r8   úvalid_markup.htmlr   )Ú	index_colr;   )r<   r=   r   rA   r1   )r   ÚfilenameÚdfs_lxmlÚdfs_bs4s       r   Útest_same_orderingrQ   P   so   € Ü
×Ñ˜ÔÜ
×Ñ˜ÔÜ
×Ñ˜
Ô#á˜˜f fÐ.AÓB€HÜ�|‰|˜H°¸6¸(ÔC€HÜ�l‰l˜8¨q¸%¸ÔA€GÜ˜8 WÕ-r   r3   r4   )ÚmarksrK   c                 óL   — t        t        j                  | j                  ¬«      S )Nr:   )r   r   rA   r   )r   s    r   Úflavor_read_htmlrT   [   s   € ô ”2—<‘<¨¯©Ô6Ð6r   c            	       ó
  — e Zd Zd„ Zej
                  j                  ed¬«      ej
                  j                   e«       d¬«      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(„ «       Z0ej
                  j&                  d)„ «       Z1ej
                  j&                  d*„ «       Z2ej
                  j&                  d+„ «       Z3d,„ Z4ej                  d-„ «       Z5ej
                  j                  ej
                  j                   d.„ «       «       Z6ej
                  j                  ej
                  j                   d/„ «       «       Z7d0„ Z8d1„ Z9d2„ Z:d3„ Z;d4„ Z<d5„ Z=d6„ Z>ej
                  j&                  d7„ «       Z?ej
                  j&                  d8„ «       Z@d9„ ZAd:„ ZBd;„ ZCd<„ ZDd=„ ZEd>„ ZFd?„ ZGd@„ ZHdA„ ZIdB„ ZJdC„ ZKdD„ ZLdE„ ZMej
                  j�                  dFdGdHg«      dI„ «       ZOdJ„ ZPdK„ ZQdL„ ZRdM„ ZSdN„ ZTdO„ ZUdP„ ZVdQ„ ZWej
                  j&                  dR„ «       ZXdS„ ZYdT„ ZZej
                  j�                  dUdGdVgdWfdHdXg e[j¸                  dVg«      fg«      dY„ «       Z]ej
                  j�                  dZdGdHg«      d[„ «       Z^ej
                  j¿                  d\«      d]„ «       Z`d^„ Zad_„ Zbej
                  j&                  ej
                  j                   d`„ «       «       Zcda„ Zddb„ Zeej
                  j�                  dFg dc¢«      dd„ «       Zfde„ Zgdf„ Zhdg„ Zidh„ Zjdi„ ZkyW)jÚTestReadHtmlc                 óä   — t        j                  t        d¬«      5 } |d«       d d d «       j                  j                  t        j
                  t        j                  fv sJ ‚y # 1 sw Y   ŒBxY w)Nz\[Errno \d+\]r6   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<   r?   ÚOSErrorÚvalueÚerrnoÚENOENTÚEINVAL)ÚselfrT   Úexcinfos      r   Útest_literal_html_deprecationz*TestReadHtml.test_literal_html_deprecationf   s\   € ä�]‰]œ7Ð*:Ô;ð 	¸wÙðô÷	ð4 �}‰}×"Ñ"¤u§|¡|´U·\±\Ð&BÑBÐBÑB÷5	ð 	ús   œ	A&Á&A/z"limited file system access on WASM)Úreasonz1Windows reports a directory as a permission errorc                 óÖ   — |dz  }|j                  «        t        j                  t        t	        j
                  t        |«      «      ¬«      5   ||«       d d d «       y # 1 sw Y   y xY w)Nza_directory.htmlr6   )Úmkdirr<   r?   ÚIsADirectoryErrorÚreÚescapeÚstr)r]   rT   Útmp_pathÚpaths       r   Ú&test_directory_not_reported_as_missingz3TestReadHtml.test_directory_not_reported_as_missing„   sS   € ð Ð,Ñ,ˆØ�
‰
Œô �]‰]Ô,´B·I±I¼cÀ$»iÓ4HÔIñ 	#Ù˜TÔ"÷	#÷ 	#ñ 	#ús   Á	AÁA(c                 ó   —  |dddd«      S )Nr   r   r8   r9   © ©r]   r   s     r   Ú	spam_datazTestReadHtml.spam_data’   s   € á˜˜f f¨kÓ:Ð:r   c                 ó   —  |dddd«      S )Nr   r   r8   úbanklist.htmlrk   rl   s     r   Úbanklist_datazTestReadHtml.banklist_data–   s   € á˜˜f f¨oÓ>Ð>r   c                 ó˜  — t        j                  t        j                  j	                  d«      j                  d«      t        j
                  t        d«      «      ¬«      j                  dj                  «      j                  t        «      }|j                  «       } |t        |«      ddid¬	«      d   }t        j                  ||«       y )
Né   )é   é   Úabc©Úcolumnsz{:.3f}ÚclassÚ	dataframer   )ÚattrsrM   )r   r   ÚnpÚrandomÚdefault_rngÚIndexÚlistr$   ÚformatÚastypeÚfloatÚto_htmlr   r&   r'   )r]   rT   ÚdfÚoutÚress        r   Útest_to_html_compatz TestReadHtml.test_to_html_compatš   sš   € ä�L‰LÜ—	‘	×%Ñ% aÓ(×/Ñ/°Ó7ÜŸ™¤ e£Ó-ô÷ ‰S�—‘Ó!ß‰V”E‹]ð 	ð �j‰j‹lˆÙÜ�S‹M '¨;Ð!7À1ô
à
ñˆô 	×Ñ˜c 2Õ&r   c                 ó€  — t        j                  t        j                  dt         j                  dgd¬«      t        j                  g d¢d¬«      t        j                  dt         j                  dgd¬«      t        j                  g d	¢d¬«      g d
¢g d¢g d¢g d¢dœ«      }|j	                  d¬«      }t        j
                  d|«      5   |t        |«      |¬«      d   }d d d «       |dk(  r9t        j                  d«      }t        j                  |j                  «       «      }nt        j                  |«      }t        j                  t        j                  dt         j                  dgd¬«      t        j                  g d¢d¬«      t        j                  dt         j                  dgd¬«      t        j                  g d	¢d¬«      t        j                  ddt         j                  gd¬«      t        j                  g d¢d¬«      t        j                  g d¢|¬«      t        j                  g d¢|¬«      dœ«      }	|dk(  rRdd l}ddlm}
 t        j                  |	j                  D �ci c]  }| |
|j!                  |	|   d¬«      «      “Œ! c}«      }	t#        j$                  |	d¬«       y # 1 sw Y   �ŒÐxY wc c}w )Né   rt   ÚInt64)Údtype)r‰   rr   rt   ç      ø?ç      @Ú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   ÚSeriesÚNArƒ   Úoption_contextr   r<   r=   Ú
ArrowDtypeÚstringÚStringDtyperœ   Úpandas.arraysrž   rw   Úarrayr&   r'   )r]   Ústring_storager›   rT   r„   r…   ÚresultÚpaÚstring_dtypeÚexpectedrž   Úcols               r   Útest_dtype_backendzTestReadHtml.test_dtype_backend©   s  € ä�\‰\ä—Y‘Y ¤2§5¡5¨!˜}°GÔ<Ü—Y‘Yšy°Ô8Ü—Y‘Y ¤R§U¡U¨CÐ0¸	ÔBÜ—Y‘Yš°iÔ@Ú(Ú(Ú$Ú%ñ	ó
ˆð �j‰j˜uˆjÓ%ˆÜ×ÑÐ4°nÓEñ 	UÙ%¤h¨s£mÀ=ÔQÐRSÑTˆF÷	Uð ˜IÒ%Ü×$Ñ$ YÓ/ˆBÜŸ=™=¨¯©«Ó5‰LäŸ>™>¨.Ó9ˆLä—<‘<ä—Y‘Y ¤2§5¡5¨!˜}°GÔ<Ü—Y‘Yšy°Ô8Ü—Y‘Y ¤R§U¡U¨CÐ0¸	ÔBÜ—Y‘Yš°iÔ@Ü—Y‘Y  e¬R¯U©UÐ3¸9ÔEÜ—Y‘YÒ2¸)ÔDÜ—Y‘Yš°lÔCÜ—Y‘YÒ/°|ÔDñ	ó
ˆð ˜IÒ%Û å9ä—|‘|ð  (×/Ñ/öàð Ñ,¨R¯X©X°h¸s±mÐQU¨XÓ-VÓWÑWòóˆHô 	×Ñ˜f hÀ%ÖH÷I	Uñ 	Uüò8s   Ã	J.É*$J;Ê.J8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 Floridar6   úMetcalf Bank©ÚopenÚserve_contentÚreadrH   r1   )r]   Ú
httpserverrp   rT   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.*r6   ÚUnitr¸   )r]   r¼   rm   rT   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©r7   rz   r·   ©r1   )r]   rp   rT   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Â   r6   rÃ   r   ©r   r   Ú
ProximatesÚNutrient)r1   Úilocrw   ©r]   rm   rT   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                 óZ   —  ||«      }|D ]  }t        |t        j                  «      rŒJ ‚ y r   r   )r]   rm   rT   Údfsr„   s        r   Útest_spam_no_matchzTestReadHtml.test_spam_no_match  s/   € Ù˜yÓ)ˆØò 	0ˆBÜ˜b¤"§,¡,Õ/Ð/Ð/ñ	0r   c                 ób   —  ||ddi¬«      }|D ]  }t        |t        j                  «      rŒJ ‚ y )NrÆ   rÇ   ©rz   r   )r]   rp   rT   rÓ   r„   s        r   Útest_banklist_no_matchz#TestReadHtml.test_banklist_no_match  s5   € Ù˜}°T¸7°OÔDˆØò 	0ˆBÜ˜b¤"§,¡,Õ/Ð/Ð/ñ	0r   c                 ód   —  ||dd¬«      d   }|j                   d   dk(  sJ ‚|j                  rJ ‚y )NrÂ   rr   ©r7   Úheaderr   rÍ   )rw   r(   )r]   rm   rT   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‰   ©r7   Ú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Â   rr   rÞ   rÃ   )Úranger1   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‰   rr   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_set/  rê   r   c                 óH   —  ||dd¬«      } ||dd¬«      }t        ||«       y rÝ   rÉ   rÐ   s        r   Útest_skiprows_slicez TestReadHtml.test_skiprows_slice5  rá   r   c                 ól   —  ||dt        d«      ¬«      } ||dt        d«      ¬«      }t        ||«       y rã   ©Úslicer1   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Â   rr   é   rÞ   rÃ   rs   r‰   éÿÿÿÿrð   rÐ   s        r   Útest_skiprows_slice_longz%TestReadHtml.test_skiprows_slice_longA  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ã   )r{   Úaranger1   rÐ   s        r   Útest_skiprows_ndarrayz"TestReadHtml.test_skiprows_ndarrayG  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 rowsr6   rÂ   ÚasdfrÞ   )r<   r?   Ú	TypeError)r]   rm   rT   s      r   Útest_skiprows_invalidz"TestReadHtml.test_skiprows_invalidM  s6   € Ü�]‰]œ9Ð-TÔVñ 	LÙ˜Y¨kÀFÕK÷	L÷ 	Lñ 	Lús   œ1±:c                 óH   —  ||dd¬«      } ||dd¬«      }t        ||«       y ©NrÂ   r   ©r7   rM   rÃ   rÉ   rÐ   s        r   Ú
test_indexzTestReadHtml.test_indexQ  s(   € Ù˜y°ÀqÔIˆÙ˜y°À!ÔDˆÜ˜s CÕ(r   c                 óL   —  ||ddd¬«      } ||ddd¬«      }t        ||«       y ©NrÂ   r‰   r   )r7   rÚ   rM   rÃ   rÉ   rÐ   s        r   Útest_header_and_index_no_typesz+TestReadHtml.test_header_and_index_no_typesV  ó-   € Ù˜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_types`  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Â   r6   rÃ   )r¹   r   r»   r1   )r]   rm   rT   r•   Údata1Údata2r½   r¾   s           r   Útest_string_iozTestReadHtml.test_string_iof  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   r1   )r]   rm   rT   r•   r   r½   r¾   s          r   Útest_stringzTestReadHtml.test_stringq  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¹   r1   )r]   rm   rT   r•   r½   r¾   s         r   Útest_file_likezTestReadHtml.test_file_likez  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é”  ©Úcoder6   zgit://github.comrÂ   )rº   r<   r?   r   )r]   r¼   rT   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 «       t        j                  t        «      r|j                  j                  «        y y # 1 sw Y   Œ?xY w# t        j                  t        «      r|j                  j                  «        w w xY w)NzName or service not knownr  r  zHTTP Error 404: NOT FOUNDr6   rÂ   )	rº   r<   r?   r   rG   rH   r   rY   Úclose)r]   r¼   rT   Úerrs       r   Útest_invalid_urlzTestReadHtml.test_invalid_urlŠ  s©   € ð 	× Ñ Ð!<À3Ð ÔGð		"Ü—‘Üœ:Ð&Ð.Iôð DàÙ  §¡°{ÕC÷Dô
 ˜#Ÿ)™)¤XÔ.ð —	‘	—‘Õ!ð /÷Dð Dûô
 ˜#Ÿ)™)¤XÔ.ð —	‘	—‘Õ!ð /ús"   •!B ¶B	ÁB Â	BÂB Â7Cc                 óØ   — |} |t        t        j                  j                  |«      «      dddi¬«      }t	        |t
        «      sJ ‚|D ]  }t	        |t        j                  «      rŒJ ‚ y )NÚFirstrÆ   rÇ   rÈ   )r   Úosrh   Úabspathr   r   r   r   ©r]   rp   rT   rH   rÓ   r„   s         r   Útest_file_urlzTestReadHtml.test_file_urlš  sd   € àˆÙÜœRŸW™WŸ_™_¨SÓ1Ó2¸'È$ÐPWÈô
ˆô ˜#œtÔ$Ð$Ð$Øò 	0ˆBÜ˜b¤"§,¡,Õ/Ð/Ð/ñ	0r   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 foundr6   r¶   rÆ   Ú	tasdfablerÈ   ©r<   r?   rG   )r]   rp   rT   rH   s       r   Útest_invalid_table_attrsz%TestReadHtml.test_invalid_table_attrs¤  s@   € àˆÜ�]‰]œ:Ð->Ô?ñ 	ÙØÐ:À4ÈÐBUõ÷	÷ 	ñ 	ús   ž5µ>c                 óv   —  ||dddiddg¬«      d   }t        |j                  t        j                  «      sJ ‚y )NÚMetcalfrÆ   rÇ   r   r‰   )r7   rz   rÚ   ©r   rw   r   Ú
MultiIndex©r]   rp   rT   r„   s       r   Útest_multiindex_headerz#TestReadHtml.test_multiindex_header¬  s?   € áØ °4¸°/È1ÈaÈ&ô
à
ñˆô ˜"Ÿ*™*¤b§m¡mÔ4Ð4Ñ4r   c                 óv   —  ||dddiddg¬«      d   }t        |j                  t        j                  «      sJ ‚y )Nr'  rÆ   rÇ   r   r‰   )r7   rz   rM   )r   r™   r   r)  r*  s       r   Útest_multiindex_indexz"TestReadHtml.test_multiindex_index³  s@   € áØ °4¸°/ÈaÐQRÈVô
à
ñˆô ˜"Ÿ(™(¤B§M¡MÔ2Ð2Ñ2r   c                 óÈ   —  ||dddiddgddg¬«      d   }t        |j                  t        j                  «      sJ ‚t        |j                  t        j                  «      sJ ‚y )Nr'  rÆ   rÇ   r   r‰   )r7   rz   rÚ   rM   )r   rw   r   r)  r™   r*  s       r   Útest_multiindex_header_indexz)TestReadHtml.test_multiindex_header_indexº  sc   € áØØØ˜�/Ø�q�6Ø˜!�fô
ð ñˆô ˜"Ÿ*™*¤b§m¡mÔ4Ð4Ð4Ü˜"Ÿ(™(¤B§M¡MÔ2Ð2Ñ2r   c                 óx   —  ||dddiddgd¬«      d   }t        |j                  t        j                  «      sJ ‚y ©Nr'  rÆ   rÇ   r   r‰   )r7   rz   rÚ   rß   r(  r*  s       r   Ú&test_multiindex_header_skiprows_tuplesz3TestReadHtml.test_multiindex_header_skiprows_tuplesÆ  óG   € áØØØ˜�/Ø�q�6Øô
ð ñˆô ˜"Ÿ*™*¤b§m¡mÔ4Ð4Ñ4r   c                 óx   —  ||dddiddgd¬«      d   }t        |j                  t        j                  «      sJ ‚y r1  r(  r*  s       r   Útest_multiindex_header_skiprowsz,TestReadHtml.test_multiindex_header_skiprowsÑ  r3  r   c                 óÊ   —  ||dddiddgddgd¬«      d   }t        |j                  t        j                  «      sJ ‚t        |j                  t        j                  «      sJ ‚y )Nr'  rÆ   rÇ   r   r‰   )r7   rz   rÚ   rM   rß   )r   r™   r   r)  rw   r*  s       r   Ú%test_multiindex_header_index_skiprowsz2TestReadHtml.test_multiindex_header_index_skiprowsÜ  sf   € áØØØ˜�/Ø�q�6Ø˜!�fØô
ð ñˆô ˜"Ÿ(™(¤B§M¡MÔ2Ð2Ð2Ü˜"Ÿ*™*¤b§m¡mÔ4Ð4Ñ4r   c                 ó$  — |} |t        t        j                  j                  |«      «      t	        j
                  t	        j
                  d«      «      ddi¬«      }t        |t        «      sJ ‚|D ]  }t        |t        j                  «      rŒJ ‚ y )NÚFloridarÆ   rÇ   rÈ   )
r   r  rh   r  rd   Úcompiler   r   r   r   r   s         r   Útest_regex_idempotencyz#TestReadHtml.test_regex_idempotencyé  sw   € àˆÙÜœRŸW™WŸ_™_¨SÓ1Ó2Ü—*‘*œRŸZ™Z¨	Ó2Ó3Ø˜�/ô
ˆô
 ˜#œtÔ$Ð$Ð$Øò 	0ˆBÜ˜b¤"§,¡,Õ/Ð/Ð/ñ	0r   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\)r6   ÚWaterrõ   rÞ   r$  )r]   rm   rT   r-   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>
        rk   ©r]   s    r   Úpython_docszTestReadHtml.python_docsú  s   € ð-r   c                 óp   — |j                  |¬«        ||j                  d¬«      }t        |«      dkD  sJ ‚y )Nr´   ÚPythonr6   r‰   )rº   rH   r"   )r]   rA  r¼   rT   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´   rC  r6   rÌ   r   rs   ÚPythÚWhat)rº   rH   rÏ   Úsorted)r]   rA  r¼   rT   rÓ   r„   Úzzs          r   Útest_python_docs_tablez#TestReadHtml.test_python_docs_table2  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]   rT   r8   rª   s       r   Útest_empty_tableszTestReadHtml.test_empty_tables:  s+   € ðˆñ( "¤(¨4£.Ó1ˆÜ�6‹{˜aÒÐÑr   c                 ó–   —  |t        d«      «      d   }t        j                  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‰   rr   rt   rs   ÚAÚB©r   rw   ©r   r   r   r&   r'   ©r]   rT   rª   r­   s       r   Útest_multiple_tbodyz TestReadHtml.test_multiple_tbodyU  sX   € ñ "Üðóó
ð. ñ/ˆô2 —<‘< q¨! f¨q°!¨fÐ%5ÀÀS¸zÔJˆä
×Ñ˜f hÕ/r   c                 ó¼   —  |t        d«      ddi¬«      }t        |«      dk(  sJ ‚|d   }t        j                  ddggdd	g¬
«      }t	        j
                  ||«       y )Na4  
                <table>
                    <thead>
                        <tr>
                            <th></th>
                        </tr>
                    </thead>
                    <tbody>
                        <tr>
                            <td>
                                <table id="descendant">
                                    <thead>
                                        <tr>
                                            <th>A</th>
                                            <th>B</th>
                                        </tr>
                                    </thead>
                                    <tbody>
                                        <tr>
                                            <td>1</td>
                                            <td>2</td>
                                        </tr>
                                    </tbody>
                                </table>
                            </td>
                        </tr>
                    </tbody>
                </table>
            rÆ   Ú
descendantrÖ   r‰   r   rr   rN  rO  rP  )r   r"   r   r   r&   r'   )r]   rT   Útablesrª   r­   s        r   Útest_nested_tablezTestReadHtml.test_nested_tableu  sk   € á!Üð ó ð: ˜Ð&ô=
ˆô@ �6‹{˜aÒÐÐØ˜‘ˆä—<‘< q¨! f X¸¸S°zÔBˆä
×Ñ˜f hÕ/r   c                 óŒ   —  |t        d«      «      d   }t        j                  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™   NrQ  rR  s       r   Útest_header_and_one_columnz'TestReadHtml.test_header_and_one_columnž  sN   € ñ
 "Üðóó
ð ñˆô" —<‘< h°Ð%8ÀÀÔDˆä
×Ñ˜f hÕ/r   c                 ó�   —  |t        d«      «      d   }t        j                  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ÚYearrP  NrQ  rR  s       r   Útest_thead_without_trz"TestReadHtml.test_thead_without_tr¸  sP   € ñ "Üðóó
ð& ñ'ˆô* —<‘<Ú-Ð.Ú7ô
ˆô
 	×Ñ˜f hÕ/r   c                 ón  — d}t        j                  ddggddg¬«      }t        j                  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ÚbodyBrN  rO  rP  ÚfootAÚfootBÚ )Úfooterz%<tr><td>footA</td><th>footB</th></tr>r   N)r   r   r€   r   r&   r'   )	r]   rT   Údata_templateÚ	expected1Ú	expected2r  r  Úresult1Úresult2s	            r   Útest_tfoot_readzTestReadHtml.test_tfoot_readØ  s¼   € ð
ˆô$ —L‘L¨°Ð'9Ð&:ÀSÈ#ÀJÔOˆ	ä—L‘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        j                  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Ú   Útextr`  )ÚSÚIrv   rQ  rR  s       r   Ú&test_parse_header_of_non_string_columnz3TestReadHtml.test_parse_header_of_non_string_columnþ  sS   € ñ "Üðóð ô
ð  ñ!ˆô$ —<‘< &¨$ Ð 0¸*ÔEˆä
×Ñ˜f hÕ/r   c                 óV  ‡— ddl mŠ ˆfd„} ||dddi¬«      d   }t        j                   |dd	d
d«      t        j                  t        j                  dœ¬«      }|j
                  t        |«      |j
                  d   fk(  sJ ‚g d¢}g d¢}|j                  |«      j                  ||«      }	|j                  |«      }
|	}ddg}||   j                  t        j                  «      ||<   |
|
d   j                  |d   «         j                  d¬«      }
t        j                  ||
«       y )Nr   )Ú_remove_whitespacec                 ó8   •— 	  ‰| «      S # t         $ r | cY S w xY wr   )ÚAttributeError)r   ry  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©Ú
convertersr‰   )
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~  z	Bank NameT)Údrop)Úpandas.io.htmlry  r   Úread_csvÚ	TimestampÚshaper"   r$   ÚreplaceÚapplyÚto_datetimeÚisinÚreset_indexr&   r'   )r]   rp   r   rT   r|  r„   Úground_truthÚoldÚnewÚdfnewÚgtnewÚ	convertedÚ	date_colsry  s                @r   Útest_banklist_headerz!TestReadHtml.test_banklist_header  s&  ø€ å5ô	ñ ˜m°9ÀTÈ7ÀOÔTÐUVÑWˆÜ—{‘{Ù�T˜6 5¨.Ó9Ü(*¯©ÄbÇlÁlÑSô
ˆð
 �x‰xœC ›G \×%7Ñ%7¸Ñ%:Ð;Ò;Ð;Ð;ò
ˆò
ˆð —‘�}Ó%×-Ñ-¨c°3Ó7ˆØ× Ñ  Ó/ˆØˆ	Ø# ^Ð4ˆ	Ø(¨Ñ3×9Ñ9¼"¿.¹.ÓIˆ	�)ÑØ�e˜KÑ(×-Ñ-¨i¸Ñ.DÓEÑF×RÑRØð Só 
ˆô 	×Ñ˜i¨Õ/r   c                 óÀ   — d}t        |d¬«      5 }|j                  «       }d d d «       |v sJ ‚ |||ddi¬«      d   }||j                  «       v sJ ‚y # 1 sw Y   Œ4xY w)NzHeartland Bankr±   r²   rÆ   rÇ   rÈ   r   )r¹   r»   Ú	to_string)r]   rp   rT   Úgcr•   Úraw_textr„   s          r   Útest_heartland_bankz TestReadHtml.test_heartland_bankK  sl   € àˆÜ�-¨'Ô2ð 	 °aØ—v‘v“xˆH÷	 ð �X‰~Ðˆ~Ù˜m°2¸dÀG¸_ÔMÈaÑPˆØ�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   ©rM   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]   rT   r­   rª   s       r   Útest_different_number_of_colsz*TestReadHtml.test_different_number_of_colsU  sh   € Ù#Üð óð@ ôC"
ðD ñE"ˆñH "Üðóð: ô=
ð> ñ?ˆôB 	×Ñ˜f hÕ/r   c                 ó�   —  |t        d«      «      d   }t        j                  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�   )rN  rO  ÚCrv   rQ  rR  s       r   Útest_colspan_rowspan_1z#TestReadHtml.test_colspan_rowspan_1�  sH   € á!Üðóó
ð" ñ#ˆô& —<‘<¢Ð 1º?ÔKˆä
×Ñ˜f hÕ/r   c                 ó”   —  |t        d«      d¬«      d   }t        j                  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   rs  )rN  rO  rO  ÚZrž  )ÚXzX.1ÚYr¡  ÚWrP  rQ  rR  s       r   Ú test_colspan_rowspan_copy_valuesz-TestReadHtml.test_colspan_rowspan_copy_values¶  sU   € ñ "Üðóð" ô%
ð& ñ'ˆô* —<‘<Ú+Ð,Ò6Qô
ˆô 	×Ñ˜f hÕ/r   c                 ó”   —  |t        d«      d¬«      d   }t        j                  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   rs  )rN  rO  rO  rO  ÚD)rN  rO  zB.1zB.2rž  rP  rQ  rR  s       r   Útest_colspan_rowspan_both_not_1z,TestReadHtml.test_colspan_rowspan_both_not_1Ù  sU   € ñ "Üðóð ô
ð  ñ!ˆô$ —<‘<Ú+Ð,Ò6Sô
ˆô 	×Ñ˜f hÕ/r   c                 ó”   —  |t        d«      d¬«      d   }t        j                  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   rs  rž  rO  rN  rP  rQ  rR  s       r   Útest_rowspan_at_end_of_rowz'TestReadHtml.test_rowspan_at_end_of_rowù  sV   € ñ "Üð
óð ô
ð ñˆô" —<‘< s¨C j \¸CÀ¸:ÔFˆä
×Ñ˜f hÕ/r   c                 óš   —  |t        d«      d¬«      d   }t        j                  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   rs  rN  rO  rP  rQ  rR  s       r   Útest_rowspan_only_rowsz#TestReadHtml.test_rowspan_only_rows  s]   € ñ "Üðó	ð ô
ð ñˆô —<‘< s¨C j°3¸°*Ð%=ÈÈSÀzÔRˆä
×Ñ˜f hÕ/r   c                 ó–   —  |t        d«      «      d   }t        j                  ddgddggddg¬«      }t        j                  ||«       y )	NaZ  
            <table>
                <tr>
                    <th rowspan="2">A</th>
                    <th>B</th>
                </tr>
                <tr>
                    <td>1</td>
                </tr>
                <tr>
                    <td>C</td>
                    <td>2</td>
                </tr>
            </table>
        r   rN  r‰   rž  rr   rO  rP  rQ  rR  s       r   Ú*test_rowspan_in_header_overflowing_to_bodyz7TestReadHtml.test_rowspan_in_header_overflowing_to_body+  sX   € ñ "Üðóó
ð$ ñ%ˆô( —<‘< s¨A h°°a°Ð%9ÀCÈÀ:ÔNˆä
×Ñ˜f hÕ/r   c                 óÒ   —  |t        d«      «      d   }t        j                  ddgddggddgddgg¬«      }t        j                  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   rN  rO  r�   r‘   r‰   ©ÚlevelsÚcodesrr   rP  ©r   r   r)  r   r&   r'   ©r]   rT   rª   rw   r­   s        r   Ú+test_header_inferred_from_rows_with_only_thz8TestReadHtml.test_header_inferred_from_rows_with_only_thF  sx   € á!Üðóó
ð& ñ'ˆô* —-‘-¨¨c¨
°S¸#°JÐ'?ÈÈAÈÐQRÐTUÐPVÐGWÔXˆÜ—<‘< q¨! f X°wÔ?ˆä
×Ñ˜f hÕ/r   c                 ó€  — t        j                  dt        j                  dd¬«      i«      }|d d  }|d   j                  j	                  d«      |d<   |j                  «       } |t        |«      dgd¬«      }t        j                  ||d   «        |t        |«      dgd¬«      }t        j                  ||d   «       y )	NÚdatez1/1/2001é
   ©ÚperiodsÚusr‰   r   )Úparse_datesrM   )	r   r   Ú
date_rangeÚdtÚas_unitrƒ   r   r&   r'   )r]   rT   r„   r­   Ústr_dfr†   s         r   Útest_parse_dates_listz"TestReadHtml.test_parse_dates_listb  s§   € Ü�\‰\˜6¤2§=¡=°ÀRÔ#HÐIÓJˆà‘a�5ˆØ# FÑ+×.Ñ.×6Ñ6°tÓ<ˆ�Ñà—‘“ˆÙœx¨Ó/¸a¸SÈAÔNˆÜ
×Ñ˜h¨¨A©Ô/Ùœx¨Ó/¸f¸XÐQRÔSˆÜ
×Ñ˜h¨¨A©Õ/r   c                 óº  —  |dddd«      }t         j                  j                  |«      s
J |›d�«       ‚t         j                  j                  |«      s
J |›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   r8   ú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  rh   ÚisfileÚgetsizer‡  rw   r‹   r{   ÚallcloseÚloc©r]   r   rT   r   rª   s        r   Útest_wikipedia_states_tablez(TestReadHtml.test_wikipedia_states_tablen  sÒ   € Ù˜˜f fÐ.EÓFˆÜ�w‰w�~‰~˜dÔ#Ð>¨ x¨~Ð%>Ó>Ð#Ü�w‰w�‰˜tÔ$ÐB¨¨Ð0AÐ&BÓBÐ$Ù! $¨iÀÔBÀ1ÑEˆØ�|‰|˜xÒ'Ð'Ð'Ø˜FŸN™N¨2Ñ.Ñ.Ð.Ð.Ø�g‰×$Ñ$¬¯©°Ó(;Ò;Ð;Ð;Ü�{‰{˜6Ÿ:™: jÑ1°9Ô=Ð=Ñ=r   c                 ó  —  |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   r8   rÃ  rÄ  r   r   )rÅ  é   rÇ  rõ   r‰   rr   )ÚAlaska)zTotal area[2]rÈ  rÊ  )r‡  rw   Únlevelsr{   rÍ  rÎ  rÏ  s        r   Ú test_wikipedia_states_multiindexz-TestReadHtml.test_wikipedia_states_multiindexx  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        j                  ddggt        j                  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‰   rs  r�   r‘   )úUnnamed: 0_level_0rN  )zUnnamed: 1_level_0rO  rv   )r   r   r   r)  Úfrom_tuplesr&   r'   rR  s       r   Ú%test_parser_error_on_empty_header_rowz2TestReadHtml.test_parser_error_on_empty_header_row€  sl   € Ù!Üð
óð �q�6ô
ˆô  —<‘<Ø�3ˆZˆLÜ—M‘M×-Ñ-Ø,Ð.IÐJóô
ˆô 	×Ñ˜f Q™i¨Õ2r   c                 óÞ   —  |t        d«      d¬«      d   }t        j                  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   rY  g–C‹lg0‘@r[  rÉ  )r   r   r   r‹   r{   r&   r'   rR  s       r   Útest_decimal_rowszTestReadHtml.test_decimal_rows™  ss   € á!Üðóð$ ô'
ð( ñ)ˆô, —<‘< h°Ð%9À!ÀÔEˆà�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 namesr6   rs  )rd   re   r<   r?   rü   )r]   rm   rÞ  rT   r-   s        r   Útest_bool_header_argz!TestReadHtml.test_bool_header_arg¶  sF   € ô �i‰iðó
ˆô
 �]‰]œ9¨CÔ0ñ 	4Ù˜Y¨sÕ3÷	4÷ 	4ñ 	4ús   ±AÁAc                 óš   —  |t        d«      dt        i¬«      d   }t        j                  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�   r€  r   z0.763z0.244)r   rf   r   r   r&   r'   rR  s       r   Útest_converterszTestReadHtml.test_convertersÁ  sV   € á!Üðóð" œS�zô%
ð& ñ'ˆô* —<‘<  w°Ð&8Ð 9Ó:ˆä
×Ñ˜f hÕ/r   c                 ó¬   —  |t        d«      dg¬«      d   }t        j                  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   r   r{   Únanr&   r'   rR  s       r   Útest_na_valueszTestReadHtml.test_na_valuesÜ  sW   € á!Üðóð" �gô%
ð& ñ'ˆô* —<‘<  u¬b¯f©f oÐ 6Ó7ˆä
×Ñ˜f hÕ/r   c                 óT  — d}t        j                  dddgi«      } |t        |«      d¬«      d   }t        j                  ||«       t        j                  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&   r'   r{   ræ  )r]   rT   Ú	html_dataÚexpected_dfÚhtml_dfs        r   Útest_keep_default_naz!TestReadHtml.test_keep_default_na÷  sŽ   € ð ˆ	ô  —l‘l C¨%°¨Ð#7Ó8ˆÙ"¤8¨IÓ#6ÈÔNÈqÑQˆÜ
×Ñ˜k¨7Ô3ä—l‘l C¬"¯&©&´"·&±&Ð)9Ð#:Ó;ˆÙ"¤8¨IÓ#6ÈÔMÈaÑPˆÜ
×Ñ˜k¨7Õ3r   c                 ó’   — d}d}t        j                  t        |¬«      5   |t        |«      d¬«       d d d «       y # 1 sw Y   y xY w)Nz5<table><tr><th>a</th></tr><tr><td>1</td></tr></table>z1For argument "keep_default_na" expected type boolr6   ÚFalseré  )r<   r?   rG   r   )r]   rT   rë  r-   s       r   Útest_keep_default_na_not_boolz*TestReadHtml.test_keep_default_na_not_bool  sB   € àKˆ	ØAˆÜ�]‰]œ:¨SÔ1ñ 	KÙœX iÓ0À'ÕJ÷	K÷ 	Kñ 	Kús	    =½Ac                 óÎ   —  |t        d«      «      d   }t        j                  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‘   rN  rO  rP  rå  rR  s       r   Útest_preserve_empty_rowsz%TestReadHtml.test_preserve_empty_rows  s`   € Ù!Üðóó
ð& ñ'ˆô* —<‘< s¨C j´2·6±6¼2¿6¹6Ð2BÐ%CÈcÐSVÈZÔXˆä
×Ñ˜f hÕ/r   c                 óÒ   —  |t        d«      «      d   }t        j                  ddgddggddgddgg¬«      }t        j                  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   rN  rO  r�   r‘   r‰   r°  rr   rP  r³  r´  s        r   Ú,test_ignore_empty_rows_when_inferring_headerz9TestReadHtml.test_ignore_empty_rows_when_inferring_header1  sx   € Ù!Üðóó
ð ñˆô" —-‘-¨¨c¨
°S¸#°JÐ'?ÈÈAÈÐQRÐTUÐPVÐGWÔXˆÜ—<‘< q¨! f X°wÔ?ˆä
×Ñ˜f hÕ/r   c                 óÆ   — t        j                  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   r   rw   rƒ   r   r&   r'   )r]   rT   rì  r8   rí  s        r   Útest_multiple_header_rowsz&TestReadHtml.test_multiple_header_rowsH  s]   € ä—l‘lÚQô
ˆò 3Ú@ð
ˆÔð ×"Ñ"¨Ð"Ó/ˆÙ"¤8¨D£>Ó2°1Ñ5ˆÜ
×Ñ˜k¨7Õ3r   c                 ó�   —  |dddd«      } ||d¬«      }t        |t        «      sJ ‚t        |d   t        j                  «      sJ ‚y )Nr   r   r8   rL   r   r›  )r   r   r   r   )r]   r   rT   rN   rÓ   s        r   Útest_works_on_valid_markupz'TestReadHtml.test_works_on_valid_markupU  sG   € Ù˜D &¨&Ð2EÓFˆÙ˜x°1Ô5ˆÜ˜#œtÔ$Ð$Ð$Ü˜#˜a™&¤"§,¡,Ô/Ð/Ñ/r   c                 ó4   —  |dddd«      } ||dddg¬«       y )	Nr   r   r8   ro   rÂ   rK   r4   rF   rk   )r]   r   rT   rp   s       r   Útest_fallback_successz"TestReadHtml.test_fallback_success[  s#   € á   v¨v°ÓGˆá˜¨kÀ6È:ÐBVÖWr   c                 óä   — t        j                  dd¬«      }t        j                  t        j                  j                  d«      j                  d«      |¬«      }|j                  «       }d|v sJ ‚y )Nz
2000-01-01r¸  r¹  rr   )r¸  rs   r˜   )r   r½  r   r{   r|   r}   Ústandard_normalrƒ   )r]   Úrngr„   rª   s       r   Útest_to_html_timestampz#TestReadHtml.test_to_html_timestampa  sV   € Ü�m‰m˜L°"Ô5ˆÜ�\‰\œ"Ÿ)™)×/Ñ/°Ó2×BÑBÀ7ÓKÐSVÔWˆà—‘“ˆØ˜vÑ%Ð%Ñ%r   c                 ór  — t        j                  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‰   rr   ©rN  rO  T)Úborderr   Fz border="1"z border="2"z border="0"z border)r   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_borderlessh  sî   € Ü�\‰\ ¨Ñ+Ð,Ó-ˆØŸ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        j                  |«      } |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"   )r]   r  Úexp0Úexp1rT   r   rÓ   s          r   Útest_displayed_onlyz TestReadHtml.test_displayed_only{  sg   € ðˆô( �|‰|˜DÓ!ˆÙœx¨›~¸nÔMˆÜ
×Ñ˜c !™f dÔ+àÐÜ×!Ñ! # a¡&¨$Õ/ä�s“8˜q’=Ð ‘=r   r  c                 ó˜   — d} |t        |«      |¬«      d   }t        j                  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‰   rs   rr   rô   r  rQ  )r]   r  rT   Ú
html_tablerª   r­   s         r   Ú&test_displayed_only_with_many_elementsz3TestReadHtml.test_displayed_only_with_many_elements¡  sQ   € ðˆ
ñ  "¤(¨:Ó"6À~ÔVØñ
ˆô —<‘< q¨! f°A°q°6Ñ :Ó;ˆÜ
×Ñ˜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 } |t        |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³   rM   Ú16Ú32)r  rh   ÚbasenameÚsplitextÚsplitr¹   r   r»   Úpopr&   r'   Ú	Exceptionr
   r<   Úskip)r]   r   rT   Ú	base_pathÚrootr  r³   ÚfobjÚfrom_stringÚfrom_file_likeÚfrom_filenames              r   Útest_encodezTestReadHtml.test_encode¹  sJ  € ô
 —G‘G×$Ñ$Ð%7Ó8ˆ	Ü�w‰w×Ñ 	Ó*¨1Ñ-ˆØ—j‘j “o‰ˆˆ8ð	ÜÐ(¨$Ó/ð °4Ù.Ü˜DŸI™I›KÓ(°8Àqôç‘#“%ð ÷ô
 Ð(¨$Ó/ð °4Ù!1Ü˜DŸI™I›KÓ(°8Àqô"ç‘#“%ð ÷ñ
 -Ø"¨XÀôç‰c‹eð ô ×!Ñ! +¨~Ô>Ü×!Ñ! +¨}Õ=÷ð ú÷
ð ûô ò 	ä"Ô$Ø˜8Ñ# t¨xÑ'7Ü—K‘K”MØð	ús=   ÁD? Á#1D'ÂD? Â(1D3ÃAD? Ä'D0Ä,D? Ä3D<Ä8D? Ä?1E0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)	Nr;   rK   zNot applicable for lxmlc                   ó   — e Zd Zd„ Zy)úFTestReadHtml.test_parse_failure_unseekable.<locals>.UnseekableStringIOc                  ó   — y©NFrk   r@  s    r   ÚseekablezOTestReadHtml.test_parse_failure_unseekable.<locals>.UnseekableStringIO.seekableà  s   € Ør   N)Ú__name__Ú
__module__Ú__qualname__r5  rk   r   r   ÚUnseekableStringIOr2  ß  s   „ ór   r9  z?
            <table><tr><td>spam<foobr />eggs</td></tr></table>z#passed a non-rewindable file objectr6   )ÚkeywordsÚgetr<   r(  r   r?   rG   )r]   rT   r9  Ú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 r4  )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 )Nrj  T)rC  r   )r]   Úsizer   s      r   r»   z>TestReadHtml.test_parse_failure_rewinds.<locals>.MockFile.readõ  s   € Ø!Ÿ[š[‘r¨d¯i©i�Ø"�”Ø�r   c                 ó   — d| _         y r4  )rC  )r]   Úoffsets     r   Úseekz>TestReadHtml.test_parse_failure_rewinds.<locals>.MockFile.seekú  s	   € Ø#�•r   c                  ó   — y)NTrk   r@  s    r   r5  zBTestReadHtml.test_parse_failure_rewinds.<locals>.MockFile.seekableý  s   € Ør   c                  ó   — y r   rk   r@  s    r   Ú__next__zBTestReadHtml.test_parse_failure_rewinds.<locals>.MockFile.__next__   s   � r   c                 ó   — | S r   rk   r@  s    r   Ú__iter__zBTestReadHtml.test_parse_failure_rewinds.<locals>.MockFile.__iter__  s	   € ð �r   )rA  Nr   )
r6  r7  r8  rD  r»   rI  r5  rL  r   rN  rk   r   r   ÚMockFiler@  ð  s'   „ ó$óò
$òò $ð (ô r   rO  z/<table><tr><td>spam<br />eggs</td></tr></table>z2<table><tr><td>spam<foobr />eggs</td></tr></table>rk   )r]   rT   rO  Úgoodr<  s        r   Útest_parse_failure_rewindsz'TestReadHtml.test_parse_failure_rewindsí  s@   € ÷	ñ 	ñ. Ð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Úrunr  r'  )r]   r  Ú	__class__s     €r   rW  zDTestReadHtml.test_importcheck_thread_safety.<locals>.ErrorThread.run  s5   ø€ ð$Ü‘G‘K”Mð  $�D•Høô !ò #Ø"�D—H‘Hûð#ús   ƒ ™	3¢.®3)r6  r7  r8  rW  Ú__classcell__)rX  s   @r   ÚErrorThreadrT    s   ø„ ÷$ð $r   rZ  r   r   r8   rL   )Útargetr+   )Ú	threadingÚThreadÚstartÚis_aliver  )r]   r   rT   rZ  rN   Ú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   r8   r9   r   )r   r&   r'   )r]   r   rT   Ú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                 óŒ   —  |t        d«      «      d   }t        j                  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 word2rN  rP  rQ  rR  s       r   Útest_parse_br_as_spacez#TestReadHtml.test_parse_br_as_space.  sL   € á!Üð	óó
ð ñˆô —<‘< } oÐ%6ÀÀÔFˆä
×Ñ˜f hÕ/r   )r#   ÚbodyrÚ   rk  c                 ó‚  — 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        j                  ||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))rk  N)rl  N)rm  z'https://en.wiktionary.org/wiki/linkless)Ú	WikipediaúSURROUNDING Debian TEXTrm  ))rn  zhttps://en.wikipedia.org/)ro  zftp://ftp.us.debian.org/)rm  N)ÚFooterú$Multiple links: Only first captured.N))rp  z)https://en.wikipedia.org/wiki/Page_footer)rq  Ú1N)Úhead_ignoreÚhead_extractÚbody_ignoreÚbody_extractÚfooter_ignoreÚfooter_extractru  rw  rs  r#   rv  rx  rt  ri  rk  rÚ   ©Úextract_linksr   rv   )r   r   r   Úfillnar{   ræ  r&   r'   )
r]   rÞ  rT   Úgh_13141_dataÚgh_13141_expectedÚdata_expÚfoot_expÚhead_exprª   r­   s
             r   Útest_extract_linkszTestReadHtml.test_extract_linksC  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ˆÜ—<‘< ¨8Ð 4¸hÔGˆØ—?‘?¤2§6¡6Ó*ˆÜ
×Ñ˜f hÕ/r   c                 ó–   — d}t        j                  t        |¬«      5  t        j                  |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"r6   Ú	incorrectry  ©r<   r?   rG   r   rA   )r]   rm   r-   s      r   Útest_extract_links_badz#TestReadHtml.test_extract_links_badˆ  s@   € ðIð 	ô �]‰]œ:¨SÔ1ñ 	?Ü�L‰L˜°+Õ>÷	?÷ 	?ñ 	?úó	   ž?¿Ac                 óŽ   — d} |t        |«      d¬«      d   }t        j                  dgg«      }t        j                  ||«       y )Nz¦
        <table>
          <tr>
            <td>
              <a href='https://google.com'>Google.com</a>
            </td>
          </tr>
        </table>
        r#   ry  r   )z
Google.comzhttps://google.comrQ  ©r]   rT   r   rª   r­   s        r   Ú test_extract_links_all_no_headerz-TestReadHtml.test_extract_links_all_no_header�  sE   € ðˆñ "¤(¨4£.ÀÔFÀqÑIˆÜ—<‘<Ð"FÐ!GÐ HÓIˆÜ
×Ñ˜f hÕ/r   c                 ó–   — d}t        j                  t        |¬«      5  t        j                  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.r6   ÚtestÚnumpyrš   r„  )r]   r-   s     r   Útest_invalid_dtype_backendz'TestReadHtml.test_invalid_dtype_backendŸ  s?   € ð%ð 	ô �]‰]œ:¨SÔ1ñ 	8Ü�L‰L˜¨wÕ7÷	8÷ 	8ñ 	8úr†  c                 óš   — d} |t        |«      «      d   }t        j                  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ÚB2rN  rO  rP  rQ  rˆ  s        r   Útest_style_tagzTestReadHtml.test_style_tag§  sP   € ðˆñ& "¤(¨4£.Ó1°!Ñ4ˆÜ—<‘< t¨T l°T¸4°LÐ%AÈCÐQTÈ:ÔVˆÜ
×Ñ˜f hÕ/r   c                 óŒ   — d} |t        |«      «      d   }t        j                  ddgi«      }t        j                  ||«       y )Nz„<table>
            <tr><th>Codes</th></tr>
            <tr><td>41651,65125,17328,02872,49459,79208,ABCDE</td></tr>
        </table>r   ÚCodesz)41651,65125,17328,02872,49459,79208,ABCDErQ  rˆ  s        r   Ú+test_read_html_comma_separated_digit_groupsz8TestReadHtml.test_read_html_comma_separated_digit_groupsÀ  sJ   € ðˆñ "¤(¨4£.Ó1°!Ñ4ˆÜ—<‘<ØÐBÐCÐDó
ˆô 	×Ñ˜f hÕ/r   )lr6  r7  r8  r_   r<   ÚmarkÚskipifr	   r
   ri   Úfixturerm   rp   r‡   r¯   Ú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/  r2  r5  r7  r;  r>  rA  rD  rJ  rL  rS  rW  r\  rd  rq  rw  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   r  r  Úfilterwarningsr/  r=  rQ  rb  rf  rh  r�  r…  r‰  r�  r“  r–  rk   r   r   rV   rV   e   sË  „ òCð< ‡[�[×Ñ˜Ð%IÐÓJØ‡[�[×ÑÙÓØBð ó ñ#ó	ó Kð
#ð ‡^�^ñ;ó ð;ð ‡^�^ñ?ó ð?ò'ò4Iðl ‡[�[×ÑØ‡[�[×Ññ)ó ó ð)ð  ‡[�[×ÑØ‡[�[×Ññ)ó ó ð)ð ‡[�[×Ññ)ó ð)ò/ò0ò
0ò
ò
)ò)ò)ò)ò)ò)ò)ò)òLò)ò
)ò
)ò
)ò	)ò)ò)ð ‡[�[×ÑØ‡[�[×ÑñDó ó ðDð
 ‡[�[×ÑØ‡[�[×ÑØ‡[�[×Ññ"ó ó ó ð"ð ‡[�[×Ññ0ó ð0ð ‡[�[×Ññó ðð ‡[�[×Ññ5ó ð5ð ‡[�[×Ññ3ó ð3ð ‡[�[×Ññ	3ó ð	3ð ‡[�[×Ññ5ó ð5ð ‡[�[×Ññ5ó ð5ð ‡[�[×Ññ
5ó ð
5ð ‡[�[×Ññ	0ó ð	0òDð
 ‡^�^ñ.ó ð.ð` ‡[�[×ÑØ‡[�[×Ññó ó ðð
 ‡[�[×ÑØ‡[�[×Ññ.ó ó ð.ò ò60ò@'0òR0ò40ò@$2òL0ð2 ‡[�[×Ññ10ó ð10ðf ‡[�[×Ññ$ó ð$òF0òP0ò2!0òF0ò@0ò:0ò*0ò60ò8
0ò>òXò3ò20ð: ‡[�[×Ñ˜U T¨5 MÓ2ñ4ó 3ð4ò0ò60ò64ò2Kò0ò40ò.4ò0ð ‡[�[×ÑñXó ðXò
&ò3ð& ‡[�[×ÑØ"à�E�7˜DÐ!ØÐ)Ð*¨L¨B¯L©L¸%¸Ó,AÐBð	
óñ!óð!ð> ‡[�[×ÑÐ-°°e¨}Ó=ñ0ó >ð0ð. ‡[�[×Ñð	&óñó	ðò8"ò(%ð@ ‡[�[×ÑØ‡[�[×Ññ@ó ó ð@ò.(ò0ð* ‡[�[×Ñ˜UÒ$GÓHñB0ó IðB0òH?ò0ò8ò0ó20r   rV   )*Úcollections.abcr   rZ   Ú	functoolsr   r   r   r   r  Úpathlibr   rd   r\  Úurllib.errorr   rŒ  r{   r<   Úpandas.compatr	   r
   Úpandas.util._test_decoratorsÚutilÚ_test_decoratorsÚtdÚpandasr   Úpandas._testingÚ_testingr&   Úpandas.io.commonr   r™  r   r1   rC   rI   rQ   r   Ú
skip_if_norT   rV   rk   r   r   ú<module>r­     sò   ðÝ $Û Ý ÷ó 
Ý Û 	Û Ý !ã Û ÷÷ *Ð )ã Ý å -ð €‡�òôñBóðBò
:ò(PòCò.ð €‡�àˆ�‰�U = 2§=¡=°Ó#7¸¸¿¹ÀzÓ9RÐ"SÔTØˆ�‰�V = 2§=¡=°Ó#8Ô9ðôñ7óð7÷g0ò g0r   