o
    Û­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>ÚID_00001ÚID_00002ÚID_00003ÚID_00004ÚID_00005©r   é   é   r   r   zBlue Line (Forest Park)zRed, Purple Linez#LineStyle01Ú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ÚnameÚstyleUrlÚextrudeÚaltitudeModeÚcoordinatesc                  C  sJ   t  d¡ d} tjt| d�� ttƒ W d   ƒ d S 1 sw   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ÚtmÚassert_produces_warningÚFutureWarningr   Úxml_default_nmsp©Úmsg© r;   úY/var/www/html/CropPilot/venv/lib/python3.10/site-packages/pandas/tests/io/xml/test_xml.pyÚtest_literal_xml_deprecationõ   s   
ÿ
"ÿr=   ÚrbÚr)Úparamsc                 C  ó   | j S ©N©Úparam©Úrequestr;   r;   r<   Úmode  ó   rG   r/   )ÚmarksÚetreec                 C  rA   rB   rC   rE   r;   r;   r<   Úparser  rH   rK   c              	   K  st   t  ¡ �,}t|ddd��}| | ¡ W d   ƒ n1 sw   Y  t|fi |¤ŽW  d   ƒ S 1 s3w   Y  d S )NÚwúutf-8©Úencoding)r5   Úensure_cleanÚopenÚwriter   )ÚdataÚkwargsÚpathÚfr;   r;   r<   Úread_xml_iterparse  s   
ÿ$ýrW   c              
   K  s¸   t | d|d��K}t ¡ �6}t|ddd��}| |j ¡ ¡ W d   ƒ n1 s'w   Y  t|fi |¤ŽW  d   ƒ W  d   ƒ S 1 sEw   Y  W d   ƒ d S 1 sUw   Y  d S )Nr?   )ÚcompressionrL   rM   rN   )r   r5   rP   rQ   rR   ÚhandleÚreadr   )Ú	comp_pathÚcompression_onlyrT   ÚhandlesrU   rV   r;   r;   r<   Úread_xml_iterparse_comp  s   
ÿýÿ"ÿr^   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/   ©rK   rJ   Úbook©ÚcategoryÚtitleÚyearÚauthorÚprice©rK   Ú	iterparse©r3   r4   r   r5   Úassert_frame_equal)Ú	xml_booksÚdf_file_lxmlÚdf_file_etreeÚdf_iter_lxmlÚdf_iter_etreer;   r;   r<   Útest_parser_consistency_file  s    

ý
ýrp   c                 C  sJ   |j td� tttƒ| d�}ttt ¡ ƒ| dg d¢id�}t ||¡ d S )N©Úcontentr_   Úrowr   rg   )Úserve_contentr8   r   r   r   Úencoder5   rj   )rK   Ú
httpserverÚdf_xpathÚdf_iterr;   r;   r<   Útest_parser_consistency_url3  s   

ýry   c                 C  s~   t | ||dkr	dnd d��}t||d�}W d   ƒ n1 sw   Y  tg d¢g d¢g d¢g d¢g d	¢d
œƒ}t ||¡ d S ©Nr?   rM   rN   r_   ©ÚcookingÚchildrenÚweb©zEveryday ItalianzHarry PotterzLearning XML©zGiada De LaurentiiszJ K. RowlingzErik T. Ray©éÕ  r‚   iÓ  ©g      >@g=
×£pý=@gš™™™™ùC@©rb   rc   re   rd   rf   )rQ   r   r   r5   rj   )rk   rK   rG   rV   Údf_fileÚdf_expectedr;   r;   r<   Útest_file_likeB  s   ÿûÿ
r‡   c                 C  sœ   t | ||dkr	dnd d��}| ¡ }W d   ƒ n1 sw   Y  tt|tƒr+t|ƒnt|ƒ|d�}tg d¢g d¢g d¢g d¢g d	¢d
œƒ}t 	||¡ d S rz   )
rQ   rZ   r   Ú
isinstanceÚbytesr   r   r   r5   rj   )rk   rK   rG   rV   Úxml_objÚdf_ior†   r;   r;   r<   Útest_file_ioS  s    
ÿþûÿ
rŒ   c                 C  s¬   t | ||dkr	dnd d��}| ¡ }W d   ƒ n1 sw   Y  |dkr,t| ¡ ƒ}n|dkr4t|ƒ}t||d�}tg d¢g d¢g d¢g d	¢g d
¢dœƒ}t ||¡ d S ©Nr?   rM   rN   r>   r_   r{   r   r€   r�   rƒ   r„   )rQ   rZ   r   Údecoder   r   r5   rj   ©rk   rK   rG   rV   rŠ   Údf_strr†   r;   r;   r<   Ú test_file_buffered_reader_stringi  s"   
ÿûÿ
r‘   c                 C  s´   t | ||dkr	dnd d��}t|ƒ | ¡ }W d   ƒ n1 s w   Y  |dkr0t| ¡ ƒ}n|dkr8t|ƒ}t||d�}tg d¢g d¢g d¢g d	¢g d
¢dœƒ}t ||¡ d S r�   )	rQ   ÚnextrZ   r   rŽ   r   r   r5   rj   r�   r;   r;   r<   Ú,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></ä¸­æ–‡æ¨™ç±¤>r_   r%   r&   )Úc1Úc2r   )Úindex©r   r   r   r5   rj   )rK   Útxtr�   r†   r;   r;   r<   Ú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 )	Nr_   )uP   å•�  è‹¥ç®‡æ˜¯é‚ªè€Œè¨€ç ´é‚ª ä½•è€…æ˜¯æ­£è€Œé�“(Sorry, this is Big5 only)ç”³æ­£u;   å•� æ—¢ç ´æœ‰å¾—ç”³ç„¡å¾— äº¦æ‡‰ä½†ç ´æ€§åŸ·ç”³å�‡å��ä»¥ä¸�uO   å•� æ—¢ç ´æ€§ç”³å�‡ äº¦æ‡‰ä½†ç ´æœ‰ç”³ç„¡ è‹¥æœ‰ç„¡å…©æ´— äº¦æ‡‰æ€§å�‡é›™ç ´è€¶Ú u<   ç­”  é‚ªæ—¢ç„¡é‡� æ­£äº¦å¤šé€”  å¤§ç•¥ç‚ºè¨€ä¸�å‡ºäºŒç¨® è¬‚u;   æœ‰å¾—èˆ‡ç„¡å¾— æœ‰å¾—æ˜¯é‚ªé ˆç ´ ç„¡å¾—æ˜¯æ­£é ˆç”³
		æ•…uL   ç­”  ä¸�ä¾‹  æœ‰ç„¡çš†æ˜¯æ€§ æ‰€ä»¥é ˆé›™ç ´ æ—¢åˆ†æ€§å�‡ç•° æ•…æœ‰ç ´ä¸�ç ´)NuV   ç­” æ€§åŸ·æ˜¯æœ‰å¾— å�‡å��æ˜¯ç„¡å¾—  ä»Šç ´æœ‰å¾—ç”³ç„¡å¾— å�³æ˜¯ç ´æ€§åŸ·ç”³å�‡å��ä¹ŸN)u   å•�u   ç­”Úa)r   r   Újoinr5   rj   )Úxml_doc_ch_utfrK   r…   r†   r;   r;   r<   Útest_file_charset¤  s   þÿø
ðÿrŸ   c                 C  sN   t | dƒ�}tt| ¡ ƒ|d� |jrJ ‚W d   ƒ d S 1 s w   Y  d S )Nr>   r_   )rQ   r   r   rZ   Úclosed)rk   rK   rV   r;   r;   r<   Útest_file_handle_closeÃ  s   "ýr¡   Úvalr›   ó    c                 C  sŠ   t  d¡}d ddg¡}t j|j|d��' t| tƒr#tt| ƒdd� ntt	| ƒdd� W d   ƒ d S W d   ƒ d S 1 s>w   Y  d S )Nú
lxml.etreeú|zDocument is emptyzNone \(line 0\)r1   r/   r_   )
r3   r4   r�   ÚraisesÚXMLSyntaxErrorrˆ   Ústrr   r   r   )r¢   Ú
lxml_etreer:   r;   r;   r<   Útest_empty_string_lxmlÊ  s   
ýÿ
ü"þrª   c                 C  sp   t jtdd��' t| tƒrtt| ƒdd� ntt| ƒdd� W d   ƒ d S W d   ƒ d S 1 s1w   Y  d S )Nzno element foundr1   rJ   r_   )r3   r¦   r   rˆ   r¨   r   r   r   )r¢   r;   r;   r<   Útest_empty_string_etreeÜ  s   
ü"þr«   c                 C  sT   d}t j ddd¡}tjt|d�� t|| d� W d   ƒ d S 1 s#w   Y  d S )Nr0   rS   Úhtmlz	books.xmlr1   r_   )ÚosrU   r�   r3   r¦   r7   r   )rK   r:   Úfilenamer;   r;   r<   Útest_wrong_file_pathå  s   ÿþ"ür¯   c                 C  sŒ   t  d¡ t|dd��}| j| ¡ d� t| jdd�}W d   ƒ n1 s%w   Y  tg d¢g d¢g d	¢g d
¢g d¢dœƒ}t 	||¡ d S )Nr/   rM   rN   rq   ú.//book[count(*)=4]©Úxpathr{   r   r€   r�   rƒ   r„   )
r3   r4   rQ   rt   rZ   r   Úurlr   r5   rj   )rv   Úxml_filerV   Údf_urlr†   r;   r;   r<   Útest_urlô  s   
þûÿ
r¶   c                 C  sR   |j ddd� tjtdd�� t|jd| d� W d   ƒ d S 1 s"w   Y  d S )Nz	NOT FOUNDi”  )ÚcodezHTTP Error 404: NOT FOUNDr1   r°   ©r²   rK   )rt   r3   r¦   r   r   r³   )rK   rv   r;   r;   r<   Ú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)rK   Údtypers   )r   r   r   )rK   rh   r»   )z 4 z 0 z 3 )z 
              square
          z 
              circle
          z"
              triangle
          )ú	360	r¼   z	180	©r»   ©r   r   rW   r   r5   rj   ©rK   Úxmlrw   rx   r†   r;   r;   r<   Útest_whitespace  s"   
üù	örÁ   c                 C  sL   t  d¡ t jtdd�� t| ddd� W d   ƒ d S 1 sw   Y  d S )Nr/   úxpath does not return any nodesr1   z	.//pythonr¸   ©r3   r4   r¦   Ú
ValueErrorr   ©rk   r;   r;   r<   Útest_empty_xpath_lxmlH  s   
"ÿrÆ   c                 C  óB   t jtdd�� t| ddd� W d   ƒ d S 1 sw   Y  d S )Nz/You have used an incorrect or unsupported XPathr1   ú	.//[book]rJ   r¸   ©r3   r¦   ÚSyntaxErrorr   rÅ   r;   r;   r<   Útest_bad_xpath_etreeN  s
   ÿ"ýrË   c                 C  óN   t  d¡}t j|jdd�� t| ddd� W d   ƒ d S 1 s w   Y  d S )Nr¤   zInvalid expressionr1   rÈ   r/   r¸   ©r3   r4   r¦   ÚXPathEvalErrorr   )rk   r©   r;   r;   r<   Útest_bad_xpath_lxmlU  ó   
"ÿrÏ   c                 C  ól   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²   Ú
namespacesrK   rs   r   rg   r   r   ç      @Únanç      @)r   r   r8   rW   r   Úfloatr5   rj   ©rK   Údf_nmsprx   r†   r;   r;   r<   Útest_default_namespace_  s&   ü
ýýÿrÝ   c                 C  rÑ   )Nú
.//doc:rowÚdocrÔ   rÕ   rs   r   rg   r   r   r×   rØ   rÙ   )r   r   Úxml_prefix_nmsprW   r   rÚ   r5   rj   rÛ   r;   r;   r<   Ú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ß   rJ   )r3   r4   r   r   r8   r5   rj   ©Údf_lxmlÚdf_etreer;   r;   r<   Ú"test_consistency_default_namespace�  ó   
üü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Õ   rJ   )r3   r4   r   r   rà   r5   rj   râ   r;   r;   r<   Ú!test_consistency_prefix_namespace£  ræ   rç   c                 C  óB   t jtdd�� t| d|d� W d   ƒ d S 1 sw   Y  d S )NrÂ   r1   z.//Placemarkr¸   ©r3   r¦   rÄ   r   ©rk   rK   r;   r;   r<   Ú*test_missing_prefix_with_default_namespace¹  ó   "ÿrë   c                 C  rÇ   )Nz'you used an undeclared namespace prefixr1   ú.//kml:PlacemarkrJ   r¸   rÉ   )Úkml_cta_rail_linesr;   r;   r<   Ú$test_missing_prefix_definition_etree¾  rì   rï   c                 C  rÌ   )Nr¤   zUndefined namespace prefixr1   rí   r/   r¸   rÍ   )rî   r©   r;   r;   r<   Ú#test_missing_prefix_definition_lxmlÃ  rÐ   rð   Úkeyc                 C  sV   t  d¡ t jtdd�� tttƒd| didd� W d   ƒ d S 1 s$w   Y  d S )Nr/   z0empty namespace prefix is not supported in XPathr1   rí   úhttp://www.opengis.net/kml/2.2rÕ   )r3   r4   r¦   Ú	TypeErrorr   r   r8   )rñ   r;   r;   r<   Ú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 )
Nr_   r`   r„   rg   r{   r   r€   r�   rƒ   ©r   r   r5   rj   ©rk   rK   r…   rx   r†   r;   r;   r<   Ú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_onlyrK   r`   rb   rg   r{   rõ   rö   r;   r;   r<   Ú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_onlyrK   r`   )rc   re   rd   rf   rg   r   r€   r�   rƒ   rõ   rö   r;   r;   r<   Útest_file_only_elemsù  s   
ýüÿ	rû   c                 C  sD   t jtdd�� t| dd|d� W d   ƒ d S 1 sw   Y  d S )Nz3Either element or attributes can be parsed not bothr1   T)rú   rø   rK   ré   )rî   rK   r;   r;   r<   Útest_elem_and_attrs_only  s   þ"ürü   c                 C  óL   d}t jtdd�� tt|ƒdd| d� W d   ƒ d S 1 sw   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 attributesr1   ú./rowT)r²   rø   rK   ©r3   r¦   rÄ   r   r   ©rK   rÀ   r;   r;   r<   Útest_empty_attrs_only  s   þ"ür  c                 C  rý   )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þ   r1   rÿ   T)r²   rú   rK   r   r  r;   r;   r<   Ú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±   rJ   r¸   ÚstationÚNameÚcoords©rh   rg   )r3   r4   r   r   rW   r5   rj   )rÀ   rã   rä   Ú
df_iter_lxÚ
df_iter_etr;   r;   r<   Ú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ÚCol3ÚCol4ÚCol5©ÚnamesrK   r`   r„   )rK   r  rh   r{   r   r€   r�   rƒ   rõ   rö   r;   r;   r<   Ú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)Útype_dimr   Ú	type_edge©r²   rK   r  r   )Útyper*   r  ©rK   rh   r  Ú2DÚ3Dr   ÚsphereÚcurvedr¾   r¿   r;   r;   r<   Ú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¿   r;   r;   r<   Ú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¿   r;   r;   r<   Útest_repeat_elementsÊ  s,   ü
üüÿ	r%  c                 C  sF   t jtdd�� t| g d¢|d� W d   ƒ d S 1 sw   Y  d S )Nznames does not match lengthr1   )r  r  r  r  ré   rê   r;   r;   r<   Útest_names_option_wrong_lengthû  s   "ÿr&  c                 C  rè   )Nzis not a valid type for namesr1   zCol1, Col2, Col3r  ©r3   r¦   ró   r   rê   r;   r;   r<   Útest_names_option_wrong_type   rì   r(  c                 C  s@   t jtdd�� t| |d� W d   ƒ d S 1 sw   Y  d S )Nz'utf-8' codec can't decoder1   r_   ©r3   r¦   ÚUnicodeDecodeErrorr   ©Úxml_baby_namesrK   r;   r;   r<   Útest_wrong_encoding  s   "ÿr-  c                 C  rè   )NzLUTF-16 stream does not start with BOM|'utf-16(-le)?' codec can't decode byter1   zUTF-16©rO   rK   )r3   r¦   ÚUnicodeErrorr   r+  r;   r;   r<   Útest_utf16_encoding  s   ý"ùr0  c                 C  rè   )Nzunknown encoding: UFT-8r1   zUFT-8r.  )r3   r¦   ÚLookupErrorr   r+  r;   r;   r<   Útest_unknown_encoding  rì   r2  c                 C  rè   )Nz'ascii' codec can't decode byter1   Úasciir.  r)  r+  r;   r;   r<   Útest_ascii_encoding  rì   r4  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©rK   rO   rJ   z
iso-8859-1rs   )ÚrankÚmalenameÚ
femalename)rK   rO   rh   ri   )r,  Údf_xpath_lxmlÚdf_xpath_etreern   ro   r;   r;   r<   Ú%test_parser_consistency_with_encoding"  s$   

ü
ür;  c                  C  sT   t  d¡ d} t jtdd�� tt| ƒdd d� W d   ƒ d S 1 s#w   Y  d S )Nr/   ú-<data>
  <row>
    <a>c</a>
  </row>
</data>
zencoding Noner1   r5  )r3   r4   r¦   ró   r   r   )rS   r;   r;   r<   Ú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<  rJ   r5  rœ   Úcr˜   )rS   ÚresultÚexpectedr;   r;   r<   Útest_none_encoding_etreeF  s   rA  c                 C  s<   t jtdd�� t| ƒ W d   ƒ d S 1 sw   Y  d S )Nz7lxml not found, please install or use the etree parser.r1   )r3   r¦   ÚImportErrorr   rÅ   r;   r;   r<   Útest_default_parser_no_lxmlV  s
   ÿ
"ýrC  c                 C  s@   t jtdd�� t| dd� W d   ƒ d S 1 sw   Y  d S )Nz,Values for parser can only be lxml or etree.r1   Úbs4r_   ré   rÅ   r;   r;   r<   Útest_wrong_parser^  s
   ÿ"ýrE  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Ö   Ú
stylesheetÚ	Placemarkr(   r  )r3   r4   r   r5   rj   Údf_kml)rî   Úxsl_flatten_docÚdf_stylerx   r;   r;   r<   Útest_stylesheet_fileh  s   
üÿþrN  c                 C  sh   t  d¡ t|||dkrdnd d��}t| dddi|d�}W d   ƒ n1 s'w   Y  t t|¡ d S ©	Nr/   r?   rM   rN   rF  rG  rò   rH  )r3   r4   rQ   r   r5   rj   rK  )rî   rL  rG   rV   rM  r;   r;   r<   Útest_stylesheet_file_likeƒ  s   
üÿrP  c                 C  sŠ   t  d¡ t|||dkrdnd d��}|dkrt| ¡ ƒ}nt| ¡ ƒ}W d   ƒ n1 s.w   Y  t| dddi|d	�}t t	|¡ d S )
Nr/   r?   rM   rN   r>   rF  rG  rò   rH  )
r3   r4   rQ   r   rZ   r   r   r5   rj   rK  ©rî   rL  rG   rV   Úxsl_objrM  r;   r;   r<   Útest_stylesheet_io�  s   
€üürS  c                 C  sp   t  d¡ t|||dkrdnd d��}| ¡ }W d   ƒ n1 s!w   Y  t| dddi|d�}t t|¡ d S rO  )r3   r4   rQ   rZ   r   r5   rj   rK  rQ  r;   r;   r<   Útest_stylesheet_buffered_reader¦  s   

ÿürT  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>©rI  )r3   r4   r   r   r5   rj   )rÀ   ÚxslÚdf_origrM  r;   r;   r<   Útest_style_charsetµ  s   
rX  c                 C  sL   t  d¡}t j|jdd�� t| |d� W d   ƒ d S 1 sw   Y  d S )Nr¤   zdocument is not a stylesheetr1   rU  ©r3   r4   r¦   ÚXSLTParseErrorr   )rî   rk   r©   r;   r;   r<   Útest_not_stylesheetÒ  s   
ÿ"ýr[  c                 C  óP   t  d¡}d}t j|jdd�� t| |d� W d   ƒ d S 1 s!w   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 documentr1   rU  ©r3   r4   r¦   r§   r   ©rî   r©   rV  r;   r;   r<   Útest_incorrect_xsl_syntaxÛ  s   
ÿ"ýr_  c                 C  r\  )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 compiler1   rU  rY  r^  r;   r;   r<   Útest_incorrect_xsl_evalø  s
   
"ÿr`  c                 C  r\  )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 URIr1   rU  )r3   r4   r¦   ÚXSLTApplyErrorr   r^  r;   r;   r<   Útest_incorrect_xsl_apply  s
   
"ÿrb  c                 C  sT   t  d¡}|d }t j|jdd�� t| |d� W d   ƒ d S 1 s#w   Y  d S )Nr¤   zflatten.xslz!Start tag expected, '<' not foundr1   rU  r]  )rî   Úxml_data_pathÚ	xml_etreerV  r;   r;   r<   Útest_wrong_stylesheet&  s   
þ"üre  c                 C  s‚   t  d¡ t|||dkrdnd d��%}|dkrt| ¡ ƒ}nt| ¡ ƒ}t| |d� |jr/J ‚W d   ƒ d S 1 s:w   Y  d S )Nr/   r?   rM   rN   r>   rU  )r3   r4   rQ   r   rZ   r   r   r    )rî   rL  rG   rV   rR  r;   r;   r<   Útest_stylesheet_file_close2  s   
"ørf  c                 C  sL   t  d¡ t jtdd�� t| d|d� W d   ƒ d S 1 sw   Y  d S )Nr/   z*To use stylesheet, you need lxml installedr1   rJ   )rK   rI  rÃ   )rî   rL  r;   r;   r<   Útest_stylesheet_with_etreeC  s   
ÿ"ýrg  c                 C  s^   t  d¡ d}tj ddd¡}t jt|d�� t|| d� W d   ƒ d S 1 s(w   Y  d S )Nr/   r0   rS   rÀ   zcta_rail_lines.kmlr1   rU  )r3   r4   r­   rU   r�   r¦   r7   r   )r¢   r:   Úkmlr;   r;   r<   Útest_empty_stylesheetK  s   
ÿ"ÿri  c              	   C  sî   t | ||dkr	dnd d��F}|dkrA|dkrAtjtdd�� t||dg d¢id	� W d   ƒ n1 s3w   Y  	 W d   ƒ d S t||dg d¢id	�}W d   ƒ n1 sVw   Y  tg d
¢g d¢g d¢g d¢g d¢dœƒ}t ||¡ d S ©Nr?   rM   rN   r/   z.reading file objects must return bytes objectsr1   r`   ra   rg   r{   r   r€   r�   rƒ   r„   )rQ   r3   r¦   ró   r   r   r5   rj   )rk   rK   rG   rV   Údf_fileliker†   r;   r;   r<   Útest_file_like_iterparseZ  s:   ÿÿýý
ô
ýòûÿ
rl  c              
   C  s6  |dkrt nt}t| ||dkrdnd d��b}|| ¡ ƒ�L}|dkrV|dkrVtjtdd�� t||dg d¢id	� W d   ƒ n1 sBw   Y  	 W d   ƒ W d   ƒ d S t||dg d¢id	�}W d   ƒ n1 skw   Y  W d   ƒ n1 szw   Y  tg d
¢g d¢g d¢g d¢g d¢dœƒ}t	 
||¡ d S rj  )r   r   rQ   rZ   r3   r¦   ró   r   r   r5   rj   )rk   rK   rG   ÚfuncIOrV   ÚbÚ	df_fileior†   r;   r;   r<   Útest_file_io_iterparse|  sP   ýÿÿýý
ôûÿýò€ûûÿ
rp  c              	   C  s˜   t |dd��<}|j| ¡ d� tjtdd�� t|j| dg d¢id� W d   ƒ n1 s-w   Y  W d   ƒ d S W d   ƒ d S 1 sEw   Y  d S )	NrM   rN   rq   ú)iterparse is designed for large XML filesr1   rs   ©r   r   r   Údaterg   )rQ   rt   rZ   r3   r¦   r   r   r³   )rK   rv   r´   rV   r;   r;   r<   Útest_url_path_error¦  s   ÿ
ýýþ"þrt  c              	   C  s˜   t jdd��<}tj|| |d� tjtdd�� t|| dg d¢i|d� W d   ƒ n1 s-w   Y  W d   ƒ d S W d   ƒ d S 1 sEw   Y  d S )	Nzgeom_xml.zip©r®   ©rK   rX   rq  r1   rs   rr  ©rK   rh   rX   )r5   rP   Úgeom_dfÚto_xmlr3   r¦   r   r   )rK   r\   rU   r;   r;   r<   Útest_compression_errorµ  s   ÿ
üýý"ýrz  c                 C  sF   t jtdd�� t| |g d¢d� W d   ƒ d S 1 sw   Y  d S )Nz&list is not a valid type for iterparser1   ra   rg   r'  rê   r;   r;   r<   Útest_wrong_dict_typeÄ  s   ý"ÿr{  c                 C  sF   t jtdd�� t| |ddid� W d   ƒ d S 1 sw   Y  d S )Nz8<class 'str'> is not a valid type for value in iterparser1   r`   rb   rg   r'  rê   r;   r;   r<   Útest_wrong_dict_valueÍ  s
   ÿ"ýr|  c              	   C  sÆ   d}t jdd��Q}t|ddd��}| |¡ W d   ƒ n1 s w   Y  tjtdd�� t|| d	gd
g d¢id� W d   ƒ n1 sDw   Y  W d   ƒ d S W d   ƒ d S 1 s\w   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.xmlru  rL   rM   rN   zDExtra content at the end of the document|junk after document elementr1   rs  rs   rr  )rK   Úparse_datesrh   )r5   rP   rQ   rR   r3   r¦   rÊ   r   )rK   Úbad_xmlrU   rV   r;   r;   r<   Útest_bad_xmlÔ  s&   ÿý
üùü"ür  c                 C  ó^   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  rg   r   r  r  r  ©r*   r  r¾   r¿   r;   r;   r<   Útest_commentý  s   ÿþÿr‚  c                 C  r€  )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  rg   r   r  r  r  r�  r¾   r¿   r;   r;   r<   Útest_dtd   ó   ÿþÿrƒ  c                 C  r€  )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  rg   r   r  r  r  r�  r¾   r¿   r;   r;   r<   Útest_processing_instructionD  r„  r…  c                 C  óJ   t jtdd�� t| |dg d¢id� W d   ƒ d S 1 sw   Y  d S )Nz+No result from selected items in iterparse.r1   Únode©Úattr1Úelem1Úelem2Úelem3rg   )r3   r¦   r   r   rê   r;   r;   r<   Útest_no_resulth  s   ÿ
ý"ýr�  c                 C  r†  )NzNo columns to parse from filer1   r`   rˆ  rg   )r3   r¦   r   r   rê   r;   r;   r<   Útest_empty_datas  s   
ý"ÿrŽ  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]rc   Úartist)r²   r  rI  zEmpire BurlesquezHide your heartzGreatest HitszStill got the bluesÚErosr$   z	Bob DylanzBonnie TylerzDolly Partonz
Gary MoorezEros Ramazzotti)rc   r�  )r3   r4   r   r   r   r5   rj   )rÀ   rV  Údf_xslr†   r;   r;   r<   Útest_online_stylesheet|  s4   
 Vüûûøÿr’  c                 C  s~   t  ¡ �%}tj|d| |d� t|| |d�}t||| dg d¢i|d�}W d   ƒ n1 s,w   Y  t  |t¡ t  |t¡ d S )NF)r—   rK   rX   rv  rs   r   rw  )r5   rP   rx  ry  r   r^   rj   )rK   r\   r[   rw   rx   r;   r;   r<   Útest_compression_readŒ  s   
ÿ
ûùr“  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r2|jd
f|d< tddd	�}|d urBtdf|d< || \}}	t 	¡ �7}
t
j|
| |d� t j||	d�� t|
| |d� W d   ƒ n1 snw   Y  W d   ƒ d S W d   ƒ d S 1 s†w   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ÚtarÚ	zstandardÚignore)ÚerrorszUnknown frame descriptorÚzstdÚlzmaz%Input format not supported by decoderÚxzrv  r1   )r3   ÚskipÚOSErrorr	   r   r
   Ú	ZstdErrorr   r5   rP   rx  ry  r¦   r   )rK   rX   r\   Úactual_compressionÚattempted_compressionrš  r›  rœ  Ú	error_clsÚ	error_strrU   r;   r;   r<   Útest_wrong_compression   s0   ü
ÿý"ýr¥  c              	   C  sz   t jtdd��, t ¡ �}t|| dd� W d   ƒ n1 sw   Y  W d   ƒ d S W d   ƒ d S 1 s6w   Y  d S )NzUnrecognized compression typer1   Ú7zrv  )r3   r¦   rÄ   r5   rP   r   )rK   rU   r;   r;   r<   Útest_unsuported_compression¼  s   
ÿÿ"ÿr§  c                 C  sN   t  d¡ t  d¡ d| j› d�}t|d|d�}t|d|d�}t ||¡ d S )NÚs3fsr/   zs3://z
/books.xml)rK   Ústorage_optionsrJ   )r3   r4   r*   r   r5   rj   )Ús3_public_bucket_with_dataÚs3soÚs3rã   rä   r;   r;   r<   Útest_s3_parser_consistencyÅ  s   

r­  c                   sZ  d}t  d|¡� tt|ƒ| |d�}W d   ƒ n1 sw   Y  |dkr2t 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r£t 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)rK   Údtype_backendÚpyarrowÚxÚyr½   r%   r&   ÚInt64r×   g      @ÚFloat64TFÚboolean)	rœ   rn  r>  ÚdÚerV   ÚgÚhÚir   )ÚArrowExtensionArrayc                   s$   i | ]}|ˆ ˆj ˆ| d d�ƒ“qS )T)Úfrom_pandas)Úarray)Ú.0Úcol©rº  r@  Úpar;   r<   Ú
<dictcomp>  s    ÿÿz1test_read_xml_nullable_dtypes.<locals>.<dictcomp>r·  )Úcheck_column_type)ÚpdÚoption_contextr   r   r3   r4   Ú
ArrowDtyperº   ÚStringDtyper   r   r   Úpandas.arraysrº  Úcolumnsr¼  r5   rj   )rK   Ústring_storager®  Úusing_infer_stringrS   r?  Ústring_dtyper;   r¿  r<   Útest_read_xml_nullable_dtypesÓ  s<   ÿ

÷ÿ
þÿrÌ  c                  C  sD   d} t jt| d�� tddd� W d   ƒ d S 1 sw   Y  d S )NzPdtype_backend numpy is invalid, only 'numpy_nullable' and 'pyarrow' are allowed.r1   ÚtestÚnumpy)r®  ré   r9   r;   r;   r<   Útest_invalid_dtype_backend  s
   ÿ"ÿrÏ  )ŠÚ
__future__r   Úior   r   rœ  r   r­   Útarfiler   Úurllib.errorr   Úxml.etree.ElementTreer   Úzipfiler	   rÎ  Únpr3   Úpandas.compat._optionalr
   Úpandas.errorsr   r   Úpandas.util._test_decoratorsÚutilÚ_test_decoratorsÚtdÚpandasrÃ  r   r   r   Úpandas._testingÚ_testingr5   Úpandas.io.commonr   Úpandas.io.xmlr   rØ   rx  r8   rà   rK  r=   ÚfixturerG   rD   Ú
skip_if_norK   rW   r^   rp   ÚmarkÚnetworkÚ
single_cpury   r‡   rŒ   r‘   r“   rš   rŸ   r¡   Ú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-  r0  r2  r4  r;  r=  rA  Úskip_if_installedrC  rE  rN  rP  rS  rT  rX  r[  r_  r`  rb  re  rf  rg  ri  rl  rp  rt  rz  r{  r|  r  r‚  rƒ  r…  r�  rŽ  r’  r“  r¥  r§  r­  rÌ  rÏ  r;   r;   r;   r<   Ú<module>   sH   6
ýÿûûûû	Æâÿm




	4

	%&*1

	
"*	)#$$	  	F