
    Mh              
      b   S SK Jr  S SKJrJr  S SKrS SKrS SKrS SK	J
s  Jr  S SKJrJrJr  S SKJr  S SKJr  S SKJr  \R0                  S 5       r\R0                  S 5       r\R0                  S	 5       rS
 r\R0                  " SS/S9S 5       r\R0                  " \R<                  " S\R>                  " S5      S9S/S9S 5       r S r!S r"S r#S r$S r%S r&\RN                  RQ                  S\)" \*" SS5      5      \*" SS5       V s/ s H  n \+" U 5      PM     sn /5      S 5       r,Sr-S r.S r/S  r0S! r1S" r2S# r3S$ r4S% r5S& r6S' r7S( r8S) r9S* r:S+ r;S, r<S- r=S. r>S/ r?S0 r@S1 rAS2rBS3 rCS4 rD\RN                  RQ                  S5/ S6Q5      S7 5       rES8 rFS9 rGS: rHS; rI\R                  " S5      S< 5       rKS= rLS>rMS? rNS@ rOSA rPSB rQ\RN                  RQ                  SCSDSE/5      SF 5       rRSG rSSH rTSI rUSJ rVSK rWSL rXSM rYSrZSN r[SO r\SP r]SQ r^\RN                  R                  SR 5       r`gs  sn f )S    )annotations)BytesIOStringION)NA	DataFrameIndex)
get_handle)read_xmlc                 J    [        / SQ/ SQS[        R                  S/S.5      $ )N)squarecircletriangle)h  r            shapedegreessides)r   npnan     Q/var/www/html/env/lib/python3.13/site-packages/pandas/tests/io/xml/test_to_xml.pygeom_dfr   ;   s'    5&^	
 r   c                 2    [        / SQ/ SQ/ SQ/ SQS.5      $ )N)MercuryVenusEarthMarsJupiterSaturnUranusNeptune)terrestrialr&   r&   r&   	gas giantr'   	ice giantr(   )innerr)   r)   r)   outerr*   r*   r*   )g`|x ?gcAJx@g2r@gl?gh|@g	@gd]FU@g	hY@)planettypelocationmass)r   r   r   r   	planet_dfr/   F   s(    				?)	
+ +r   c                     g)Nac  <?xml version='1.0' encoding='utf-8'?>
<data>
  <row>
    <index>0</index>
    <category>cooking</category>
    <title>Everyday Italian</title>
    <author>Giada De Laurentiis</author>
    <year>2005</year>
    <price>30.0</price>
  </row>
  <row>
    <index>1</index>
    <category>children</category>
    <title>Harry Potter</title>
    <author>J K. Rowling</author>
    <year>2005</year>
    <price>29.99</price>
  </row>
  <row>
    <index>2</index>
    <category>web</category>
    <title>Learning XML</title>
    <author>Erik T. Ray</author>
    <year>2003</year>
    <price>39.95</price>
  </row>
</data>r   r   r   r   from_file_expectedr1   v   s    r   c                0    U b  U R                  SS5      n U $ )Nz%<?xml version="1.0" encoding="utf-8"?z%<?xml version='1.0' encoding='utf-8'?)replace)docs    r   equalize_declr5      s"    
kk33
 Jr   rbr)paramsc                    U R                   $ Nparamrequests    r   moder?          ==r   lxml)marksetreec                    U R                   $ r:   r;   r=   s    r   parserrE      r@   r   c                `   [        XS9n[        R                  " S5       nUR                  XAS9  [	        US5       nUR                  5       R                  S5      R                  5       nS S S 5        [        W5      nXb:X  d   e S S S 5        g ! , (       d  f       N*= f! , (       d  f       g = fNrE   test.xmlr6   utf-8	r
   tmensure_cleanto_xmlopenreaddecodestripr5   	xml_booksrE   r1   df_filepathfoutputs          r   test_file_output_str_readrY          y0G		$t+$VVX__W-335F  v&+++ 
%	$ 
%	$"   B.B*B
B	B
B-c                `   [        XS9n[        R                  " S5       nUR                  XAS9  [	        US5       nUR                  5       R                  S5      R                  5       nS S S 5        [        W5      nXb:X  d   e S S S 5        g ! , (       d  f       N*= f! , (       d  f       g = frG   rK   rS   s          r   test_file_output_bytes_readr]      rZ   r[   c                X    [        XS9nUR                  US9n[        U5      nXB:X  d   eg NrH   )r
   rN   r5   )rT   rE   r1   rU   rX   s        r   test_str_outputr`      s2    y0G^^6^*F6"F'''r   c                    Sn[         R                  " [        SS9   UR                  X S9  S S S 5        g ! , (       d  f       g = f)Nz/my/fake/path/output.xmlz6Cannot save file into a non-existent directory: .*pathmatchrH   )pytestraisesOSErrorrN   rE   r   rV   s      r   test_wrong_file_pathrh      s9    %D	H
 	t+	
 
 
s	   5
Ac                h   Sn[        XS9n[        R                  " S5       nUR                  USUS9  [	        US5       nUR                  5       R                  S5      R                  5       nS S S 5        [        W5      nXb:X  d   e S S S 5        g ! , (       d  f       N*= f! , (       d  f       g = f)Na$  <?xml version='1.0' encoding='utf-8'?>
<data>
  <row>
    <category>cooking</category>
    <title>Everyday Italian</title>
    <author>Giada De Laurentiis</author>
    <year>2005</year>
    <price>30.0</price>
  </row>
  <row>
    <category>children</category>
    <title>Harry Potter</title>
    <author>J K. Rowling</author>
    <year>2005</year>
    <price>29.99</price>
  </row>
  <row>
    <category>web</category>
    <title>Learning XML</title>
    <author>Erik T. Ray</author>
    <year>2003</year>
    <price>39.95</price>
  </row>
</data>rH   rI   FindexrE   r6   rJ   rK   rT   rE   expectedrU   rV   rW   rX   s          r   test_index_falsern      s    H4 y0G		$t58$VVX__W-335F  v&!!! 
%	$ 
%	$s#   B# .B.B#
B 	B##
B1c           	     l   Sn[        XS9n[        R                  " S5       nUR                  USSSUS9  [	        US5       nUR                  5       R                  S	5      R                  5       nS S S 5        [        W5      nXb:X  d   e S S S 5        g ! , (       d  f       N*= f! , (       d  f       g = f)
Na,  <?xml version='1.0' encoding='utf-8'?>
<books>
  <book>
    <category>cooking</category>
    <title>Everyday Italian</title>
    <author>Giada De Laurentiis</author>
    <year>2005</year>
    <price>30.0</price>
  </book>
  <book>
    <category>children</category>
    <title>Harry Potter</title>
    <author>J K. Rowling</author>
    <year>2005</year>
    <price>29.99</price>
  </book>
  <book>
    <category>web</category>
    <title>Learning XML</title>
    <author>Erik T. Ray</author>
    <year>2003</year>
    <price>39.95</price>
  </book>
</books>rH   rI   Fbooksbook)rk   	root_namerow_namerE   r6   rJ   rK   rl   s          r    test_index_false_rename_row_rootrt     s    H4 y0G		$6& 	 	
 $VVX__W-335F  v&!!! 
%	$ 	 
%	$s#    B%.B0B%
B"	B%%
B3offset_index
      c                    SnUR                  5       n[        U5      Ul        UR                  SU S9n[	        U5      nXS:X  d   eg)z
Tests that the output does not contain the `<index>` field when the index of the
input Dataframe has an offset.

This is a regression test for issue #42458.
aD  <?xml version='1.0' encoding='utf-8'?>
<data>
  <row>
    <shape>square</shape>
    <degrees>360</degrees>
    <sides>4.0</sides>
  </row>
  <row>
    <shape>circle</shape>
    <degrees>360</degrees>
    <sides/>
  </row>
  <row>
    <shape>triangle</shape>
    <degrees>180</degrees>
    <sides>3.0</sides>
  </row>
</data>Frj   N)copyr   rk   rN   r5   )rE   ru   r   rm   offset_geom_dfrX   s         r   (test_index_false_with_offset_input_indexr{   -  sN    H( \\^N .N""v">F6"Fr   a  <?xml version='1.0' encoding='utf-8'?>
<data>
  <row>
    <index>0</index>
    <shape>square</shape>
    <degrees>360</degrees>
    <sides>4.0</sides>
  </row>
  <row>
    <index>1</index>
    <shape>circle</shape>
    <degrees>360</degrees>
    <sides/>
  </row>
  <row>
    <index>2</index>
    <shape>triangle</shape>
    <degrees>180</degrees>
    <sides>3.0</sides>
  </row>
</data>c                P    UR                  U S9n[        U5      nU[        :X  d   eg r_   rN   r5   na_expectedrE   r   rX   s      r   test_na_elem_outputr   n  s*    ^^6^*F6"F[   r   c                R    UR                  SU S9n[        U5      nU[        :X  d   eg )N na_reprE   r}   r   s      r   test_na_empty_str_elem_optionr   u  s,    ^^2f^5F6"F[   r   c                L    SnUR                  SU S9n[        U5      nX2:X  d   eg )Na  <?xml version='1.0' encoding='utf-8'?>
<data>
  <row>
    <index>0</index>
    <shape>square</shape>
    <degrees>360</degrees>
    <sides>4.0</sides>
  </row>
  <row>
    <index>1</index>
    <shape>circle</shape>
    <degrees>360</degrees>
    <sides>0.0</sides>
  </row>
  <row>
    <index>2</index>
    <shape>triangle</shape>
    <degrees>180</degrees>
    <sides>3.0</sides>
  </row>
</data>z0.0r   rN   r5   rE   r   rm   rX   s       r   test_na_empty_elem_optionr   |  s3    H. ^^5^8F6"Fr   c                P    SnUR                  / SQU S9n[        U5      nX2:X  d   eg )Nz<?xml version='1.0' encoding='utf-8'?>
<data>
  <row index="0" shape="square" degrees="360" sides="4.0"/>
  <row index="1" shape="circle" degrees="360"/>
  <row index="2" shape="triangle" degrees="180" sides="3.0"/>
</data>r   	attr_colsrE   r   r   s       r   test_attrs_cols_nan_outputr     s4    H ^^&CF^SF6"Fr   c                X    SnUR                  / SQSS0SU S9n[        U5      nX2:X  d   eg )Na>  <?xml version='1.0' encoding='utf-8'?>
<doc:data xmlns:doc="http://example.xom">
  <doc:row doc:index="0" doc:shape="square" doc:degrees="360" doc:sides="4.0"/>
  <doc:row doc:index="1" doc:shape="circle" doc:degrees="360"/>
  <doc:row doc:index="2" doc:shape="triangle" doc:degrees="180" doc:sides="3.0"/>
</doc:data>)rk   r   r   r   r4   zhttp://example.xom)r   
namespacesprefixrE   r   r   s       r   test_attrs_cols_prefixr     sH    	H ^^8/0	  F 6"Fr   c                    [         R                  " [        SS9   UR                  / SQU S9  S S S 5        g ! , (       d  f       g = f)Nno valid columnrb   r   degreer   r   rd   re   KeyErrorrN   rE   r   s     r   test_attrs_unknown_columnr     .    	x(9	;!=fM 
<	;	;	   6
Ac                    [         R                  " [        SS9   UR                  SU S9  S S S 5        g ! , (       d  f       g = f)Nz!is not a valid type for attr_colsrb   "shape", "degree", "sides"r   rd   re   	TypeErrorrN   r   s     r   test_attrs_wrong_typer     /    	y)L	N!=fM 
O	N	N	   4
Ac                R    SnUR                  S/ SQU S9n[        U5      nX2:X  d   eg )NaD  <?xml version='1.0' encoding='utf-8'?>
<data>
  <row>
    <degrees>360</degrees>
    <sides>4.0</sides>
    <shape>square</shape>
  </row>
  <row>
    <degrees>360</degrees>
    <sides/>
    <shape>circle</shape>
  </row>
  <row>
    <degrees>180</degrees>
    <sides>3.0</sides>
    <shape>triangle</shape>
  </row>
</data>F)r   r   r   )rk   	elem_colsrE   r   rE   r   elems_cols_expectedrX   s       r   test_elems_cols_nan_outputr     s?    ( ^^<V  F 6"F(((r   c                    [         R                  " [        SS9   UR                  / SQU S9  S S S 5        g ! , (       d  f       g = f)Nr   rb   r   r   rE   r   r   s     r   test_elems_unknown_columnr     r   r   c                    [         R                  " [        SS9   UR                  SU S9  S S S 5        g ! , (       d  f       g = f)Nz!is not a valid type for elem_colsrb   r   r   r   r   s     r   test_elems_wrong_typer     r   r   c                V    SnUR                  SSS/S/U S9n[        U5      nX2:X  d   eg )Na#  <?xml version='1.0' encoding='utf-8'?>
<data>
  <row shape="square">
    <degrees>360</degrees>
    <sides>4.0</sides>
  </row>
  <row shape="circle">
    <degrees>360</degrees>
    <sides/>
  </row>
  <row shape="triangle">
    <degrees>180</degrees>
    <sides>3.0</sides>
  </row>
</data>Fr   r   r   )rk   r   r   rE   r   r   s       r   test_elems_and_attrs_colsr     sJ    " ^^g&)	  F 6"F(((r   c                    SnUR                  SS/S/ SQSS9R                  S5      nUR                  U S	9n[        U5      nXB:X  d   eg )
Na  <?xml version='1.0' encoding='utf-8'?>
<data>
  <row>
    <location>inner</location>
    <type>terrestrial</type>
    <count_mass>4</count_mass>
    <sum_mass>11.81</sum_mass>
    <mean_mass>2.95</mean_mass>
  </row>
  <row>
    <location>outer</location>
    <type>gas giant</type>
    <count_mass>2</count_mass>
    <sum_mass>2466.5</sum_mass>
    <mean_mass>1233.25</mean_mass>
  </row>
  <row>
    <location>outer</location>
    <type>ice giant</type>
    <count_mass>2</count_mass>
    <sum_mass>189.23</sum_mass>
    <mean_mass>94.61</mean_mass>
  </row>
  <row>
    <location>All</location>
    <type/>
    <count_mass>8</count_mass>
    <sum_mass>2667.54</sum_mass>
    <mean_mass>333.44</mean_mass>
  </row>
</data>r-   r,   r.   countsummeanTrk   valuesaggfuncmargins   rH   )pivot_tableroundrN   r5   rE   r/   rm   pvtrX   s        r   test_hierarchical_columnsr     sh    HB 

6"(	   
 eAh  ZZvZ&F6"Fr   c                    SnUR                  SS/S/ SQSS9R                  S5      nUR                  [        UR	                  5       R
                  R                  5      U S	9n[        U5      nXB:X  d   eg )
Na  <?xml version='1.0' encoding='utf-8'?>
<data>
  <row location="inner" type="terrestrial" count_mass="4" sum_mass="11.81" mean_mass="2.95"/>
  <row location="outer" type="gas giant" count_mass="2" sum_mass="2466.5" mean_mass="1233.25"/>
  <row location="outer" type="ice giant" count_mass="2" sum_mass="189.23" mean_mass="94.61"/>
  <row location="All" type="" count_mass="8" sum_mass="2667.54" mean_mass="333.44"/>
</data>r-   r,   r.   r   Tr   r   r   )r   r   rN   listreset_indexcolumnsr   r5   r   s        r   test_hierarchical_attrs_columnsr   F  s    H 

6"(	   
 eAh  ZZ$s'8'@'@'G'G"HQWZXF6"Fr   c                    SnUR                  SS/5      S   R                  / SQ5      R                  S5      nUR                  U S9n[	        U5      nXB:X  d   eg )Na  <?xml version='1.0' encoding='utf-8'?>
<data>
  <row>
    <location>inner</location>
    <type>terrestrial</type>
    <count>4</count>
    <sum>11.81</sum>
    <mean>2.95</mean>
  </row>
  <row>
    <location>outer</location>
    <type>gas giant</type>
    <count>2</count>
    <sum>2466.5</sum>
    <mean>1233.25</mean>
  </row>
  <row>
    <location>outer</location>
    <type>ice giant</type>
    <count>2</count>
    <sum>189.23</sum>
    <mean>94.61</mean>
  </row>
</data>r-   r,   r.   r   r   rH   )groupbyaggr   rN   r5   rE   r/   rm   r   rX   s        r   test_multi_indexr   d  sd    H6 	:v./7	%	&	q  ZZvZ&F6"Fr   c                   SnUR                  SS/5      S   R                  / SQ5      R                  S5      nUR                  [	        UR                  5       R                  R                  5      U S9n[        U5      nXB:X  d   eg )Na$  <?xml version='1.0' encoding='utf-8'?>
<data>
  <row location="inner" type="terrestrial" count="4" sum="11.81" mean="2.95"/>
  <row location="outer" type="gas giant" count="2" sum="2466.5" mean="1233.25"/>
  <row location="outer" type="ice giant" count="2" sum="189.23" mean="94.61"/>
</data>r-   r,   r.   r   r   r   )	r   r   r   rN   r   r   r   r   r5   r   s        r   test_multi_index_attrs_colsr     s    	H 	:v./7	%	&	q 
 ZZ$s'8'@'@'G'G"HQWZXF6"Fr   c                P    SnUR                  SS0U S9n[        U5      nX2:X  d   eg )Na  <?xml version='1.0' encoding='utf-8'?>
<data xmlns="http://example.com">
  <row>
    <index>0</index>
    <shape>square</shape>
    <degrees>360</degrees>
    <sides>4.0</sides>
  </row>
  <row>
    <index>1</index>
    <shape>circle</shape>
    <degrees>360</degrees>
    <sides/>
  </row>
  <row>
    <index>2</index>
    <shape>triangle</shape>
    <degrees>180</degrees>
    <sides>3.0</sides>
  </row>
</data>r   http://example.comr   rE   r   r   s       r   test_default_namespacer     s9    H. ^^,@'A&^QF6"Fr   c                R    SnUR                  SSS.U S9n[        U5      nX2:X  d   eg )Na  <?xml version='1.0' encoding='utf-8'?>
<data xmlns:oth="http://other.org" xmlns:ex="http://example.com">
  <row>
    <index>0</index>
    <shape>square</shape>
    <degrees>360</degrees>
    <sides>4.0</sides>
  </row>
  <row>
    <index>1</index>
    <shape>circle</shape>
    <degrees>360</degrees>
    <sides/>
  </row>
  <row>
    <index>2</index>
    <shape>triangle</shape>
    <degrees>180</degrees>
    <sides>3.0</sides>
  </row>
</data>http://other.orgr   )othexr   r   r   s       r   test_unused_namespacesr     sB    H. ^^-5IJ  F 6"Fr   c                R    SnUR                  SS0SU S9n[        U5      nX2:X  d   eg )Na  <?xml version='1.0' encoding='utf-8'?>
<doc:data xmlns:doc="http://example.com">
  <doc:row>
    <doc:index>0</doc:index>
    <doc:shape>square</doc:shape>
    <doc:degrees>360</doc:degrees>
    <doc:sides>4.0</doc:sides>
  </doc:row>
  <doc:row>
    <doc:index>1</doc:index>
    <doc:shape>circle</doc:shape>
    <doc:degrees>360</doc:degrees>
    <doc:sides/>
  </doc:row>
  <doc:row>
    <doc:index>2</doc:index>
    <doc:shape>triangle</doc:shape>
    <doc:degrees>180</doc:degrees>
    <doc:sides>3.0</doc:sides>
  </doc:row>
</doc:data>r4   r   r   r   rE   r   r   s       r   test_namespace_prefixr     sC    H. ^^/0v  F 6"Fr   c                    [         R                  " [        SS9   UR                  SS0SU S9  S S S 5        g ! , (       d  f       g = f)Nz!doc is not included in namespacesrb   r   r   r4   r   r   r   s     r   test_missing_prefix_in_nmspr     s<    	x(K	M01% 	 	
 
N	M	Ms	   7
Ac                T    SnUR                  SSS.SU S9n[        U5      nX2:X  d   eg )Na7  <?xml version='1.0' encoding='utf-8'?>
<doc:data xmlns:doc="http://other.org" xmlns="http://example.com">
  <doc:row>
    <doc:index>0</doc:index>
    <doc:shape>square</doc:shape>
    <doc:degrees>360</doc:degrees>
    <doc:sides>4.0</doc:sides>
  </doc:row>
  <doc:row>
    <doc:index>1</doc:index>
    <doc:shape>circle</doc:shape>
    <doc:degrees>360</doc:degrees>
    <doc:sides/>
  </doc:row>
  <doc:row>
    <doc:index>2</doc:index>
    <doc:shape>triangle</doc:shape>
    <doc:degrees>180</doc:degrees>
    <doc:sides>3.0</doc:sides>
  </doc:row>
</doc:data>r   r   )r   r4   r4   r   r   r   s       r   !test_namespace_prefix_and_defaultr     sE    H. ^^,5GH  F
 6"Fr   u  <?xml version='1.0' encoding='ISO-8859-1'?>
<data>
  <row>
    <index>0</index>
    <rank>1</rank>
    <malename>José</malename>
    <femalename>Sofía</femalename>
  </row>
  <row>
    <index>1</index>
    <rank>2</rank>
    <malename>Luis</malename>
    <femalename>Valentina</femalename>
  </row>
  <row>
    <index>2</index>
    <rank>3</rank>
    <malename>Carlos</malename>
    <femalename>Isabella</femalename>
  </row>
  <row>
    <index>3</index>
    <rank>4</rank>
    <malename>Juan</malename>
    <femalename>Camila</femalename>
  </row>
  <row>
    <index>4</index>
    <rank>5</rank>
    <malename>Jorge</malename>
    <femalename>Valeria</femalename>
  </row>
</data>c                    [        XSS9R                  S5      nUR                  SUS9nUb  UR                  SS5      nU[        :X  d   eg )N
ISO-8859-1)rE   encoding   r   rE   z*<?xml version="1.0" encoding="ISO-8859-1"?z*<?xml version='1.0' encoding='ISO-8859-1'?)r
   headrN   r3   encoding_expected)xml_baby_namesrE   rU   rX   s       r   test_encoding_option_strr   V  sW    ~|LQQRSTG^^\&^AF88

 &&&&r   c                    [         R                  " S5        [        U SSS9n[        R                  " S5       nUR                  USSSS9  S S S 5        g ! , (       d  f       g = fNrA   r   r   rI   F)rk   r   rE   rd   importorskipr
   rL   rM   rN   )r   rU   rV   s      r   test_correct_encoding_filer   e  sL    
~VLG		$t5<O 
%	$	$s   A
A"r   )zUTF-8zUTF-16r   c                    [         R                  " S5        [        U SSS9n[        R                  " S5       nUR                  USX!S9  S S S 5        g ! , (       d  f       g = fr   r   )r   rE   r   rU   rV   s        r   test_wrong_encoding_option_lxmlr   m  sJ    
~VLG		$t58K 
%	$	$s   A
A!c                    [         R                  " [        SS9   UR                  SU S9  S S S 5        g ! , (       d  f       g = f)Nzunknown encodingrb   zuft-8r   )rd   re   LookupErrorrN   r   s     r   test_misspelled_encodingr   v  s.    	{+=	?7 
@	?	?r   c                `    [         R                  " S5        SnU R                  SS9nX!:X  d   eg )NrA   a\  <data>
  <row>
    <index>0</index>
    <shape>square</shape>
    <degrees>360</degrees>
    <sides>4.0</sides>
  </row>
  <row>
    <index>1</index>
    <shape>circle</shape>
    <degrees>360</degrees>
    <sides/>
  </row>
  <row>
    <index>2</index>
    <shape>triangle</shape>
    <degrees>180</degrees>
    <sides>3.0</sides>
  </row>
</data>F)xml_declaration)rd   r   rN   )r   rm   rX   s      r   !test_xml_declaration_pretty_printr   ~  s5    
H, ^^E^2Fr   c                v    SnUR                  SU S9n[        U5      nUb  UR                  SS5      nX2:X  d   eg )Na4  <?xml version='1.0' encoding='utf-8'?>
<data><row><index>0</index><shape>square</shape><degrees>360</degrees><sides>4.0</sides></row><row><index>1</index><shape>circle</shape><degrees>360</degrees><sides/></row><row><index>2</index><shape>triangle</shape><degrees>180</degrees><sides>3.0</sides></row></data>F)pretty_printrE    />/>)rN   r5   r3   r   s       r   test_no_pretty_print_with_declr     sN    	  ^^v^>F6"F t,r   c                b    SnUR                  SSU S9nUb  UR                  SS5      nX2:X  d   eg )Na  <data><row><index>0</index><shape>square</shape><degrees>360</degrees><sides>4.0</sides></row><row><index>1</index><shape>circle</shape><degrees>360</degrees><sides/></row><row><index>2</index><shape>triangle</shape><degrees>180</degrees><sides>3.0</sides></row></data>F)r   r   rE   r   r   )rN   r3   r   s       r   test_no_pretty_print_no_declr     sF    	  ^^Ef^UF t,r   c                    [         R                  " [        SS9   U R                  5         S S S 5        g ! , (       d  f       g = f)Nz7lxml not found, please install or use the etree parser.rb   )rd   re   ImportErrorrN   r   s    r   test_default_parser_no_lxmlr     s0    	U
 	
 
 
r   c                    [         R                  " [        SS9   U R                  SS9  S S S 5        g ! , (       d  f       g = f)Nz,Values for parser can only be lxml or etree.rb   bs4rH   rd   re   
ValueErrorrN   r   s    r   test_unknown_parserr     s4    	I
 	e$
 
 
s	   3
Aa%  <?xml version="1.0" encoding="utf-8"?>
<data>
  <row>
    <field field="index">0</field>
    <field field="shape">square</field>
    <field field="degrees">360</field>
    <field field="sides">4.0</field>
  </row>
  <row>
    <field field="index">1</field>
    <field field="shape">circle</field>
    <field field="degrees">360</field>
    <field field="sides"/>
  </row>
  <row>
    <field field="index">2</field>
    <field field="shape">triangle</field>
    <field field="degrees">180</field>
    <field field="sides">3.0</field>
  </row>
</data>c                    [         R                  " S5        [        XUS:X  a  SOS S9 nUR                  US9[        :X  d   e S S S 5        g ! , (       d  f       g = fNrA   r7   rJ   r   
stylesheet)rd   r   rO   rN   xsl_expected)xsl_row_field_outputr?   r   rW   s       r   test_stylesheet_file_liker    sQ    
	W
	
~~~+|;;;
 
 
s   A
Ac                0   [         R                  " S5        [        XUS:X  a  SOS S9 nUS:X  a  [        UR	                  5       5      nO[        UR	                  5       5      nS S S 5        UR                  WS9nU[        :X  d   eg ! , (       d  f       N*= f)NrA   r7   rJ   r  r6   r  )rd   r   rO   r   rP   r   rN   r  r  r?   r   rW   xsl_objrX   s         r   test_stylesheet_ior    s      
W
	
4<affh'Gqvvx(G
 ^^w^/F\!!!
 
s   :B
Bc                    [         R                  " S5        [        XUS:X  a  SOS S9 nUR                  5       nS S S 5        UR	                  WS9nU[
        :X  d   eg ! , (       d  f       N*= fr  )rd   r   rO   rP   rN   r  r	  s         r   test_stylesheet_buffered_readerr  
  sc    
	W
	
&&(

 ^^w^/F\!!!
 
s   A
A,c                   [         R                  " S5      n[        R                  R	                  SSS5      n[         R
                  " UR                  SS9   U R                  US9  S S S 5        g ! , (       d  f       g = f)N
lxml.etreedataxmlzrow_field_output.xslt!Start tag expected, '<' not foundrb   r  )rd   r   osrV   joinre   XMLSyntaxErrorrN   r   
lxml_etreexsls      r   test_stylesheet_wrong_pathr    sa    $$\2J
'',,vu&=
>C	!!2
 	#&	
 
 
s   A00
A>valr   r   c                    [         R                  " S5      nSR                  / SQ5      n[         R                  " UR                  US9   UR                  U S9  S S S 5        g ! , (       d  f       g = f)Nr  |)zDocument is emptyr  zNone \(line 0\)rb   r  )rd   r   r  re   r  rN   )r  r   r  msgs       r   test_empty_string_stylesheetr  "  sU    $$\2J
((	
C 
z00	<#& 
=	<	<s   	A""
A0c                    [         R                  " S5      nSn[         R                  " UR                  SS9   U R	                  US9  S S S 5        g ! , (       d  f       g = f)Nr  aR  <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:apply-templates select="@*|node()"/>
        </xsl:copy>
    </xsl:template>

    <xsl:template match="row/*">
        <field>
            <xsl:attribute name="field">
                <xsl:value-of select="name()"/>
            </xsl:attribute>
            <xsl:value-of select="text()"/>
        </field>
    </xsl:template>
</xsl:stylesheet>zOpening and ending tag mismatchrb   r  )rd   r   re   r  rN   r  s      r   test_incorrect_xsl_syntaxr   3  sS    $$\2JC* 
!!*K
 	#&
 
 
   A
Ac                    [         R                  " S5      nSn[         R                  " UR                  SS9   U R	                  US9  S S S 5        g ! , (       d  f       g = f)Nr  aT  <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:apply-templates select="@*|node()"/>
        </xsl:copy>
    </xsl:template>

    <xsl:template match="row/*">
        <field>
            <xsl:attribute name="field">
                <xsl:value-of select="name()"/>
            </xsl:attribute>
            <xsl:value-of select="text()"/>
        </field>
    </xsl:template>
</xsl:stylesheet>zfailed to compilerb   r  )rd   r   re   XSLTParseErrorrN   r  s      r   test_incorrect_xsl_evalr$  Q  sK    $$\2JC* 
z009L	N#& 
O	N	Nr!  c                $   [         R                  " S5      nSn[         R                  " UR                  SS9   [        R
                  " S5       nU R                  X2S9  S S S 5        S S S 5        g ! , (       d  f       N= f! , (       d  f       g = f)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 URIrb   rI   r  )rd   r   re   XSLTApplyErrorrL   rM   rN   )r   r  r  rV   s       r   test_incorrect_xsl_applyr'  m  sk    $$\2J
C 
z009M	O__Z(DNN4N0 ) 
P	O(( 
P	Os#   BA0B0
A>	:B
Bc                    Sn[         R                  " [        SS9   U R                  SUS9  S S S 5        g ! , (       d  f       g = f)NaI  <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:apply-templates select="@*|node()"/>
        </xsl:copy>
    </xsl:template>z*To use stylesheet, you need lxml installedrb   rC   )rE   r  r   )r   r  s     r   test_stylesheet_with_etreer)    s?    	C 
G
 	g#6
 
 
s	   6
Ac                    [         R                  " S5        SnU R                  SS9nUb  UR                  5       nU R	                  US9nX#:X  d   eg )NrA   aQ  <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
    <xsl:output method="text" indent="yes" />
    <xsl:strip-space elements="*"/>

    <xsl:param name="delim">,</xsl:param>
    <xsl:template match="/data">
        <xsl:text>,shape,degrees,sides&#xa;</xsl:text>
        <xsl:apply-templates select="row"/>
    </xsl:template>

    <xsl:template match="row">
        <xsl:value-of select="concat(index, $delim, shape, $delim,
                                     degrees, $delim, sides)"/>
         <xsl:text>&#xa;</xsl:text>
    </xsl:template>
</xsl:stylesheet>
)lineterminatorr  )rd   r   to_csvrR   rN   )r   r  out_csvout_xmls       r   test_style_to_csvr0    sV    
C$ nnDn1G--/nnn,Gr   c                    [         R                  " S5        SnU R                  5       nU R                  SUS9nX2:X  d   eg )NrA   a  <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
    <xsl:output method="text" indent="yes" />
    <xsl:strip-space elements="*"/>

    <xsl:param name="delim"><xsl:text>               </xsl:text></xsl:param>
    <xsl:template match="/data">
        <xsl:text>      shape  degrees  sides&#xa;</xsl:text>
        <xsl:apply-templates select="row"/>
    </xsl:template>

    <xsl:template match="row">
        <xsl:value-of select="concat(index, ' ',
                                     substring($delim, 1, string-length('triangle')
                                               - string-length(shape) + 1),
                                     shape,
                                     substring($delim, 1, string-length(name(degrees))
                                               - string-length(degrees) + 2),
                                     degrees,
                                     substring($delim, 1, string-length(name(sides))
                                               - string-length(sides) + 2),
                                     sides)"/>
         <xsl:text>&#xa;</xsl:text>
    </xsl:template>
</xsl:stylesheet>NaN)r   r  )rd   r   	to_stringrN   )r   r  out_strr/  s       r   test_style_to_stringr5    sE    
C4 !GnnEcn:Gr   c                    [         R                  " S5        SnU R                  5       nU R                  US9nX#:X  d   eg )NrA   a]  <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
    <xsl:output method="text" indent="yes" />
    <xsl:strip-space elements="*"/>

    <xsl:param name="quot">"</xsl:param>

    <xsl:template match="/data">
        <xsl:text>{"shape":{</xsl:text>
        <xsl:apply-templates select="descendant::row/shape"/>
        <xsl:text>},"degrees":{</xsl:text>
        <xsl:apply-templates select="descendant::row/degrees"/>
        <xsl:text>},"sides":{</xsl:text>
        <xsl:apply-templates select="descendant::row/sides"/>
        <xsl:text>}}</xsl:text>
    </xsl:template>

    <xsl:template match="shape|degrees|sides">
        <xsl:variable name="val">
            <xsl:if test = ".=''">
                <xsl:value-of select="'null'"/>
            </xsl:if>
            <xsl:if test = "number(text()) = text()">
                <xsl:value-of select="text()"/>
            </xsl:if>
            <xsl:if test = "number(text()) != text()">
                <xsl:value-of select="concat($quot, text(), $quot)"/>
            </xsl:if>
        </xsl:variable>
        <xsl:value-of select="concat($quot, preceding-sibling::index,
                                     $quot,':', $val)"/>
        <xsl:if test="preceding-sibling::index != //row[last()]/index">
            <xsl:text>,</xsl:text>
        </xsl:if>
    </xsl:template>
</xsl:stylesheet>r  )rd   r   to_jsonrN   )r   r  out_jsonr/  s       r   test_style_to_jsonr9    sB    
#CJ  Hnnn,Gr   c                J   [         R                  " 5        nUR                  X0US9  [        USUS9 nUR                  R                  5       nS S S 5        S S S 5        [        W5      n[        UR                  5       :X  d   eg ! , (       d  f       N<= f! , (       d  f       NE= f)NrE   compressionr7   r<  	rL   rM   rN   r	   handlerP   r5   geom_xmlrR   )rE   compression_onlyr   rV   
handle_objrX   s         r   test_compression_outputrC    s    		dt8HI(
 &&++-F
 
 6"Fv||~%%%
 
 
	s"   BBB
B	B
B"c                V   SX1   -   n[         R                  " US9 nUR                  XPUS9  [        USUS9 nUR                  R                  5       nS S S 5        S S S 5        [        W5      n[        UR                  5       :X  d   eg ! , (       d  f       N<= f! , (       d  f       NE= f)Nzxml.)filenamer;  r7   r=  r>  )rE   rA  r   compression_to_extensioncompfilerV   rB  rX   s           r   test_filename_and_suffix_comprH  *  s     0BBH	(	+tt8HI(
 &&++-F
 
, 6"Fv||~%%%
 
 
,	+s"   BB	B	
B	B
B(c                    Sn[        S[        /05      R                  U 5      nUR                  US9n[	        U5      R                  5       U:X  d   eg )Nzd<?xml version='1.0' encoding='utf-8'?>
<data>
  <row>
    <index>0</index>
    <a/>
  </row>
</data>arH   )r   r   astyperN   r5   rR   )any_numeric_ea_dtyperE   rm   dfresults        r   test_ea_dtypesrO  =  sS    H 
C";		&	&';	<BYYfY%F &&(H444r   c                    [         R                  " [        SS9   [        R                  " 5        nUR                  X SS9  S S S 5        S S S 5        g ! , (       d  f       N= f! , (       d  f       g = f)NzUnrecognized compression typerb   7zr;  )rd   re   r   rL   rM   rN   rg   s      r   test_unsuported_compressionrR  K  sL    	z)H	I__$NN4DNA  
J	I 
J	Is"   A#AA#
A 	A##
A1c                b   [         R                  " S5      n[         R                  " S5        [        R                  " [        [
        45         UR                  SS9nUR                  UR                  5        UR                  SUR                   S3SU S9  S S S 5        g ! , (       d  f       g = f)	Ns3fsrA   T)anonzs3://z	/geom.xmlzip)r<  rE   )
rd   r   rL   external_error_raisedPermissionErrorFileNotFoundErrorS3FileSystemlsnamerN   )rE   s3_public_bucketr   rT  fss        r   test_s3_permission_outputr_  T  s    v&D
		!	!?4E"F	GD)
##$$))*)4%PV 	 	
	 
H	G	Gs   A
B  
B.)a
__future__r   ior   r   r  numpyr   rd   pandas.util._test_decoratorsutil_test_decoratorstdpandasr   r   r   pandas._testing_testingrL   pandas.io.commonr	   pandas.io.xmlr
   fixturer   r/   r1   r5   r?   r<   
skip_if_norE   rY   r]   r`   rh   rn   rt   markparametrizer   rangestrr{   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   skip_if_installedr   r   r  r  r  r  r  r  r   r$  r'  r)  r0  r5  r9  r@  rC  rH  rO  rR  
single_cpur_  )is   0r   <module>ru     s   " 
   ) ) 
  ' "J   , ,^  > c{# $ V2==3HI7ST U
,
,(,$"N&"R T%B-(5R=*I=a3q6=*IJ!!L0!!B.N
N):N
N
)@,^<$N4<H@
H! H'P %FGL HL8:*, f %0<"&	"	' S	*' +' '<'81(7$:D*`0& &&5B 

 

O! +Js   	H,