a
    é´«jáì  ã                   @  sâ  d dl mZ d dlmZmZ d dlmZ d dlZd dlm	Z	 d dl
mZ d dlmZ d dlmZ d dlZd dlZd d	lmZ d d
lmZmZ d dlm  mZ d dlZd dlmZmZm Z  d dl!m"Z# d dl$m%Z% d dl&m'Z' eg d¢g d¢dej(dgdœƒZ)dZ*dZ+eddddddœddddddœddddddœd d d d d dœddddddœdd d!d"d#dœd$œƒZ,d%d&„ Z-ej.d'd(gd)�d*d+„ ƒZ/ej.ej0d,e 1d,¡d-�d.gd)�d/d0„ ƒZ2d1d2„ Z3d3d4„ Z4d5d6„ Z5ej6j7ej6j8d7d8„ ƒƒZ9d9d:„ Z:d;d<„ Z;d=d>„ Z<d?d@„ Z=dAdB„ Z>dCdD„ Z?dEdF„ Z@ej6 AdGdHdIg¡dJdK„ ƒZBej6 AdGdHdIg¡dLdM„ ƒZCdNdO„ ZDej6j7ej6j8dPdQ„ ƒƒZEej6j7ej6j8dRdS„ ƒƒZFdTdU„ ZGdVdW„ ZHdXdY„ ZIdZd[„ ZJd\d]„ ZKd^d_„ ZLd`da„ ZMdbdc„ ZNddde„ ZOdfdg„ ZPdhdi„ ZQej6 AdjdHdg¡dkdl„ ƒZRdmdn„ ZSdodp„ ZTdqdr„ ZUdsdt„ ZVdudv„ ZWdwdx„ ZXdydz„ ZYd{d|„ ZZd}d~„ Z[dd€„ Z\d�d‚„ Z]dƒd„„ Z^d…d†„ Z_d‡dˆ„ Z`d‰dŠ„ Zad‹dŒ„ Zbd�dŽ„ Zcd�d�„ Zdd‘d’„ Zed“d”„ Zfe gd,¡d•d–„ ƒZhd—d˜„ Zid™dš„ Zjd›dœ„ Zkd�dž„ ZldŸd „ Zmd¡d¢„ Znd£d¤„ Zod¥d¦„ Zpd§d¨„ Zqd©dª„ Zrd«d¬„ Zsd­d®„ Ztd¯d°„ Zuej6 AdGdHdIg¡d±d²„ ƒZvd³d´„ Zwdµd¶„ Zxej6j7ej6j8d·d¸„ ƒƒZyd¹dº„ Zzd»d¼„ Z{d½d¾„ Z|d¿dÀ„ Z}dÁdÂ„ Z~dÃdÄ„ ZdÅdÆ„ Z€dÇdÈ„ Z�dÉdÊ„ Z‚dËdÌ„ ZƒdÍdÎ„ Z„dÏdÐ„ Z…dÑdÒ„ Z†ej6j7ej6j8dÓdÔ„ ƒƒZ‡dÕdÖ„ Zˆd×dØ„ Z‰dS )Ùé    )Úannotations)ÚBytesIOÚStringIO)Ú	LZMAErrorN)Ú	ReadError)Ú	HTTPError)Ú
ParseError)Ú
BadZipFile)Úimport_optional_dependency)ÚEmptyDataErrorÚParserError)ÚNAÚ	DataFrameÚSeries)Ú
get_handle)Úread_xml©ÚsquareÚcircleÚtriangle©éh  r   é´   é   é   ©ÚshapeÚdegreesÚsidesa[  <?xml version='1.0' encoding='utf-8'?>
<data xmlns="http://example.com">
  <row>
    <shape>square</shape>
    <degrees>360</degrees>
    <sides>4</sides>
  </row>
  <row>
    <shape>circle</shape>
    <degrees>360</degrees>
    <sides/>
  </row>
  <row>
    <shape>triangle</shape>
    <degrees>180</degrees>
    <sides>3</sides>
  </row>
</data>aÇ  <?xml version='1.0' encoding='utf-8'?>
<doc:data xmlns:doc="http://example.com">
  <doc:row>
    <doc:shape>square</doc:shape>
    <doc:degrees>360</doc:degrees>
    <doc:sides>4.0</doc:sides>
  </doc:row>
  <doc:row>
    <doc:shape>circle</doc:shape>
    <doc:degrees>360</doc:degrees>
    <doc:sides/>
  </doc:row>
  <doc:row>
    <doc:shape>triangle</doc:shape>
    <doc:degrees>180</doc:degrees>
    <doc:sides>3.0</doc:sides>
  </doc:row>
</doc:data>ZID_00001ZID_00002ZID_00003ZID_00004ZID_00005©r   é   é   r   r   zBlue Line (Forest Park)zRed, Purple Linez#LineStyle01ZclampedToGroundzæ-87.77678526964958,41.8708863930319,0 -87.77826234150609,41.87097820122218,0 -87.78251583439344,41.87130129991005,0 -87.78418294588424,41.87145055520308,0 -87.7872369165933,41.8717239119163,0 -87.79160214925886,41.87210797280065,0a\  -87.65758750947528,41.96427269188822,0 -87.65802133507393,41.96581929055245,0 -87.65819033925305,41.96621846093642,0 -87.6583189819129,41.96650362897086,0 -87.65835858701473,41.96669002089185,0 -87.65838428411853,41.96688150295095,0 -87.65842208882658,41.96745896091846,0 -87.65846556843937,41.9683761425439,0 -87.65849296214573,41.96913893870342,0a”  -87.65492939166126,41.95377494531437,0 -87.65557043199591,41.95376544118533,0 -87.65606302030132,41.95376391658746,0 -87.65623502146268,41.95377379126367,0 -87.65634748981634,41.95380103566435,0 -87.65646537904269,41.95387703994676,0 -87.65656532461145,41.95396622645799,0 -87.65664760856414,41.95404201996044,0 -87.65671750555913,41.95416647054043,0 -87.65673983607117,41.95429949810849,0 -87.65673866475777,41.95441024240925,0 -87.6567690255541,41.95490657227902,0 -87.65683672482363,41.95692259283837,0 -87.6568900886376,41.95861070983142,0 -87.65699865558875,41.96181418669004,0 -87.65756347177603,41.96397045777844,0 -87.65758750947528,41.96427269188822,0ah  -87.65362593118043,41.94742799535678,0 -87.65363554415794,41.94819886386848,0 -87.6536456393239,41.95059994675451,0 -87.65365831235026,41.95108288489359,0 -87.6536604873874,41.9519954657554,0 -87.65362592053201,41.95245597302328,0 -87.65367158496069,41.95311153649393,0 -87.65368468595476,41.9533202828916,0 -87.65369271253692,41.95343095587119,0 -87.65373335834569,41.95351536301472,0 -87.65378605844126,41.95358212680591,0 -87.65385067928185,41.95364452823767,0 -87.6539390793817,41.95370263886964,0 -87.6540786298351,41.95373403675265,0 -87.65430648647626,41.9537535411832,0 -87.65492939166126,41.95377494531437,0a   -87.65345391792157,41.94217681262115,0 -87.65342448305786,41.94237224420864,0 -87.65339745703922,41.94268217746244,0 -87.65337753982941,41.94288140770284,0 -87.65336256753105,41.94317369618263,0 -87.65338799707138,41.94357253961736,0 -87.65340240886648,41.94389158188269,0 -87.65341837392448,41.94406444407721,0 -87.65342275247338,41.94421065714904,0 -87.65347469646018,41.94434829382345,0 -87.65351486483024,41.94447699917548,0 -87.65353483605053,41.9453896864472,0 -87.65361975532807,41.94689193720703,0 -87.65362593118043,41.94742799535678,0©ÚidÚnameZstyleUrlZextrudeZaltitudeModeZcoordinatesc                  C  sH   t  d¡ d} tjt| d�� ttƒ W d   ƒ n1 s:0    Y  d S )NÚlxmlú—Passing literal xml to 'read_xml' is deprecated and will be removed in a future version. To read from a literal string, wrap it in a 'StringIO' object.©Úmatch)ÚpytestÚimportorskipÚtmZassert_produces_warningÚFutureWarningr   Úxml_default_nmsp©Úmsg© r0   ú[/var/www/html/laksyashrimp/venv/lib/python3.9/site-packages/pandas/tests/io/xml/test_xml.pyÚtest_literal_xml_deprecationõ   s
    
ÿr2   ÚrbÚr)Úparamsc                 C  s   | j S ©N©Úparam©Úrequestr0   r0   r1   Úmode  s    r;   r%   )ZmarksÚetreec                 C  s   | j S r6   r7   r9   r0   r0   r1   Úparser  s    r=   c              	   K  st   t  ¡ �X}t|ddd��}| | ¡ W d   ƒ n1 s80    Y  t|fi |¤ŽW  d   ƒ S 1 sf0    Y  d S )NÚwúutf-8©Úencoding)r+   Úensure_cleanÚopenÚwriter   )ÚdataÚkwargsÚpathÚfr0   r0   r1   Úread_xml_iterparse  s    
(rI   c              
   K  s¶   t | d|d��”}t ¡ �l}t|ddd�� }| |j ¡ ¡ W d   ƒ n1 sN0    Y  t|fi |¤ŽW  d   ƒ W  d   ƒ S 1 sŠ0    Y  W d   ƒ n1 s¨0    Y  d S )Nr4   )Úcompressionr>   r?   r@   )r   r+   rB   rC   rD   ÚhandleÚreadr   )Ú	comp_pathÚcompression_onlyrF   ZhandlesrG   rH   r0   r0   r1   Úread_xml_iterparse_comp  s
    
.rO   c                 C  sv   t  d¡ t| dd�}t| dd�}t| ddg d¢id�}t| ddg d¢id�}t ||¡ t ||¡ t ||¡ d S )Nr%   ©r=   r<   Úbook©ÚcategoryÚtitleÚyearÚauthorÚprice©r=   Ú	iterparse©r)   r*   r   r+   Úassert_frame_equal)Ú	xml_booksZdf_file_lxmlZdf_file_etreeÚdf_iter_lxmlÚdf_iter_etreer0   r0   r1   Útest_parser_consistency_file  s     

ý
ýr_   c                 C  sJ   |j td� tttƒ| d�}ttt ¡ ƒ| dg d¢id�}t ||¡ d S )N©ÚcontentrP   Úrowr   rX   )Úserve_contentr-   r   r   r   Úencoder+   r[   )r=   Ú
httpserverÚdf_xpathÚdf_iterr0   r0   r1   Útest_parser_consistency_url3  s    

ýrh   c                 C  s~   t | ||dkrdnd d��}t||d�}W d   ƒ n1 s<0    Y  tg d¢g d¢g d¢g d¢g d	¢d
œƒ}t ||¡ d S ©Nr4   r?   r@   rP   ©ÚcookingÚchildrenZweb©zEveryday ItalianzHarry PotterzLearning XML©zGiada De LaurentiiszJ K. RowlingzErik T. Ray©éÕ  rp   iÓ  ©g      >@g=
×£pý=@gš™™™™ùC@©rS   rT   rV   rU   rW   )rC   r   r   r+   r[   )r\   r=   r;   rH   Údf_fileÚdf_expectedr0   r0   r1   Útest_file_likeB  s    *ûÿ
ru   c                 C  sœ   t | ||dkrdnd d��}| ¡ }W d   ƒ n1 s80    Y  tt|tƒrVt|ƒnt|ƒ|d�}tg d¢g d¢g d¢g d¢g d	¢d
œƒ}t 	||¡ d S ri   )
rC   rL   r   Ú
isinstanceÚbytesr   r   r   r+   r[   )r\   r=   r;   rH   Úxml_objZdf_iort   r0   r0   r1   Útest_file_ioS  s    &þûÿ
ry   c                 C  s¬   t | ||dkrdnd d��}| ¡ }W d   ƒ n1 s80    Y  |dkrXt| ¡ ƒ}n|dkrht|ƒ}t||d�}tg d¢g d¢g d¢g d	¢g d
¢dœƒ}t ||¡ d S ©Nr4   r?   r@   r3   rP   rj   rm   rn   ro   rq   rr   )rC   rL   r   Údecoder   r   r+   r[   ©r\   r=   r;   rH   rx   Údf_strrt   r0   r0   r1   Ú test_file_buffered_reader_stringi  s     &ûÿ
r~   c                 C  s´   t | ||dkrdnd d�� }t|ƒ | ¡ }W d   ƒ n1 s@0    Y  |dkr`t| ¡ ƒ}n|dkrpt|ƒ}t||d�}tg d¢g d¢g d¢g d	¢g d
¢dœƒ}t ||¡ d S rz   )	rC   ÚnextrL   r   r{   r   r   r+   r[   r|   r0   r0   r1   Ú,test_file_buffered_reader_no_xml_declaration�  s"    &ûÿ
r€   c                 C  s8   d}t t|ƒ| d�}tdddœdgd�}t ||¡ d S )Nõ<   <ä¸­æ–‡æ¨™ç±¤><row><c1>1</c1><c2>2</c2></row></ä¸­æ–‡æ¨™ç±¤>rP   r    r!   )Úc1Úc2r   )Úindex©r   r   r   r+   r[   )r=   Útxtr}   rt   r0   r0   r1   Útest_string_charsetš  s    r‡   c                 C  sD   t | |d�}tg d¢d ddg¡d dgg d¢dœƒ}t ||¡ d S )	NrP   )uP   å•�  è‹¥ç®‡æ˜¯é‚ªè€Œè¨€ç ´é‚ª ä½•è€…æ˜¯æ­£è€Œé�“(Sorry, this is Big5 only)ç”³æ­£u;   å•� æ—¢ç ´æœ‰å¾—ç”³ç„¡å¾— äº¦æ‡‰ä½†ç ´æ€§åŸ·ç”³å�‡å��ä»¥ä¸�uO   å•� æ—¢ç ´æ€§ç”³å�‡ äº¦æ‡‰ä½†ç ´æœ‰ç”³ç„¡ è‹¥æœ‰ç„¡å…©æ´— äº¦æ‡‰æ€§å�‡é›™ç ´è€¶Ú u<   ç­”  é‚ªæ—¢ç„¡é‡� æ­£äº¦å¤šé€”  å¤§ç•¥ç‚ºè¨€ä¸�å‡ºäºŒç¨® è¬‚u;   æœ‰å¾—èˆ‡ç„¡å¾— æœ‰å¾—æ˜¯é‚ªé ˆç ´ ç„¡å¾—æ˜¯æ­£é ˆç”³
		æ•…uL   ç­”  ä¸�ä¾‹  æœ‰ç„¡çš†æ˜¯æ€§ æ‰€ä»¥é ˆé›™ç ´ æ—¢åˆ†æ€§å�‡ç•° æ•…æœ‰ç ´ä¸�ç ´)NuV   ç­” æ€§åŸ·æ˜¯æœ‰å¾— å�‡å��æ˜¯ç„¡å¾—  ä»Šç ´æœ‰å¾—ç”³ç„¡å¾— å�³æ˜¯ç ´æ€§åŸ·ç”³å�‡å��ä¹ŸN)u   å•�u   ç­”Úa)r   r   Újoinr+   r[   )Zxml_doc_ch_utfr=   rs   rt   r0   r0   r1   Útest_file_charset¤  s    þÿø
ðÿr‹   c                 C  sL   t | dƒ�.}tt| ¡ ƒ|d� |jr*J ‚W d   ƒ n1 s>0    Y  d S )Nr3   rP   )rC   r   r   rL   Úclosed)r\   r=   rH   r0   r0   r1   Útest_file_handle_closeÃ  s    r�   Úvalrˆ   ó    c                 C  sx   t  d¡}d ddg¡}t j|j|d��< t| tƒrFtt| ƒdd� ntt	| ƒdd� W d   ƒ n1 sj0    Y  d S )Nú
lxml.etreeú|zDocument is emptyzNone \(line 0\)r'   r%   rP   )
r)   r*   rŠ   ÚraisesÚXMLSyntaxErrorrv   Ústrr   r   r   )rŽ   Ú
lxml_etreer/   r0   r0   r1   Útest_empty_string_lxmlÊ  s    
ýÿ
r–   c                 C  s^   t jtdd��< t| tƒr,tt| ƒdd� ntt| ƒdd� W d   ƒ n1 sP0    Y  d S )Nzno element foundr'   r<   rP   )r)   r’   r   rv   r”   r   r   r   )rŽ   r0   r0   r1   Útest_empty_string_etreeÜ  s    
r—   c                 C  sR   d}t j ddd¡}tjt|d�� t|| d� W d   ƒ n1 sD0    Y  d S )Nr&   rE   Úhtmlz	books.xmlr'   rP   )ÚosrG   rŠ   r)   r’   r,   r   )r=   r/   Úfilenamer0   r0   r1   Útest_wrong_file_pathå  s    ÿþr›   c                 C  sŒ   t  d¡ t|dd��.}| j| ¡ d� t| jdd�}W d   ƒ n1 sJ0    Y  tg d¢g d¢g d	¢g d
¢g d¢dœƒ}t 	||¡ d S )Nr%   r?   r@   r`   ú.//book[count(*)=4]©Úxpathrj   rm   rn   ro   rq   rr   )
r)   r*   rC   rc   rL   r   Úurlr   r+   r[   )re   Úxml_filerH   Zdf_urlrt   r0   r0   r1   Útest_urlô  s    
,ûÿ
r¡   c                 C  sP   |j ddd� tjtdd��  t|jd| d� W d   ƒ n1 sB0    Y  d S )Nz	NOT FOUNDi”  )ÚcodezHTTP Error 404: NOT FOUNDr'   rœ   ©rž   r=   )rc   r)   r’   r   r   rŸ   )r=   re   r0   r0   r1   Útest_wrong_url	  s    r¤   c                 C  sj   d}t t|ƒ| dd�}t|| dg d¢idd�}tg d¢g d¢g d	¢dœdd
�}t ||¡ t ||¡ d S )NaÍ  
      <data>
        <row sides=" 4 ">
          <shape>
              square
          </shape>
          <degrees>&#009;360&#009;</degrees>
        </row>
        <row sides=" 0 ">
          <shape>
              circle
          </shape>
          <degrees>&#009;360&#009;</degrees>
        </row>
        <row sides=" 3 ">
          <shape>
              triangle
          </shape>
          <degrees>&#009;180&#009;</degrees>
        </row>
      </data>Ústring)r=   Údtyperb   )r   r   r   )r=   rY   r¦   )z 4 z 0 z 3 )z 
              square
          z 
              circle
          z"
              triangle
          )ú	360	r§   z	180	©r¦   ©r   r   rI   r   r+   r[   ©r=   Úxmlrf   rg   rt   r0   r0   r1   Útest_whitespace  s"    
üù	ör¬   c                 C  sJ   t  d¡ t jtdd�� t| ddd� W d   ƒ n1 s<0    Y  d S )Nr%   úxpath does not return any nodesr'   z	.//pythonr£   ©r)   r*   r’   Ú
ValueErrorr   ©r\   r0   r0   r1   Útest_empty_xpath_lxmlH  s    
r±   c                 C  s@   t jtdd�� t| ddd� W d   ƒ n1 s20    Y  d S )Nz/You have used an incorrect or unsupported XPathr'   ú	.//[book]r<   r£   ©r)   r’   ÚSyntaxErrorr   r°   r0   r0   r1   Útest_bad_xpath_etreeN  s    ÿrµ   c                 C  sL   t  d¡}t j|jdd�� t| ddd� W d   ƒ n1 s>0    Y  d S )Nr�   zInvalid expressionr'   r²   r%   r£   ©r)   r*   r’   ZXPathEvalErrorr   )r\   r•   r0   r0   r1   Útest_bad_xpath_lxmlU  s    
r·   c                 C  sl   t ttƒdddi| d�}tt| dg d¢id�}tg d¢g d	¢d
tdƒdgdœƒ}t ||¡ t ||¡ d S )Nú	.//ns:rowÚnsúhttp://example.com©rž   Ú
namespacesr=   rb   r   rX   r   r   ç      @Únanç      @)r   r   r-   rI   r   Úfloatr+   r[   ©r=   Zdf_nmsprg   rt   r0   r0   r1   Útest_default_namespace_  s&    ü
ýýÿrÂ   c                 C  sl   t ttƒdddi| d�}tt| dg d¢id�}tg d¢g d	¢d
tdƒdgdœƒ}t ||¡ t ||¡ d S )Nú
.//doc:rowÚdocrº   r»   rb   r   rX   r   r   r½   r¾   r¿   )r   r   Úxml_prefix_nmsprI   r   rÀ   r+   r[   rÁ   r0   r0   r1   Útest_prefix_namespacey  s"    üÿýÿrÆ   c                  C  sJ   t  d¡ tttƒdddidd�} tttƒdddidd�}t | |¡ d S )	Nr%   r¸   r¹   rº   r»   rÃ   rÄ   r<   )r)   r*   r   r   r-   r+   r[   ©Údf_lxmlÚdf_etreer0   r0   r1   Ú"test_consistency_default_namespace�  s    
üürÊ   c                  C  sJ   t  d¡ tttƒdddidd�} tttƒdddidd�}t | |¡ d S )Nr%   rÃ   rÄ   rº   r»   r<   )r)   r*   r   r   rÅ   r+   r[   rÇ   r0   r0   r1   Ú!test_consistency_prefix_namespace£  s    
üürË   c                 C  s@   t jtdd�� t| d|d� W d   ƒ n1 s20    Y  d S )Nr­   r'   z.//Placemarkr£   ©r)   r’   r¯   r   ©r\   r=   r0   r0   r1   Ú*test_missing_prefix_with_default_namespace¹  s    rÎ   c                 C  s@   t jtdd�� t| ddd� W d   ƒ n1 s20    Y  d S )Nz'you used an undeclared namespace prefixr'   ú.//kml:Placemarkr<   r£   r³   )Úkml_cta_rail_linesr0   r0   r1   Ú$test_missing_prefix_definition_etree¾  s    rÑ   c                 C  sL   t  d¡}t j|jdd�� t| ddd� W d   ƒ n1 s>0    Y  d S )Nr�   zUndefined namespace prefixr'   rÏ   r%   r£   r¶   )rÐ   r•   r0   r0   r1   Ú#test_missing_prefix_definition_lxmlÃ  s    
rÒ   Úkeyc                 C  sT   t  d¡ t jtdd��( tttƒd| didd� W d   ƒ n1 sF0    Y  d S )Nr%   z0empty namespace prefix is not supported in XPathr'   rÏ   úhttp://www.opengis.net/kml/2.2r»   )r)   r*   r’   Ú	TypeErrorr   r   r-   )rÓ   r0   r0   r1   Útest_none_namespace_prefixÊ  s    
ÿürÖ   c                 C  sf   t | |d�}t | |dg d¢id�}tg d¢g d¢g d¢g d¢g d	¢dœƒ}t ||¡ t ||¡ d S )
NrP   rQ   rr   rX   rj   rm   rn   ro   rq   ©r   r   r+   r[   ©r\   r=   rs   rg   rt   r0   r0   r1   Útest_file_elems_and_attrsÛ  s     
ýûÿ
rÙ   c                 C  sN   t | d|d�}t | |ddgid�}tdg d¢iƒ}t ||¡ t ||¡ d S )NT)Ú
attrs_onlyr=   rQ   rS   rX   rj   r×   rØ   r0   r0   r1   Útest_file_only_attrsð  s
    rÛ   c                 C  sb   t | d|d�}t | |dg d¢id�}tg d¢g d¢g d¢g d	¢dœƒ}t ||¡ t ||¡ d S )
NT)Ú
elems_onlyr=   rQ   )rT   rV   rU   rW   rX   rm   rn   ro   rq   r×   rØ   r0   r0   r1   Útest_file_only_elemsù  s    
ýüÿ	rÝ   c                 C  sB   t jtdd��  t| dd|d� W d   ƒ n1 s40    Y  d S )Nz3Either element or attributes can be parsed not bothr'   T)rÜ   rÚ   r=   rÌ   )rÐ   r=   r0   r0   r1   Útest_elem_and_attrs_only  s
    þrÞ   c                 C  sJ   d}t jtdd��$ tt|ƒdd| d� W d   ƒ n1 s<0    Y  d S )NaU  
      <data>
        <row>
          <shape sides="4">square</shape>
          <degrees>360</degrees>
        </row>
        <row>
          <shape sides="0">circle</shape>
          <degrees>360</degrees>
        </row>
        <row>
          <shape sides="3">triangle</shape>
          <degrees>180</degrees>
        </row>
      </data>ú-xpath does not return any nodes or attributesr'   ú./rowT)rž   rÚ   r=   ©r)   r’   r¯   r   r   ©r=   r«   r0   r0   r1   Útest_empty_attrs_only  s    þrã   c                 C  sJ   d}t jtdd��$ tt|ƒdd| d� W d   ƒ n1 s<0    Y  d S )Nz¿
      <data>
        <row sides="4" shape="square" degrees="360"/>
        <row sides="0" shape="circle" degrees="360"/>
        <row sides="3" shape="triangle" degrees="180"/>
      </data>rß   r'   rà   T)rž   rÜ   r=   rá   râ   r0   r0   r1   Útest_empty_elems_only-  s    þrä   c                  C  sv   t  d¡ d} tt| ƒdd�}tt| ƒddd�}t| ddd	gid
�}t| dddd	gid�}t ||¡ t ||¡ d S )Nr%   aº  <?xml version="1.0" encoding="UTF-8"?>
<TrainSchedule>
      <Stations>
         <station Name="Manhattan" coords="31,460,195,498"/>
         <station Name="Laraway Road" coords="63,409,194,455"/>
         <station Name="179th St (Orland Park)" coords="0,364,110,395"/>
         <station Name="153rd St (Orland Park)" coords="7,333,113,362"/>
         <station Name="143rd St (Orland Park)" coords="17,297,115,330"/>
         <station Name="Palos Park" coords="128,281,239,303"/>
         <station Name="Palos Heights" coords="148,257,283,279"/>
         <station Name="Worth" coords="170,230,248,255"/>
         <station Name="Chicago Ridge" coords="70,187,208,214"/>
         <station Name="Oak Lawn" coords="166,159,266,185"/>
         <station Name="Ashburn" coords="197,133,336,157"/>
         <station Name="Wrightwood" coords="219,106,340,133"/>
         <station Name="Chicago Union Sta" coords="220,0,360,43"/>
      </Stations>
</TrainSchedule>z
.//stationr�   r<   r£   ÚstationÚNameZcoords©rY   rX   )r)   r*   r   r   rI   r+   r[   )r«   rÈ   rÉ   Z
df_iter_lxZ
df_iter_etr0   r0   r1   Útest_attribute_centric_xml<  s    
ÿrè   c                 C  sr   t | g d¢|d�}t | |g d¢dg d¢id�}tg d¢g d¢g d¢g d	¢g d
¢dœƒ}t ||¡ t ||¡ d S )N)ÚCol1ÚCol2ÚCol3ZCol4ZCol5©Únamesr=   rQ   rr   )r=   rí   rY   rj   rm   rn   ro   rq   r×   rØ   r0   r0   r1   Útest_names_option_outputa  s&    
ÿ
üûÿ
rî   c                 C  sp   d}t t|ƒd| g d¢d�}t|| dg d¢ig d¢d�}tdd	gd
dgddgdœƒ}t ||¡ t ||¡ d S )Nz°<shapes>
  <shape type="2D">
    <name>circle</name>
    <type>curved</type>
  </shape>
  <shape type="3D">
    <name>sphere</name>
    <type>curved</type>
  </shape>
</shapes>ú.//shape)Ztype_dimr   Z	type_edge©rž   r=   rí   r   )Útyper$   rñ   ©r=   rY   rí   Ú2DÚ3Dr   ÚsphereZcurvedr©   rª   r0   r0   r1   Útest_repeat_namesz  s*    ü
üýÿrö   c                 C  sj   d}t t|ƒd| ddgd�}t|| dddgiddgd�}tg d	¢g d
¢dœƒ}t ||¡ t ||¡ d S )NaB  <shapes>
  <shape>
    <name>rectangle</name>
    <family>rectangle</family>
  </shape>
  <shape>
    <name>square</name>
    <family>rectangle</family>
  </shape>
  <shape>
    <name>ellipse</name>
    <family>ellipse</family>
  </shape>
  <shape>
    <name>circle</name>
    <family>ellipse</family>
  </shape>
</shapes>rï   r$   Úgrouprð   r   Úfamilyrò   )Ú	rectangler   Úellipser   )rù   rù   rú   rú   )r$   r÷   r©   rª   r0   r0   r1   Útest_repeat_values_new_names   s"    ÿ
üþÿrû   c                 C  sv   d}t t|ƒd| g d¢d�}t|| dg d¢ig d¢d�}tg d¢g d	¢g d
¢g d¢dœƒ}t ||¡ t ||¡ d S )Na  <shapes>
  <shape>
    <value item="name">circle</value>
    <value item="family">ellipse</value>
    <value item="degrees">360</value>
    <value item="sides">0</value>
  </shape>
  <shape>
    <value item="name">triangle</value>
    <value item="family">polygon</value>
    <value item="degrees">180</value>
    <value item="sides">3</value>
  </shape>
  <shape>
    <value item="name">square</value>
    <value item="family">polygon</value>
    <value item="degrees">360</value>
    <value item="sides">4</value>
  </shape>
</shapes>rï   )r$   rø   r   r   rð   r   )Úvaluerü   rü   rü   rò   )r   r   r   )rú   Úpolygonrý   )r   r   r   )r   r   r   r©   rª   r0   r0   r1   Útest_repeat_elementsÊ  s,    ü
üüÿ	rþ   c                 C  sD   t jtdd��" t| g d¢|d� W d   ƒ n1 s60    Y  d S )Nznames does not match lengthr'   )ré   rê   rë   rì   rÌ   rÍ   r0   r0   r1   Útest_names_option_wrong_lengthû  s    rÿ   c                 C  s@   t jtdd�� t| d|d� W d   ƒ n1 s20    Y  d S )Nzis not a valid type for namesr'   zCol1, Col2, Col3rì   ©r)   r’   rÕ   r   rÍ   r0   r0   r1   Útest_names_option_wrong_type   s    r  c                 C  s>   t jtdd�� t| |d� W d   ƒ n1 s00    Y  d S )Nz'utf-8' codec can't decoder'   rP   ©r)   r’   ÚUnicodeDecodeErrorr   ©Úxml_baby_namesr=   r0   r0   r1   Útest_wrong_encoding  s    r  c                 C  s@   t jtdd�� t| d|d� W d   ƒ n1 s20    Y  d S )NzLUTF-16 stream does not start with BOM|'utf-16(-le)?' codec can't decode byter'   zUTF-16©rA   r=   )r)   r’   ÚUnicodeErrorr   r  r0   r0   r1   Útest_utf16_encoding  s
    ýr	  c                 C  s@   t jtdd�� t| d|d� W d   ƒ n1 s20    Y  d S )Nzunknown encoding: UFT-8r'   zUFT-8r  )r)   r’   ÚLookupErrorr   r  r0   r0   r1   Útest_unknown_encoding  s    r  c                 C  s@   t jtdd�� t| d|d� W d   ƒ n1 s20    Y  d S )Nz'ascii' codec can't decode byter'   Úasciir  r  r  r0   r0   r1   Útest_ascii_encoding  s    r  c                 C  s~   t  d¡ t| ddd�}t| ddd�}t| dddg d¢id�}t| dddg d¢id�}t ||¡ t ||¡ t ||¡ d S )	Nr%   z
ISO-8859-1©r=   rA   r<   z
iso-8859-1rb   )ZrankZmalenameZ
femalename)r=   rA   rY   rZ   )r  Zdf_xpath_lxmlZdf_xpath_etreer]   r^   r0   r0   r1   Ú%test_parser_consistency_with_encoding"  s$    

ü
ür  c                  C  sR   t  d¡ d} t jtdd��" tt| ƒdd d� W d   ƒ n1 sD0    Y  d S )Nr%   ú-<data>
  <row>
    <a>c</a>
  </row>
</data>
zencoding Noner'   r  )r)   r*   r’   rÕ   r   r   )rE   r0   r0   r1   Útest_wrong_encoding_for_lxml9  s    
r  c                  C  s4   d} t t| ƒdd d�}tddgiƒ}t ||¡ d S )Nr  r<   r  r‰   Úcr…   )rE   ÚresultÚexpectedr0   r0   r1   Útest_none_encoding_etreeF  s    r  c                 C  s:   t jtdd�� t| ƒ W d   ƒ n1 s,0    Y  d S )Nz7lxml not found, please install or use the etree parser.r'   )r)   r’   ÚImportErrorr   r°   r0   r0   r1   Útest_default_parser_no_lxmlV  s    ÿr  c                 C  s>   t jtdd�� t| dd� W d   ƒ n1 s00    Y  d S )Nz,Values for parser can only be lxml or etree.r'   Zbs4rP   rÌ   r°   r0   r0   r1   Útest_wrong_parser^  s    ÿr  c                 C  sN   t  d¡ t| dddi|d�}t| dg d¢id�}t t|¡ t t|¡ d S )	Nr%   ú.//k:PlacemarkÚkrÔ   ©rž   r¼   Ú
stylesheetZ	Placemarkr"   rç   )r)   r*   r   r+   r[   Údf_kml)rÐ   Úxsl_flatten_docÚdf_stylerg   r0   r0   r1   Útest_stylesheet_fileh  s    
üÿþr   c                 C  sh   t  d¡ t|||dkrdnd d��$}t| dddi|d�}W d   ƒ n1 sN0    Y  t t|¡ d S ©	Nr%   r4   r?   r@   r  r  rÔ   r  )r)   r*   rC   r   r+   r[   r  )rÐ   r  r;   rH   r  r0   r0   r1   Útest_stylesheet_file_likeƒ  s    
ü$r"  c                 C  sŠ   t  d¡ t|||dkrdnd d��2}|dkr<t| ¡ ƒ}nt| ¡ ƒ}W d   ƒ n1 s\0    Y  t| dddi|d	�}t t	|¡ d S )
Nr%   r4   r?   r@   r3   r  r  rÔ   r  )
r)   r*   rC   r   rL   r   r   r+   r[   r  ©rÐ   r  r;   rH   Úxsl_objr  r0   r0   r1   Útest_stylesheet_io�  s    
*ür%  c                 C  sp   t  d¡ t|||dkrdnd d��}| ¡ }W d   ƒ n1 sB0    Y  t| dddi|d�}t t|¡ d S r!  )r)   r*   rC   rL   r   r+   r[   r  r#  r0   r0   r1   Útest_stylesheet_buffered_reader¦  s    
&ür&  c                  C  s>   t  d¡ d} d}tt| ƒƒ}tt| ƒ|d�}t ||¡ d S )Nr%   r�   u­  <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
 <xsl:output omit-xml-declaration="yes" indent="yes"/>
 <xsl:strip-space elements="*"/>

 <xsl:template match="node()|@*">
     <xsl:copy>
       <xsl:apply-templates select="node()|@*"/>
     </xsl:copy>
 </xsl:template>

 <xsl:template match="ä¸­æ–‡æ¨™ç±¤">
     <æ ¹>
       <xsl:apply-templates />
     </æ ¹>
 </xsl:template>

</xsl:stylesheet>©r  )r)   r*   r   r   r+   r[   )r«   ÚxslZdf_origr  r0   r0   r1   Útest_style_charsetµ  s    
r)  c                 C  sJ   t  d¡}t j|jdd�� t| |d� W d   ƒ n1 s<0    Y  d S )Nr�   zdocument is not a stylesheetr'   r'  ©r)   r*   r’   ZXSLTParseErrorr   )rÐ   r\   r•   r0   r0   r1   Útest_not_stylesheetÒ  s
    
ÿr+  c                 C  sN   t  d¡}d}t j|jdd�� t| |d� W d   ƒ n1 s@0    Y  d S )Nr�   a‹  <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
                              xmlns:k="http://www.opengis.net/kml/2.2"/>
    <xsl:output method="xml" omit-xml-declaration="yes"
                cdata-section-elements="k:description" indent="yes"/>
    <xsl:strip-space elements="*"/>

    <xsl:template match="node()|@*">
     <xsl:copy>
       <xsl:apply-templates select="node()|@*"/>
     </xsl:copy>
    </xsl:template>

    <xsl:template match="k:MultiGeometry|k:LineString">
        <xsl:apply-templates select='*'/>
    </xsl:template>

    <xsl:template match="k:description|k:Snippet|k:Style"/>
</xsl:stylesheet>z(Extra content at the end of the documentr'   r'  ©r)   r*   r’   r“   r   ©rÐ   r•   r(  r0   r0   r1   Útest_incorrect_xsl_syntaxÛ  s    
ÿr.  c                 C  sN   t  d¡}d}t j|jdd�� t| |d� W d   ƒ n1 s@0    Y  d S )Nr�   a‹  <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
                              xmlns:k="http://www.opengis.net/kml/2.2">
    <xsl:output method="xml" omit-xml-declaration="yes"
                cdata-section-elements="k:description" indent="yes"/>
    <xsl:strip-space elements="*"/>

    <xsl:template match="node(*)|@*">
     <xsl:copy>
       <xsl:apply-templates select="node()|@*"/>
     </xsl:copy>
    </xsl:template>

    <xsl:template match="k:MultiGeometry|k:LineString">
        <xsl:apply-templates select='*'/>
    </xsl:template>

    <xsl:template match="k:description|k:Snippet|k:Style"/>
</xsl:stylesheet>zfailed to compiler'   r'  r*  r-  r0   r0   r1   Útest_incorrect_xsl_evalø  s    
r/  c                 C  sN   t  d¡}d}t j|jdd�� t| |d� W d   ƒ n1 s@0    Y  d S )Nr�   ag  <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
    <xsl:output method="xml" encoding="utf-8" indent="yes" />
    <xsl:strip-space elements="*"/>

    <xsl:template match="@*|node()">
        <xsl:copy>
            <xsl:copy-of select="document('non_existent.xml')/*"/>
        </xsl:copy>
    </xsl:template>
</xsl:stylesheet>zCannot resolve URIr'   r'  )r)   r*   r’   ZXSLTApplyErrorr   r-  r0   r0   r1   Útest_incorrect_xsl_apply  s    
r0  c                 C  sR   t  d¡}|d }t j|jdd�� t| |d� W d   ƒ n1 sD0    Y  d S )Nr�   zflatten.xslz!Start tag expected, '<' not foundr'   r'  r,  )rÐ   Zxml_data_pathZ	xml_etreer(  r0   r0   r1   Útest_wrong_stylesheet&  s    
þr1  c                 C  s€   t  d¡ t|||dkrdnd d��H}|dkr<t| ¡ ƒ}nt| ¡ ƒ}t| |d� |jr^J ‚W d   ƒ n1 sr0    Y  d S )Nr%   r4   r?   r@   r3   r'  )r)   r*   rC   r   rL   r   r   rŒ   )rÐ   r  r;   rH   r$  r0   r0   r1   Útest_stylesheet_file_close2  s    
r2  c                 C  sJ   t  d¡ t jtdd�� t| d|d� W d   ƒ n1 s<0    Y  d S )Nr%   z*To use stylesheet, you need lxml installedr'   r<   )r=   r  r®   )rÐ   r  r0   r0   r1   Útest_stylesheet_with_etreeC  s
    
ÿr3  c                 C  s\   t  d¡ d}tj ddd¡}t jt|d�� t|| d� W d   ƒ n1 sN0    Y  d S )Nr%   r&   rE   r«   zcta_rail_lines.kmlr'   r'  )r)   r*   r™   rG   rŠ   r’   r,   r   )rŽ   r/   Zkmlr0   r0   r1   Útest_empty_stylesheetK  s    
ÿr4  c              	   C  sì   t | ||dkrdnd d��Š}|dkr€|dkr€tjtdd��& t||dg d¢id	� W d   ƒ n1 sf0    Y  W d   ƒ d S t||dg d¢id	�}W d   ƒ n1 sª0    Y  tg d
¢g d¢g d¢g d¢g d¢dœƒ}t ||¡ d S ©Nr4   r?   r@   r%   z.reading file objects must return bytes objectsr'   rQ   rR   rX   rj   rm   rn   ro   rq   rr   )rC   r)   r’   rÕ   r   r   r+   r[   )r\   r=   r;   rH   Zdf_filelikert   r0   r0   r1   Útest_file_like_iterparseZ  s4    ÿÿý$
ý$ûÿ
r6  c              
   C  s4  |dkrt nt}t| ||dkr"dnd d��Â}|| ¡ ƒ�–}|dkrª|dkrªtjtdd��& t||dg d¢id	� W d   ƒ n1 s„0    Y  W d   ƒ W d   ƒ d S t||dg d¢id	�}W d   ƒ n1 sÔ0    Y  W d   ƒ n1 sò0    Y  tg d
¢g d¢g d¢g d¢g d¢dœƒ}t	 
||¡ d S r5  )r   r   rC   rL   r)   r’   rÕ   r   r   r+   r[   )r\   r=   r;   ZfuncIOrH   ÚbZ	df_fileiort   r0   r0   r1   Útest_file_io_iterparse|  sD    ýÿÿý$ÿýBûÿ
r8  c              	   C  s†   t |dd��f}|j| ¡ d� tjtdd��( t|j| dg d¢id� W d   ƒ n1 sZ0    Y  W d   ƒ n1 sx0    Y  d S )	Nr?   r@   r`   ú)iterparse is designed for large XML filesr'   rb   ©r   r   r   ÚdaterX   )rC   rc   rL   r)   r’   r   r   rŸ   )r=   re   r    rH   r0   r0   r1   Útest_url_path_error¦  s    ÿ
ýr<  c              	   C  s†   t jdd��f}tj|| |d� tjtdd��( t|| dg d¢i|d� W d   ƒ n1 sZ0    Y  W d   ƒ n1 sx0    Y  d S )	Nzgeom_xml.zip©rš   ©r=   rJ   r9  r'   rb   r:  ©r=   rY   rJ   )r+   rB   Úgeom_dfÚto_xmlr)   r’   r   r   )r=   rN   rG   r0   r0   r1   Útest_compression_errorµ  s    ÿ
ürB  c                 C  sD   t jtdd��" t| |g d¢d� W d   ƒ n1 s60    Y  d S )Nz&list is not a valid type for iterparser'   rR   rX   r   rÍ   r0   r0   r1   Útest_wrong_dict_typeÄ  s    ýrC  c                 C  sD   t jtdd��" t| |ddid� W d   ƒ n1 s60    Y  d S )Nz8<class 'str'> is not a valid type for value in iterparser'   rQ   rS   rX   r   rÍ   r0   r0   r1   Útest_wrong_dict_valueÍ  s    ÿrD  c              	   C  s´   d}t jdd���}t|ddd��}| |¡ W d   ƒ n1 s@0    Y  tjtdd��* t|| d	gd
g d¢id� W d   ƒ n1 sˆ0    Y  W d   ƒ n1 s¦0    Y  d S )Na‘  <?xml version='1.0' encoding='utf-8'?>
  <row>
    <shape>square</shape>
    <degrees>00360</degrees>
    <sides>4.0</sides>
    <date>2020-01-01</date>
   </row>
  <row>
    <shape>circle</shape>
    <degrees>00360</degrees>
    <sides/>
    <date>2021-01-01</date>
  </row>
  <row>
    <shape>triangle</shape>
    <degrees>00180</degrees>
    <sides>3.0</sides>
    <date>2022-01-01</date>
  </row>
zbad.xmlr=  r>   r?   r@   zDExtra content at the end of the document|junk after document elementr'   r;  rb   r:  )r=   Zparse_datesrY   )r+   rB   rC   rD   r)   r’   r´   r   )r=   Zbad_xmlrG   rH   r0   r0   r1   Útest_bad_xmlÔ  s    (ý
ürE  c                 C  s^   d}t t|ƒd| d�}t|| dddgid�}tdd	gd
dgdœƒ}t ||¡ t ||¡ d S )Na-  <!-- comment before root -->
<shapes>
  <!-- comment within root -->
  <shape>
    <name>circle</name>
    <type>2D</type>
  </shape>
  <shape>
    <name>sphere</name>
    <type>3D</type>
    <!-- comment within child -->
  </shape>
  <!-- comment within root -->
</shapes>
<!-- comment after root -->rï   r£   r   r$   rñ   rX   r   rõ   ró   rô   ©r$   rñ   r©   rª   r0   r0   r1   Útest_commentý  s    ÿþÿrG  c                 C  s^   d}t t|ƒd| d�}t|| dddgid�}tdd	gd
dgdœƒ}t ||¡ t ||¡ d S )Na8  <?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE non-profits [
    <!ELEMENT shapes (shape*) >
    <!ELEMENT shape ( name, type )>
    <!ELEMENT name (#PCDATA)>
]>
<shapes>
  <shape>
    <name>circle</name>
    <type>2D</type>
  </shape>
  <shape>
    <name>sphere</name>
    <type>3D</type>
  </shape>
</shapes>rï   r£   r   r$   rñ   rX   r   rõ   ró   rô   rF  r©   rª   r0   r0   r1   Útest_dtd   s    ÿþÿrH  c                 C  s^   d}t t|ƒd| d�}t|| dddgid�}tdd	gd
dgdœƒ}t ||¡ t ||¡ d S )Nam  <?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="style.xsl"?>
<?display table-view?>
<?sort alpha-ascending?>
<?textinfo whitespace is allowed ?>
<?elementnames <shape>, <name>, <type> ?>
<shapes>
  <shape>
    <name>circle</name>
    <type>2D</type>
  </shape>
  <shape>
    <name>sphere</name>
    <type>3D</type>
  </shape>
</shapes>rï   r£   r   r$   rñ   rX   r   rõ   ró   rô   rF  r©   rª   r0   r0   r1   Útest_processing_instructionD  s    ÿþÿrI  c                 C  sH   t jtdd��& t| |dg d¢id� W d   ƒ n1 s:0    Y  d S )Nz+No result from selected items in iterparse.r'   Únode©Zattr1Zelem1Zelem2Zelem3rX   )r)   r’   r   r   rÍ   r0   r0   r1   Útest_no_resulth  s    ÿ
ýrL  c                 C  sH   t jtdd��& t| |dg d¢id� W d   ƒ n1 s:0    Y  d S )NzNo columns to parse from filer'   rQ   rK  rX   )r)   r’   r   r   rÍ   r0   r0   r1   Útest_empty_datas  s    
ýrM  c                  C  s`   t  d¡ d} d}tt| ƒdddg|d�}tdd	d
dddœddddddœdœƒ}t ||¡ d S )Nr%   a  <?xml version="1.0" encoding="UTF-8"?>
<catalog>
  <cd>
    <title>Empire Burlesque</title>
    <artist>Bob Dylan</artist>
    <country>USA</country>
    <company>Columbia</company>
    <price>10.90</price>
    <year>1985</year>
  </cd>
  <cd>
    <title>Hide your heart</title>
    <artist>Bonnie Tyler</artist>
    <country>UK</country>
    <company>CBS Records</company>
    <price>9.90</price>
    <year>1988</year>
  </cd>
  <cd>
    <title>Greatest Hits</title>
    <artist>Dolly Parton</artist>
    <country>USA</country>
    <company>RCA</company>
    <price>9.90</price>
    <year>1982</year>
  </cd>
  <cd>
    <title>Still got the blues</title>
    <artist>Gary Moore</artist>
    <country>UK</country>
    <company>Virgin records</company>
    <price>10.20</price>
    <year>1990</year>
  </cd>
  <cd>
    <title>Eros</title>
    <artist>Eros Ramazzotti</artist>
    <country>EU</country>
    <company>BMG</company>
    <price>9.90</price>
    <year>1997</year>
  </cd>
  <cd>
    <title>One night only</title>
    <artist>Bee Gees</artist>
    <country>UK</country>
    <company>Polydor</company>
    <price>10.90</price>
    <year>1998</year>
  </cd>
  <cd>
    <title>Sylvias Mother</title>
    <artist>Dr.Hook</artist>
    <country>UK</country>
    <company>CBS</company>
    <price>8.10</price>
    <year>1973</year>
  </cd>
  <cd>
    <title>Maggie May</title>
    <artist>Rod Stewart</artist>
    <country>UK</country>
    <company>Pickwick</company>
    <price>8.50</price>
    <year>1990</year>
  </cd>
  <cd>
    <title>Romanza</title>
    <artist>Andrea Bocelli</artist>
    <country>EU</country>
    <company>Polydor</company>
    <price>10.80</price>
    <year>1996</year>
  </cd>
  <cd>
    <title>When a man loves a woman</title>
    <artist>Percy Sledge</artist>
    <country>USA</country>
    <company>Atlantic</company>
    <price>8.70</price>
    <year>1987</year>
  </cd>
  <cd>
    <title>Black angel</title>
    <artist>Savage Rose</artist>
    <country>EU</country>
    <company>Mega</company>
    <price>10.90</price>
    <year>1995</year>
  </cd>
  <cd>
    <title>1999 Grammy Nominees</title>
    <artist>Many</artist>
    <country>USA</country>
    <company>Grammy</company>
    <price>10.20</price>
    <year>1999</year>
  </cd>
  <cd>
    <title>For the good times</title>
    <artist>Kenny Rogers</artist>
    <country>UK</country>
    <company>Mucik Master</company>
    <price>8.70</price>
    <year>1995</year>
  </cd>
  <cd>
    <title>Big Willie style</title>
    <artist>Will Smith</artist>
    <country>USA</country>
    <company>Columbia</company>
    <price>9.90</price>
    <year>1997</year>
  </cd>
  <cd>
    <title>Tupelo Honey</title>
    <artist>Van Morrison</artist>
    <country>UK</country>
    <company>Polydor</company>
    <price>8.20</price>
    <year>1971</year>
  </cd>
  <cd>
    <title>Soulsville</title>
    <artist>Jorn Hoel</artist>
    <country>Norway</country>
    <company>WEA</company>
    <price>7.90</price>
    <year>1996</year>
  </cd>
  <cd>
    <title>The very best of</title>
    <artist>Cat Stevens</artist>
    <country>UK</country>
    <company>Island</company>
    <price>8.90</price>
    <year>1990</year>
  </cd>
  <cd>
    <title>Stop</title>
    <artist>Sam Brown</artist>
    <country>UK</country>
    <company>A and M</company>
    <price>8.90</price>
    <year>1988</year>
  </cd>
  <cd>
    <title>Bridge of Spies</title>
    <artist>T`Pau</artist>
    <country>UK</country>
    <company>Siren</company>
    <price>7.90</price>
    <year>1987</year>
  </cd>
  <cd>
    <title>Private Dancer</title>
    <artist>Tina Turner</artist>
    <country>UK</country>
    <company>Capitol</company>
    <price>8.90</price>
    <year>1983</year>
  </cd>
  <cd>
    <title>Midt om natten</title>
    <artist>Kim Larsen</artist>
    <country>EU</country>
    <company>Medley</company>
    <price>7.80</price>
    <year>1983</year>
  </cd>
  <cd>
    <title>Pavarotti Gala Concert</title>
    <artist>Luciano Pavarotti</artist>
    <country>UK</country>
    <company>DECCA</company>
    <price>9.90</price>
    <year>1991</year>
  </cd>
  <cd>
    <title>The dock of the bay</title>
    <artist>Otis Redding</artist>
    <country>USA</country>
    <COMPANY>Stax Records</COMPANY>
    <PRICE>7.90</PRICE>
    <YEAR>1968</YEAR>
  </cd>
  <cd>
    <title>Picture book</title>
    <artist>Simply Red</artist>
    <country>EU</country>
    <company>Elektra</company>
    <price>7.20</price>
    <year>1985</year>
  </cd>
  <cd>
    <title>Red</title>
    <artist>The Communards</artist>
    <country>UK</country>
    <company>London</company>
    <price>7.80</price>
    <year>1987</year>
  </cd>
  <cd>
    <title>Unchain my heart</title>
    <artist>Joe Cocker</artist>
    <country>USA</country>
    <company>EMI</company>
    <price>8.20</price>
    <year>1987</year>
  </cd>
</catalog>
a7  <?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<html>
<body>
  <h2>My CD Collection</h2>
  <table border="1">
    <tr bgcolor="#9acd32">
      <th style="text-align:left">Title</th>
      <th style="text-align:left">Artist</th>
    </tr>
    <xsl:for-each select="catalog/cd">
    <tr>
      <td><xsl:value-of select="title"/></td>
      <td><xsl:value-of select="artist"/></td>
    </tr>
    </xsl:for-each>
  </table>
</body>
</html>
</xsl:template>
</xsl:stylesheet>
z.//tr[td and position() <= 6]rT   Úartist)rž   rí   r  zEmpire BurlesquezHide your heartzGreatest HitszStill got the bluesZErosr   z	Bob DylanzBonnie TylerzDolly Partonz
Gary MoorezEros Ramazzotti)rT   rN  )r)   r*   r   r   r   r+   r[   )r«   r(  Zdf_xslrt   r0   r0   r1   Útest_online_stylesheet|  s4    
 VüûûøÿrO  c                 C  s~   t  ¡ �J}tj|d| |d� t|| |d�}t||| dg d¢i|d�}W d   ƒ n1 sX0    Y  t  |t¡ t  |t¡ d S )NF)r„   r=   rJ   r>  rb   r   r?  )r+   rB   r@  rA  r   rO   r[   )r=   rN   rM   rf   rg   r0   r0   r1   Útest_compression_readŒ  s    
ÿ
û$rP  c              	   C  s  |}|}||kr$t  |› d|› �¡ tdftdftdftdfdœ}tddd	�}|d urd|jd
f|d< tddd	�}|d ur„tdf|d< || \}}	t 	¡ �\}
t
j|
| |d� t j||	d�� t|
| |d� W d   ƒ n1 sÜ0    Y  W d   ƒ n1 sú0    Y  d S )Nz == zInvalid data streamzNot a gzipped filezFile is not a zip filez%file could not be opened successfully)Úbz2ÚgzipÚzipÚtarZ	zstandardÚignore)ÚerrorszUnknown frame descriptorÚzstdÚlzmaz%Input format not supported by decoderÚxzr>  r'   )r)   ÚskipÚOSErrorr	   r   r
   Z	ZstdErrorr   r+   rB   r@  rA  r’   r   )r=   rJ   rN   Zactual_compressionZattempted_compressionrV  rW  rX  Z	error_clsZ	error_strrG   r0   r0   r1   Útest_wrong_compression   s(    ü
r\  c              	   C  sh   t jtdd��F t ¡ �}t|| dd� W d   ƒ n1 s<0    Y  W d   ƒ n1 sZ0    Y  d S )NzUnrecognized compression typer'   Z7zr>  )r)   r’   r¯   r+   rB   r   )r=   rG   r0   r0   r1   Útest_unsuported_compression¼  s    
r]  c                 C  sN   t  d¡ t  d¡ d| j› d�}t|d|d�}t|d|d�}t ||¡ d S )NZs3fsr%   zs3://z
/books.xml)r=   Zstorage_optionsr<   )r)   r*   r$   r   r+   r[   )Zs3_public_bucket_with_dataZs3soZs3rÈ   rÉ   r0   r0   r1   Útest_s3_parser_consistencyÅ  s    

r^  c                   s\  d}t  d|¡�" tt|ƒ| |d�}W d   ƒ n1 s80    Y  |dkrdt d¡‰t  ˆ ¡ ¡}n
t  |¡}t	t
ddg|d�t
dd	gd
d�t
ddgdd�t
dd g|d�t
d	tgd
d�t
dtgdd�t
ttgd
d�t
ddgdd�t
dtgdd�dœ	ƒ‰|dk�rHt d¡‰ddlm‰  t	‡ ‡‡fdd„ˆjD ƒƒ‰ˆ ˆ d d g¡ƒˆd< tj|ˆdd� d S )Na;  <?xml version='1.0' encoding='utf-8'?>
<data xmlns="http://example.com">
<row>
  <a>x</a>
  <b>1</b>
  <c>4.0</c>
  <d>x</d>
  <e>2</e>
  <f>4.0</f>
  <g></g>
  <h>True</h>
  <i>False</i>
</row>
<row>
  <a>y</a>
  <b>2</b>
  <c>5.0</c>
  <d></d>
  <e></e>
  <f></f>
  <g></g>
  <h>False</h>
  <i></i>
</row>
</data>zmode.string_storage)r=   Údtype_backendZpyarrowÚxÚyr¨   r    r!   ZInt64r½   g      @ZFloat64TFÚboolean)	r‰   r7  r  ÚdÚerH   ÚgÚhÚir   )ÚArrowExtensionArrayc                   s$   i | ]}|ˆ ˆj ˆ| d d�ƒ“qS )T)Zfrom_pandas)Úarray)Ú.0Úcol©rh  r  Úpar0   r1   Ú
<dictcomp>  s   ÿz1test_read_xml_nullable_dtypes.<locals>.<dictcomp>re  )Zcheck_column_type)ÚpdZoption_contextr   r   r)   r*   Z
ArrowDtyper¥   ZStringDtyper   r   r   Zpandas.arraysrh  Úcolumnsri  r+   r[   )r=   Zstring_storager_  Zusing_infer_stringrE   r  Zstring_dtyper0   rl  r1   Útest_read_xml_nullable_dtypesÓ  s:    0

÷ÿ

þÿrq  c                  C  sB   d} t jt| d�� tddd� W d   ƒ n1 s40    Y  d S )NzPdtype_backend numpy is invalid, only 'numpy_nullable' and 'pyarrow' are allowed.r'   ÚtestÚnumpy)r_  rÌ   r.   r0   r0   r1   Útest_invalid_dtype_backend  s    ÿrt  )ŠÚ
__future__r   Úior   r   rX  r   r™   Útarfiler   Úurllib.errorr   Úxml.etree.ElementTreer   Úzipfiler	   rs  Únpr)   Zpandas.compat._optionalr
   Zpandas.errorsr   r   Zpandas.util._test_decoratorsÚutilZ_test_decoratorsÚtdZpandasro  r   r   r   Zpandas._testingZ_testingr+   Zpandas.io.commonr   Zpandas.io.xmlr   r¾   r@  r-   rÅ   r  r2   Zfixturer;   r8   Z
skip_if_nor=   rI   rO   r_   ÚmarkÚnetworkZ
single_cpurh   ru   ry   r~   r€   r‡   r‹   r�   Zparametrizer–   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  r	  r  r  r  r  r  Zskip_if_installedr  r  r   r"  r%  r&  r)  r+  r.  r/  r0  r1  r2  r3  r4  r6  r8  r<  rB  rC  rD  rE  rG  rH  rI  rL  rM  rO  rP  r\  r]  r^  rq  rt  r0   r0   r0   r1   Ú<module>   sF  6
ýÿûûûû	Æâÿm




	4

	%&*1

	
"*	)#$$	  	F