
    hk                         d dl Z d dlZd dlZd dlmZ d dlmZ d dlZd dl	Z	d dl
Zd dl
mZmZmZ d dlmZ  G d d      Zd Zd Zd	 Zy)
    N)ZipFile)Error)	DataFrameIndexcompatc            
       @   e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	 Zd
 Zd Zd Zd Zd Zd Zd Zej(                  j+                  d ej.                  dggdggdg      df ej.                  dgdggdgdggddg      dfg      d        Zd Zd Zd Zd Zd Zej(                  j=                   ej@                         d !      d"        Z!d# Z"ej(                  j+                  d$d%d&g      ej(                  j+                  d'd%d&g      d(               Z#d) Z$d* Z%ej(                  j+                  d+d,d-g      ej(                  j+                  d.d/d0g      d1               Z&ej(                  j+                  d2g d3      d4        Z'ej(                  j+                  d5d6g      d7        Z(d8 Z)d9 Z*ej(                  j+                  d:g d;      d<        Z+ej(                  j+                  d=d>d?g      d@        Z,ej(                  j+                  d=d>d?g      dA        Z-yB)C	TestToCSVc                    t        d dg      }d}t        j                  d      5 }|j                  |d d        t	        |d      5 }|j                         |k(  sJ 	 d d d        d d d        t        dd g      }d}t        j                  d      5 }|j                  |d d        t	        |d      5 }|j                         |k(  sJ 	 d d d        d d d        y # 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   *xY w# 1 sw Y   y xY w)N   z""
1.0
test.csvheaderindexutf-8encodingz1.0
""
r   tmensure_cleanto_csvopenread)selfdf1	expected1pathfdf2	expected2s          HD:\jyotish\venv\Lib\site-packages\pandas/tests/io/formats/test_to_csv.pytest_to_csv_with_single_columnz(TestToCSV.test_to_csv_with_single_column   s     q	"	 __Z(DJJtDJ5dW-vvx9,,, . )
 D	"	 __Z(DJJtDJ5dW-vvx9,,, . )( .- )( .- )(sG   "C(CC("D 4C4D C%	!C((C14C=	9D  D	c                     t        dg di      }t        j                  d      5 }|j                  |       t        j                  t        j                  |d      |       d d d        y # 1 sw Y   y xY w)Ncol)AAAAAu
   ÄÄÄÄÄu
   ßßßßßu   聞聞聞聞聞r   r   	index_col)r   r   r   r   assert_frame_equalpdread_csv)r   dfr   s      r    test_to_csv_default_encodingz&TestToCSV.test_to_csv_default_encoding0   sR    WXY__Z(DIIdO!!"++da"@"E )((s   =A++A4c                    t        dddgi      }d}t        j                  d      5 }|j                  |d       t	        |d      5 }|j                         |k(  sJ 	 d d d        d d d        d	}t        j                  d      5 }|j                  |dd
       t	        |d      5 }|j                         |k(  sJ 	 d d d        d d d        t        j                  d      5 }t        j                  t        d      5  |j                  |dd        d d d        d d d        y # 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   BxY w# 1 sw Y   y xY w)Nr#   r      z"","col"
"0","1"
"1","2"
r   )quotingr   r   z$$,$col$
$0$,$1$
$1$,$2$
$)r.   	quotecharr0   match)	r   r   r   r   r   r   pytestraises	TypeErrorr   r*   expectedr   r   s        r    test_to_csv_quotecharzTestToCSV.test_to_csv_quotechar9   s+   1v' __Z(DIIdAI&dW-vvx8+++ . )
 __Z(DIIdAI5dW-vvx8+++ . )
 __Z(Dy<		$T	: = )( .- )( .- )( =< )(sk   !D2D&D2"E
(D>?E
$E" EE"&D/	+D22D;>E	E

EE	E""E+c                    t        dddgi      }d}t        j                  d      5 }|j                  |dd       t	        |d	
      5 }|j                         |k(  sJ 	 d d d        d d d        t        j                  d      5 }t        j                  t        d      5  |j                  |d       d d d        d d d        y # 1 sw Y   gxY w# 1 sw Y   kxY w# 1 sw Y   *xY w# 1 sw Y   y xY w)Nr#   a"a"bb"z!"","col"
"0","a""a"
"1","""bb"""
r   r   T)r.   doublequoter   r   
escapecharr1   F)r<   )	r   r   r   r   r   r   r3   r4   r   r6   s        r    test_to_csv_doublequotez!TestToCSV.test_to_csv_doublequoteU   s    v/0 __Z(DIIdA4I8dW-vvx8+++ . )
 __Z(DuL9		$E	2 : )( .- )( :9 )(sG   "C	C CC*!C5C*C	CCC'	#C**C3c                 "   t        dddgi      }d}t        j                  d      5 }|j                  |ddd	       t	        |d
      5 }|j                         |k(  sJ 	 d d d        d d d        t        dddgi      }d}t        j                  d      5 }|j                  |dd       t	        |d
      5 }|j                         |k(  sJ 	 d d d        d d d        y # 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   *xY w# 1 sw Y   y xY w)Nr#   r:   r;   z!"","col"
"0","a\"a"
"1","\"bb\""
r   r   F\)r.   r<   r=   r   r   za,az,bb,z,col
0,a\,a
1,\,bb\,
   )r.   r=   r   r6   s        r    test_to_csv_escapecharz TestToCSV.test_to_csv_escapecharf   s    v/0 __Z(DIIdA5TIJdW-vvx8+++ . )
 v/0 __Z(DIIdA$I7dW-vvx8+++ . )( .- )( .- )(sG   #C-
C!!C-"D9C9D!C*	&C--C69D	>DDc                 ~    t        dddgi      }g d}t        j                  |      }|j                         |k(  sJ y )Nr#   r   r-   )z,col0,1z1,2)r   r   convert_rows_list_to_csv_strr   r   r*   expected_rowsr7   s       r    test_csv_to_stringzTestToCSV.test_csv_to_string   s=    1v'.22=Ayy{h&&&    c                    t        dgdgdgd      }ddg}t        j                  |      }|j                         |k(  sJ ddg}t        j                  |      }|j                  d	d
      |k(  sJ ddg}t        j                  |      }|j                  d      |k(  sJ ddg}t        j                  |      }|j                  d	d
d      |k(  sJ t        ddgddgdd      }g d}t        j                  |      }|j                  dd      |k(  sJ |j	                  d      j                  d      |k(  sJ |j	                  ddg      j                  d      |k(  sJ y )Nr   ag333333$@)col1col2col3z,col1,col2,col3z
0,1,a,10.1z;col1;col2;col3z
0;1;a;10,1,;)decimalsepz0,1,a,10.10%.2ffloat_formatz0;1;a;10,10)rQ   rR   rU   r   皙?皙@ffffff
@rK   bc)a,b,cz	0^0,2^2,1z	1^1,3^3,1F^)r   rQ   )rQ   rZ   )r   r   rE   r   	set_index)r   r*   rG   expected_defaultexpected_european_excelexpected_float_format_defaultexpected_float_formatr7   s           r    test_to_csv_decimalzTestToCSV.test_to_csv_decimal   s   cUTFCD*L9::=Iyy{....*L9"$"A"A-"Pyy#y.2IIII*M:(*(G(G(V%yyfy-1NNNN*M: " ? ? NIIcsI@$%	
%
 aXS#JQ?@;22=Ayyucy2h>>> ||C '''4@@@ ||S#J'..s.;xGGGrI   c                     t        ddgddgdd      }g d}t        j                  |      }|j                  d      j	                  d	      |k(  sJ |j                  dd
g      j	                  d	      |k(  sJ y )Nr   r   rW   rX   rY   )r\   z0,2.20,1z1,3.30,1rK   rS   rT   rZ   )r   r   rE   r^   r   rF   s       r    test_to_csv_float_formatz"TestToCSV.test_to_csv_float_format   s     aV3*1=>922=A||C ''V'<HHH ||S#J'..F.CxOOOrI   c                    t        dt        j                  gddgddgd      }g d}t        j                  |      }|j                  d      j                  d	      |k(  sJ |j                  dd
g      j                  d	      |k(  sJ t        t        j                  ddgddgd      }g d}t        j                  |      }|j                  d      j                  d	      |k(  sJ |j                  dd
g      j                  d	      |k(  sJ t        dddgddgd      }g d}t        j                  |      }|j                  d      j                  d	      |k(  sJ |j                  dd
g      j                  d	      |k(  sJ t        j                  dt        j                  dg      j                  d	      }t        j                  g d      }||k(  sJ y )Nr   r   r-   rA   rY   )r\   z0.0,0,2_,1,3rK   _na_reprZ   )r\   z_,0,2rg   )r\   z0,0,2z0,1,3r[   ZZZZZ,0z0,az1,ZZZZZz2,c)
r   npnanr   rE   r^   r   r(   SeriesNA)r   r*   rG   r7   csvs        r    test_to_csv_na_repzTestToCSV.test_to_csv_na_rep   s    a[1vQFCD522=A||C ''s'3x???||S#J'..c.:hFFF RVV1a&1v>?322=A||C ''s'3x???||S#J'..c.:hFFF QaV1a&9:322=A||C ''s'3x???||S#J'..c.:hFFFiibeeS)*111A223RS3rI   c                     t        j                  g d      }t        j                  dt        j                  dg|      j                  d      }||k(  sJ y )Nrl   rK   r[   dtyperk   ri   )r   rE   r(   rp   rq   r   )r   nullable_string_dtyper7   rr   s       r    "test_to_csv_na_rep_nullable_stringz,TestToCSV.test_to_csv_na_rep_nullable_string   sS     223RSiibeeS)1FGNN O 
 3rI   c                    t        dt        j                  ddd      i      }t        dt        j                  ddd      i      }g d}t        j                  |      }|j                         |k(  sJ g d}t        j                  |      }|j                  d	
      |k(  sJ g d}t        j                  |      }|j                  d
      |k(  sJ g d}t        j                  |      }|j                         |k(  sJ |j                  d
      |k(  sJ d|d<   d|d<   ddg}t        j                  |      }|j                  t        j                  dd      dg      }|j                         j                  d
      |k(  sJ y )NA20130101   speriodsfreqd),A0,2013-01-01 00:00:00z1,2013-01-01 00:00:01z2,2013-01-01 00:00:02z3,2013-01-01 00:00:03z4,2013-01-01 00:00:04)r   r   z1,2013-01-02 00:00:00z2,2013-01-03 00:00:00z3,2013-01-04 00:00:00z4,2013-01-05 00:00:00z%Y-%m-%d %H:%M:%S)date_format)r   0,2013-01-01z1,2013-01-01z2,2013-01-01z3,2013-01-01z4,2013-01-01%Y-%m-%d)r   r   z1,2013-01-02z2,2013-01-03z3,2013-01-04z4,2013-01-05r   Br   CzA,B,Cz2013-01-01,0,1.01h)keyr   )	r   r(   
date_ranger   rE   r   groupbyGroupermean)	r   df_secdf_dayrG   expected_default_secexpected_ymdhms_dayexpected_ymd_secexpected_default_daydf_sec_groupeds	            r    test_to_csv_date_formatz!TestToCSV.test_to_csv_date_format   s   Cz13!OPQCz13!OPQ
  ">>}M}}"6666
 !==mL}})<}=ATTTT
 ::=I}}}48HHHH
  ">>}M}}"6666}}}48LLLL ss "45::=I$)G(MN""$++
+CGWWWWrI   c                     t        t        j                  d      t        j                  ddd      d      }g d}t	        j
                  |      }|j                  d      |k(  sJ y )	Nz
1970-01-01r-   hr~   )datedatetime)zdate,datetimez1970-01-01,1970-01-01 00:00:00z1970-01-01,1970-01-01 01:00:00Fr   )r   r(   to_datetimer   r   rE   r   rF   s       r    &test_to_csv_different_datetime_formatsz0TestToCSV.test_to_csv_different_datetime_formats  s_    |4MM,L


 22=Ayyuy%111rI   c                    t        j                  t        j                  dt         j                  gd            }|j	                  d      }t        j                  g d      }|j                  d      |k(  sJ t        j                  t        j                  ddd	d
      j                  t        j                  t         j                  g                  }|j	                  d      }|j                  dd      |k(  sJ y )N
2021-03-27r   )formatcategory)0r   z""Fr   Dr   zEurope/Berlin)startr   r   tz)r   r   )r(   rp   r   NaTastyper   rE   r   r   appendDatetimeIndex)r   serr7   s      r    &test_to_csv_date_format_in_categoricalz0TestToCSV.test_to_csv_date_format_in_categorical,  s    iibff'=jQRjj$223LMzzz&(222iiMM"aOfR%%rvvh/0

 jj$zz:z>(JJJrI   c                     t        ddt        j                  dgdd      }|d   j                  d      |d<   |j	                  dd	
      }t        j                  g d      }||k(  sJ y )NrV   )\( @7 @r[   rK   rZ   rK   Float64Fz%.5f)r   rU   )a,bz	1.10000,cz	2.02000,c,cz	6.00001,cr   r(   rq   r   r   r   rE   r   r*   resultr7   s       r    !test_to_csv_float_ea_float_formatz+TestToCSV.test_to_csv_float_ea_float_format;  si    c49DES'..+3V<22@
 !!!rI   c                     t        ddt        j                  dgdd      }|d   j                  d      |d<   |j	                  d	      }t        j                  g d
      }||k(  sJ y )NrV   r   r   r[   r   rK   r   Fr   )r   z1.1,cz2.02,cr   z
6.000006,cr   r   s       r    $test_to_csv_float_ea_no_float_formatz.TestToCSV.test_to_csv_float_ea_no_float_formatE  sg    c49DES'..+3'22:
 !!!rI   c                    t        dgt        j                  j                  dgdgg            }g d}t	        j
                  |      }|j                         |k(  sJ g d}t	        j
                  |      }|j                  d      |k(  sJ t        dgt        j                  j                  dgdgg      t        j                  j                  dgdgg            }g d	}t	        j
                  |      }|j                         |k(  sJ g d}t	        j
                  |      }|j                  d      |k(  sJ t        dgt        j                  j                  d
gdgg            }g d}t	        j
                  |      }|j                         |k(  sJ g d}t	        j
                  |      }|j                  d      |k(  sJ y )Nr   r-   columns)z,1z,2rD   )12r   Fr   r   r   )z,,1z,,2z1,2,1foobar)z,fooz,barrD   )r   r   r   )r   r(   
MultiIndexfrom_arraysr   rE   r   )r   r*   exp_rowsexps       r    test_to_csv_multi_indexz!TestToCSV.test_to_csv_multi_indexO  s   sBMM$=$=sQCj$IJ&--h7yy{c!!!"--h7yyuy%,,,CMM--sQCj9--++aS1#J7
 +--h7yy{c!!!"--h7yyuy%,,,sBMM$=$=w>P$QR*--h7yy{c!!!&--h7yyuy%,,,rI   zind,expectedg      ?r   x)levelscodesnameszx,data
1.0,1
g       @yzx,y,data
1.0,2.0,1
c                 v     |t        j                  dg|d            }|j                  dd      }||k(  sJ y )Nr   data)name
T)lineterminatorr   )r(   rp   r   )r   indr7   frame_or_seriesobjr   s         r    $test_to_csv_single_level_multi_indexz.TestToCSV.test_to_csv_single_level_multi_indexs  s=    " biiSv>?4=!!!rI   c                     dddgidddgig}t        |      }d}t        j                  d      5 }|j                  |d	       t	        |d
	      5 }|j                         |k(  sJ 	 d d d        d d d        y # 1 sw Y   xY w# 1 sw Y   y xY w)Nr   r   r   bazqux-,names
0,"['foo', 'bar']"
1,"['baz', 'qux']"
zstr_test.csvasciir   r   r   )r   	str_arrayr*   expected_asciir   r   s         r    test_to_csv_string_array_asciiz(TestToCSV.test_to_csv_string_array_ascii  s    u~.5%.0IJ	y!
 __^,IIdWI-dW-vvx>111 . -,-- -,#   !BA8'B8B	=BBc                     dddgidddgig}t        |      }d}t        j                  d      5 }|j                  |d	       t	        |d	      5 }|j                         |k(  sJ 	 d d d        d d d        y # 1 sw Y   xY w# 1 sw Y   y xY w)
Nr   r   r   r   r   r   zunicode_test.csvr   r   r   )r   r   r*   expected_utf8r   r   s         r    test_to_csv_string_array_utf8z'TestToCSV.test_to_csv_string_array_utf8  s    u~.5%.0IJ	y!
 __/0DIIdWI-dW-vvx=000 . 10-- 10r   c                 \   g dg dd}t        |      }t        j                  d      5 }t        j                  j                  d      }d|z   dz   |z   dz   |z   d	z   |z   }|j                  |d
       t        |d      5 }|j                         |k(  sJ 	 d d d        d d d        t        j                  d      5 }d}|j                  |dd
       t        |d      5 }|j                         |k(  sJ 	 d d d        d d d        t        j                  d      5 }d}|j                  |dd
       t        |d      5 }|j                         |k(  sJ 	 d d d        d d d        y # 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   BxY w# 1 sw Y   y xY w)Nr   r-   rA   )abczd
efzg
h

i)intstr_lfzlf_test.csvr   s
   int,str_lf   1,abcs   2,"d
ef"s
   3,"g
h

i"Fr   rbs%   int,str_lf
1,abc
2,"d
ef"
3,"g
h

i"
r   r   r   s)   int,str_lf
1,abc
2,"d
ef"
3,"g
h

i"

	r   r   r   oslinesepencoder   r   r   	r   r   r*   r   
os_linesepexpected_noargr   expected_lfexpected_crlfs	            r    test_to_csv_string_with_lfz$TestToCSV.test_to_csv_string_with_lf  s    ,IJt___]+t**73J  	
  ##   IId%I(dD!Qvvx>111 " ,  __]+tJKIId4uI=dD!Qvvx;... "	 , __]+t UMIId6I?dD!Qvvx=000 " ,+ "! ,+( "!	 ,+ "! ,+l   AE2 E&E2<#F
E>6F
#F">FF"&E/	+E22E;>F	F

FF	F""F+c                 \   g dg dd}t        |      }t        j                  d      5 }t        j                  j                  d      }d|z   dz   |z   dz   |z   d	z   |z   }|j                  |d
       t        |d      5 }|j                         |k(  sJ 	 d d d        d d d        t        j                  d      5 }d}|j                  |dd
       t        |d      5 }|j                         |k(  sJ 	 d d d        d d d        t        j                  d      5 }d}|j                  |dd
       t        |d      5 }|j                         |k(  sJ 	 d d d        d d d        y # 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   BxY w# 1 sw Y   y xY w)Nr   )r   zd
efz	g
h

i)r   str_crlfzcrlf_test.csvr   s   int,str_crlfr   s	   2,"d
ef"s   3,"g
h

i"Fr   r   s+   int,str_crlf
1,abc
2,"d
ef"
3,"g
h

i"
r   r   s/   int,str_crlf
1,abc
2,"d
ef"
3,"g
h

i"
r   r   r   s	            r    test_to_csv_string_with_crlfz&TestToCSV.test_to_csv_string_with_crlf  s    .STt____-**73J  !	!
  ))   IId%I(dD!Qvvx>111 " .  ___-TKIId4uI=dD!Qvvx;... "	 . ___-+  IId6I?dD!Qvvx=000 " .- "! .-( "!	 .-  "! .-r   c                    t        ddgddggddg      }g d}t        j                  |      }|j                  t        j
                  d	
       |j                         }|j                  |k(  sJ t        j
                  j                  rJ y )Nr   r   r   r   name_1name_2r   )z,name_1,name_2z	0,foo,barz	1,baz,quxr   r   )	r   r   rE   r   sysstdout
readouterroutclosed)r   capsysr*   rG   r   captureds         r    test_to_csv_stdout_filez!TestToCSV.test_to_csv_stdout_file  s    7(HAUVD88G
		#**w	/$$&||~---::$$$$$rI   zEspecially in Windows, file stream should not be passedto csv writer without newline='' option.(https://docs.python.org/3/library/csv.html#csv.writer))reasonc                 z   t        dg di      }d}t        j                  d      5 }t        |dd      5 }|j	                  d       |j                  |d d 	       d d d        t        |d      5 }|j                         |k(  sJ 	 d d d        d d d        y # 1 sw Y   >xY w# 1 sw Y   xY w# 1 sw Y   y xY w)
NrK   r   r   zzmanual header
x
y
z
test.txtwr   r   manual header
r   )r   r   r   r   writer   r   r6   s        r    test_to_csv_write_to_open_filez(TestToCSV.test_to_csv_write_to_open_file  s     _-. __Z(DdC'2a)*		!D	5 3 dW-vvx8+++ .	 )(22 .-	 )(s:   B1&BB11B%B1B"	B1%B.	*B11B:c                    t        dg di      }g d}dt        j                  |      z   }t        j                  d      5 }t	        |ddd      5 }|j                  d       |j                  |d d 	       d d d        t	        |d
      5 }|j                         t        |d      k(  sJ 	 d d d        d d d        y # 1 sw Y   GxY w# 1 sw Y   xY w# 1 sw Y   y xY w)NrK   r  r  r  r   r   )newliner   r   r   )	r   r   rE   r   r   r	  r   r   bytes)r   r*   rG   r7   r   r   s         r    /test_to_csv_write_to_open_file_with_newline_py3z9TestToCSV.test_to_csv_write_to_open_file_with_newline_py3  s     _-.'$r'F'F}'UU__Z(DdCg>!)*		!D	5 ? dD!Qvvx57#;;;; " )(>> "! )(s<   C&B=7C C	,C=C	C	C	CCto_inferTF
read_inferc                 &   |}d}|||   z  }t        ddgi      }|rdn|}|rdn|}	t        j                  |      5 }
|j                  |
|       t	        j
                  |
d|	      }t        j                  ||       d d d        y # 1 sw Y   y xY w)Nztest.rz   r   infercompressionr   )r&   r  )r   r   r   r   r(   r)   r'   )r   compression_onlyr  r  compression_to_extensionr  filenamer*   to_compressionread_compressionr   r   s               r    test_to_csv_compressionz!TestToCSV.test_to_csv_compression   s     ' ,[99aSz"$,+&07k__X&$IIdI7[[@PQF!!&"- '&&s   ABBc                 4   |}t        ddgi      }d}dddj                  ||      }||z  }t        j                  |      5 }|j	                  |d|i       t        j                  |d	
      }t        j                  ||       d d d        y # 1 sw Y   y xY w)NABCr   zto_csv_compress_as_dict.gzzst)gzipzstdmethodr  r   r%   )r   getr   r   r   r(   r)   r'   )r   r  r"  r*   r  	extensionr   read_dfs           r    test_to_csv_compression_dictz&TestToCSV.test_to_csv_compression_dict6  s    !s|$-
 #ff
 	 	I__X&$IId6(:I;kk$!4G!!'2. '&&s   ABBc                    t        ddgi      }ddi}d}t        j                  d      5 }t        j                  t
        |      5  |j                  ||       d d d        d d d        y # 1 sw Y   xY w# 1 sw Y   y xY w)	Nr  r   some_optionTzmust have key 'method'zout.zipr1   r  )r   r   r   r3   r4   
ValueErrorr   )r   r*   r  msgr   s        r    -test_to_csv_compression_dict_no_method_raisesz7TestToCSV.test_to_csv_compression_dict_no_method_raisesE  sj    s|$$d+&__Y'4z5		$K	8 6 ('55 ('s#   A7A+A7+A4	0A77B r  zipr  archive_nameztest_to_csv.csvztest_to_csv.zipc                 V   t        ddgi      }t        j                  d      5 }|j                  |||d       t	        |      5 }t        |j                        dk(  sJ |j                  d   j                  }||k(  sJ 	 d d d        d d d        y # 1 sw Y   xY w# 1 sw Y   y xY w)Nr  r   zto_csv_archive_name.zip)r"  r-  r  r   )r   r   r   r   r   lenfilelistr  )r   r  r-  r*   r   zparchived_files          r    test_to_csv_zip_argumentsz#TestToCSV.test_to_csv_zip_argumentsO  s     s|$__674II[,"W   "2;;'1,,, "A 7 7$444 	 87 	 87s#   "B;BBB	BB(zfilename,expected_arcname))archive.csvr4  )archive.tsvr5  )zarchive.csv.zipr4  )zarchive.tsv.zipr5  )zarchive.ziparchivec                    t        ddgi      }||z  }|j                  |d       t        |      5 }t        |j                        dk(  sJ |j                  d   j
                  }||k(  sJ 	 d d d        y # 1 sw Y   y xY w)Nr  r   r,  r  r   )r   r   r   r/  r0  r  )r   tmp_pathr  expected_arcnamer*   r   r1  r2  s           r    test_to_csv_zip_infer_namez$TestToCSV.test_to_csv_zip_infer_name]  sz     s|$("
		$E	*T]br{{#q(((KKN33M $4444 ]]s   ;A77B df_new_typeInt64c                     t        dt        d      gdz  i      }|j                  |      }g d}t        j                  |      }|j                  ddd      }||k(  sJ y )	Nr[   ro   rA   )r[   mynullr>  r>  Fr>  r   )r   rj   r   )r   floatr   r   rE   r   )r   r;  r*   rG   r7   r   s         r    test_to_csv_na_rep_long_stringz(TestToCSV.test_to_csv_na_rep_long_stringq  sc     eEl^a/01YY{#;22=Ax'J6!!!rI   c                     t        j                  ddg      j                  d      }t        j                         }|j                  |       |j                         }g d}t        j                  |      }||k(  sJ y )Nr   ztimedelta64[ns])rm   z0,0 days 00:00:00.000000001z1,0 days 00:00:00.000000001)	r(   rp   r   ioStringIOr   getvaluer   rE   )r   r}   bufr   rG   r7   s         r    test_to_csv_timedelta_precisionz)TestToCSV.test_to_csv_timedelta_precision}  sh    IIq!f$$%67kkm	

 22=A!!!rI   c                    t        j                  t        dd            j                  d      }t	        j
                  g d      }||k(  sJ t        j                  ddg      j                  d      }t	        j
                  g d	      }||k(  sJ t        j                  d
dg      j                  d      }t	        j
                  g d      }||k(  sJ y )N      -ri   )rm   z0,8z1,9z2,10z3,11TFro   )rm   z0,Truez1,FalserV   rW   .)rm   z0,1.1z1,2.2)r(   rp   ranger   r   rE   )r   r   r7   s      r    test_na_rep_truncatedzTestToCSV.test_na_rep_truncated  s    5B<(//s/;223WX!!!D%=)000>223NO!!!C:&--S-9223KL!!!rI   errors)surrogatepassignorereplacec                     dg}t        j                  |t        |t              t              }t	        j
                  d      5 }|j                  ||       d d d        y # 1 sw Y   y xY w)Nu   fooru   )r   rv   r   )rN  )r(   rp   r   objectr   r   r   )r   rN  r   r   r   s        r    test_to_csv_errorszTestToCSV.test_to_csv_errors  sN     }iiE$f$=VL__Z(DJJtFJ+ )((s   A!!A*modewbr  c                    t        dt        j                  d      j                  d      z  t	        t        d            t	        t        d      D cg c]  }d| 	 c}            }t        j                         5 }t        |d	      5 }|j                  ||	       d
d
d
       t        j                  |t        j                  |d             d
d
d
       y
c c}w # 1 sw Y   BxY w# 1 sw Y   y
xY w)z
        Binary file objects should work (if 'mode' contains a 'b') or even without
        it in most cases.

        GH 35058 and GH 19827
        rV   x         ABCDrZ  i-r   w+b)rU  Nr   r%   )r   rn   arangereshaper   listrL  r   r   r   r   r'   r(   r)   )r   rU  ir*   r   handles         r    test_to_csv_binary_handlez#TestToCSV.test_to_csv_binary_handle  s     "))C.((11$v,'5959a2aS956

 __$d'6		&t	, (!!"bkk$!&DE  6 (' s*   C=C,C 3C, C)	%C,,C5c                 f   dj                  d      }t        j                  |      }t        j                  |d      }t        j                         }|j                  ||dd       |j                  d       |j                         j                  |      sJ t        j                         5 }t        |d      5 }t               j                  ||d       |j                  d       |j                         j                  d	      sJ 	 d
d
d
       d
d
d
       y
# 1 sw Y   xY w# 1 sw Y   y
xY w)z{
        Binary file objects should honor a specified encoding.

        GH 23854 and GH 13068 with binary handles
        u
   a, b, 🐟z	utf-8-sigr   F)rU  r   r   r   r^  )rU  r   s   ﻿""N)r   rB  BytesIOr(   r)   r   seekrD  
startswithr   r   r   r   r   )r   rU  contentbufferr*   r   rc  s          r    "test_to_csv_encoding_binary_handlez,TestToCSV.test_to_csv_encoding_binary_handle  s     %%k2G$[[+6
		&tk	GA ++G444 __$dE"f""6{"KA{{}//0ABBB	 # "" s%   -D':AD
D'D$	 D''D0N).__name__
__module____qualname__r!   r+   r8   r>   rB   rH   rc   re   rs   rx   r   r   r   r   r   r   r3   markparametrizer(   r   r   r   r   r   r   r  xfailr   is_platform_windowsr
  r  r  r&  r+  r3  r:  r@  rF  rM  rT  rd  rk   rI   r    r	   r	      s   -8F;83",2'"HH
P>=X~2 K"""-H [[ seWaSE#G!
  EC5>1#sC: (		
""21 1D%1N
% [["""$F  ,, < [[Z$7[[\D%=9. : 8.(/9 [[]UG,<=[[^.?AR-ST
5 U >
5 [[#	
	5	5 [[]WI6	" 7	""" [[X'MN, O, [[VdC[1F 2F" [[VdC[1C 2CrI   r	   c                    t        dt        j                  d      j                  d      z  t	        t        d            t	        t        d      D cg c]  }d| 	 c}            }t        j                         5 }|j                  || d	       t        j                  t        j                  || d
      |       d d d        y c c}w # 1 sw Y   y xY wNrV   rX  rY  r\  rZ  r]  r   r   )r  	chunksizer   )r  r&   )r   rn   r_  r`  r   ra  rL  r   r   r   r'   r(   r)   )r  rb  r*   r   s       r    &test_to_csv_iterative_compression_namerw    s    	biin$$W--d6l#uRy1y!r!Xy12
B
 
	d
		$K1	=
KK+CR	
 
	 2		s   C=ACCc                    t        dt        j                  d      j                  d      z  t	        t        d            t	        t        d      D cg c]  }d| 	 c}            }t        j                         5 }|j                  || d	       |j                  d
       t        j                  t        j                  || d
      |       |j                  rJ 	 d d d        y c c}w # 1 sw Y   y xY wru  )r   rn   r_  r`  r   ra  rL  rB  rf  r   rg  r   r'   r(   r)   r   )r  rb  r*   rj  s       r    (test_to_csv_iterative_compression_bufferry    s    	biin$$W--d6l#uRy1y!r!Xy12
B
 

		&kQ	?A
KKK1Er	
 ==  = 
 2	s   C'=A C,,C5c                      t        dg di      } d}t        j                  t        |      5  t	        j
                         }| j                  |d       d d d        y # 1 sw Y   y xY w)NrK   r   ztStarting with pandas version 3.0 all arguments of to_csv except for the argument 'path_or_buf' will be keyword-only.r1   rP   )r   r   assert_produces_warningFutureWarningrB  rf  r   )r*   r*  rj  s      r     test_to_csv_pos_args_deprecationr}    sR    	C#	$B	8  
	#	#M	=
		&# 
>	=	=s   'AA&)rB  r   r   zipfiler   _csvr   numpyrn   r3   pandasr(   r   r   r   pandas._testing_testingr   r	   rw  ry  r}  rs  rI   r    <module>r     sJ    	 	 
      
 y
C y
Cx
! 	rI   