
    Mh\                        S r SSKrSSKrSSKJr  SSKJrJrJr  SSK	r	SSK
r
SSKJr  SSKrSSKrSSKrSSKrSSKJr  SSKJs  Jr  SSKrSSKJr  SSKJs  Jr  \R@                  RC                  S5      r" " S S	5      r#\$\#\/r% SS
K&J'r(  \%RS                  \(5        \
RV                  RY                  \
RV                  R[                  \.5      5      r/ " S S5      r0\Rb                  S 5       r2 " S S5      r3S r4\R@                  Rk                  SSS/5      \R@                  Rk                  SSS/5      S 5       5       r6S r7\R@                  Rk                  S\SS4\SS4/5      S 5       r8\R@                  Rk                  S/ SQ5      \R@                  Rk                  SSS/5      S  5       5       r9S! r:S" r;S# r<S$ r=\R@                  Rk                  S%\R|                  \R~                  \R                  \R                  \R                  \R                  \R                  \R                  \R                  /	5      S& 5       rGg! \* a     GNf = f)'z0
Tests for the pandas.io.common functionalities
    N)partial)BytesIOStringIOUnsupportedOperation)Path)is_platform_windowsz=ignore:Passing a BlockManager to DataFrame:DeprecationWarningc                   (    \ rS rSrSrSS jrS rSrg)CustomFSPath"   z%For testing fspath on unknown objectsNc                     Xl         g Npath)selfr   s     M/var/www/html/env/lib/python3.13/site-packages/pandas/tests/io/test_common.py__init__CustomFSPath.__init__%   s    	    c                     U R                   $ r   r   r   s    r   
__fspath__CustomFSPath.__fspath__(   s    yyr   r   )returnN)__name__
__module____qualname____firstlineno____doc__r   r   __static_attributes__ r   r   r
   r
   "   s    /r   r
   )localc                      \ rS rSrSrS rS rS r\R                  " S5      S 5       r
S rS	 r\R                  R                  S
\5      S 5       r\R                  R                  S
\\\/5      S 5       rS rS rS rS r\R                  R                  S\R6                  S\S4\R:                  S\S4\R<                  S\S4\R>                  S\ S4\RB                  S\S4\RD                  S\S4\RF                  S\S4\RH                  S\S4\RJ                  S\S4/	5      S 5       r&\R                  R                  S \RN                  RP                  S\ S4\RN                  RR                  S\ S!4\RN                  RT                  S\ S4\RN                  RV                  S\ S4\RN                  RX                  S\ S"4\RN                  RZ                  S\ S4\RN                  R\                  S\ S4\RN                  R^                  S\ S4/5      S# 5       r0\R                  R                  S\R6                  S\S4\Rb                  S\S4\R:                  S\S4\R<                  S\S4\R>                  S\ S4\RB                  S\S4\RD                  S\S4\RF                  S\S4\RH                  S\S4\RJ                  S\S4/
5      S$ 5       r2\R                  R                  S%\R6                  SS&4\Rb                  SS&4\R:                  SS'4\R<                  SS(4\R>                  SS)4\RB                  SS*4\RD                  SS+4\RF                  SS,4\RH                  SS-4\RJ                  SS.4/
5      S/ 5       r3\R                  R                  S0S10 S4S2S3S40S44S50 S4S60 S4S70 S4S80 S4S90 S4S:S;\Rh                  " S<5      0S4/5      S= 5       r5S> r6S?r7g@)ATestCommonIOCapabilities:   ziindex,A,B,C,D
foo,2,3,4,5
bar,7,8,9,10
baz,12,13,14,15
qux,12,13,14,15
foo2,12,13,14,15
bar2,12,13,14,15
c                     Sn[         R                  " U5      nX!:w  d   e[        R                  R	                  U5      (       d   e[        R                  R                  U5      U:X  d   eg )Nz
~/sometest)icom_expand_userosr   isabs
expanduserr   filenameexpanded_names      r   test_expand_user)TestCommonIOCapabilities.test_expand_userD   sY    ))(3(((ww}}]++++ww!!(+}<<<r   c                     Sn[         R                  " U5      nX!:X  d   e[        R                  R	                  U5      U:X  d   eg )Nz/somefolder/sometest)r&   r'   r(   r   r*   r+   s      r   test_expand_user_normal_path5TestCommonIOCapabilities.test_expand_user_normal_pathL   s@    )))(3(((ww!!(+}<<<r   c                     [         R                  " [        S5      5      nUS:X  d   e[         R                  " [        S5      5      nU[        R                  R                  SS5      :X  d   eg )N.zfoo//barfoobar)r&   stringify_pathr   r(   r   join)r   rel_pathredundant_paths      r   test_stringify_path_pathlib4TestCommonIOCapabilities.test_stringify_path_pathlibS   sT    &&tCy13,,T*-=>eU!;;;;r   zpy.pathc                     [         R                  R                  SS5      n[         R                  R                  U5      n[	        U5      n[
        R                  " U5      U:X  d   eg )Nr5   r6   )r(   r   r8   abspath	LocalPathr&   r7   )r   r   abs_pathlpaths       r   test_stringify_path_localpath6TestCommonIOCapabilities.test_stringify_path_localpathY   sJ    ww||E5)77??4($""5)X555r   c                 V    [        S5      n[        R                  " U5      nUS:X  d   eg )Nfoo/bar.csv)r
   r&   r7   )r   presults      r   test_stringify_path_fspath3TestCommonIOCapabilities.test_stringify_path_fspath`   s*    '$$Q'&&&r   c                 "   [         R                  " S5      n[        R                  " 5        nUR	                  SU 3SS9 nU[
        R                  " U5      :X  d   e S S S 5        S S S 5        g ! , (       d  f       N= f! , (       d  f       g = f)Nfsspeczfile://wbmode)pytestimportorskiptmensure_cleanopenr&   r7   )r   rK   r   
fsspec_objs       r   !test_stringify_file_and_path_like:TestCommonIOCapabilities.test_stringify_file_and_path_likee   sm    $$X.__$wtf-D9Z!T%8%8%DDDD : 99 s#   B  A/B /
A=	9B  
B	path_typec                 Z    Uu  p4U" SU-   5      n[         R                  " USS9nXd:X  d   eg )NrE   infer)compression)r&   infer_compression)r   compression_formatrW   	extensionexpectedr   rZ   s          r    test_infer_compression_from_path9TestCommonIOCapabilities.test_infer_compression_from_pathl   s7    0	23,,TwG&&&r   c                    [         R                  " [        R                  " 5       S9 nU" S[        U5      R                  -   S-   5      n[
        R                  " US5       n[        UR                  R                  5      R                  5       (       d   e[        R                  R                  U5      UR                  R                  :X  d   e S S S 5        S S S 5        g ! , (       d  f       N= f! , (       d  f       g = f)N)dirz~/z	/sometestw)tempfileTemporaryDirectoryr   homenamer&   
get_handlehandleis_absoluter(   r   r*   )r   rW   tmpr,   handless        r   test_get_handle_with_path2TestCommonIOCapabilities.test_get_handle_with_paths   s     ((TYY[9S S	!6!DEH3/7GNN//0<<>>>>ww))(3w~~7J7JJJJ 0 :9// :9s$   9C2!A.C!C2!
C/	+C22
D c                 "   [        5        n[        R                  " US5       nUR                  U:X  d   e S S S 5        UR                  (       a   e S S S 5        WR                  (       d   eg ! , (       d  f       N>= f! , (       d  f       N3= f)Nr)r   r&   rh   ri   closed)r   input_bufferrl   s      r   test_get_handle_with_buffer4TestCommonIOCapabilities.test_get_handle_with_buffer|   si    Z<s3w~~555 4#*****  """" 43 Zs!   B A/B /
A=	9B  
Bc                    Sn[         R                  " [        U5      SSS9 nSnSn UR                  R	                  U5      n[        U5      U::  d   e[        U5      U:  a.  [        UR                  R	                  5       5      S:X  d   eX5-  nOX5-  nMo  X1R                  S5      :X  d   e S S S 5        g ! , (       d  f       g = f)	N&   a,b,c
1,2,3
©,®,®
Look,a snake,🐍rbFis_textr      r   utf-8)r&   rh   r   ri   readlenencode)r   datarl   rG   	chunksizechunks         r   )test_bytesiowrapper_returns_correct_bytesBTestCommonIOCapabilities.test_bytesiowrapper_returns_correct_bytes   s     __Xd^T5AWFI++I65zY...u:	) w~~2245:::OF  [[1111 BAAs   BB77
Cc                    [         R                  " S5      nSn[        R                  " / SQ/ SQ/ SQS.5      n[	        U5      n[
        R                  " USSS	9 nUR                  UR                  5      R                  5       n[        R                  " Xc5        UR                  (       a   e S S S 5        g ! , (       d  f       g = f)
Nzpyarrow.csvrv   )1   ©Look)2   ®za snake)3r   u   🐍abcrw   Frx   )rO   rP   pd	DataFramer   r&   rh   read_csvri   	to_pandasrQ   assert_frame_equalrq   )r   pa_csvr   r^   srl   dfs          r   test_get_handle_pyarrow_compat7TestCommonIOCapabilities.test_get_handle_pyarrow_compat   s    $$]3 <<%,BI\]
 TN__Qe40::<B!!"/xx<x 544s   AB77
Cc                    [         R                  " [        U R                  5      SS9 n[         R                  " USS9nS S S 5        [         R                  " [        U R                  5      5      n[
        R                  " WU5        [         R                  " [        U R                  5      SS9 n[        U5      n[
        R                  " XSR                  S/   5        [
        R                  " [         R                  " U5      UR                  SS  5        S S S 5        g ! , (       d  f       N= f! , (       d  f       g = f)N   )r   T)ignore_indexr   )	r   r   r   data1concatrQ   r   nextiloc)r   readerrG   r^   itfirsts         r   test_iterator&TestCommonIOCapabilities.test_iterator   s    [[$**-;vYYvD9F <;;x

34
fh/ [[$**-;rHE!!%s);<!!"))B-qr1BC <; <; <;s   D /A(D1 
D.1
D?z#reader, module, error_class, fn_extr(   csvtxtxlrdxlsxpyarrowfeathertablesh5dtasas7bdatjsonpicklec                 t   [         R                  " U5        [        R                  R	                  [
        SSU-   5      nSU S3nSU S3nSnSn	S	U S
U S3n
SU S3nSU S3nSU 3n[         R                  " USU SU SU SU	 SU
 SU SU SU S3S9   U" U5        S S S 5        g ! , (       d  f       g = f)Nr   does_not_exist.File (b')?.+does_not_exist\.'? does not exist:\[Errno 2\] No such file or directory: '.+does_not_exist\.'zExpected object or value7path_or_buf needs to be a string file path or file-like#\[Errno 2\] File .+does_not_exist\.$ does not exist: '.+does_not_exist\.<   \[Errno 2\] 没有那个文件或目录: '.+does_not_exist\.?\[Errno 2\] File o directory non esistente: '.+does_not_exist\.+Failed to open local file.+does_not_exist\.(|)match)rO   rP   r(   r   r8   HEREraises)r   r   moduleerror_classfn_extr   msg1msg2msg3msg4msg5msg6msg7msg8s                 r   test_read_non_existent/TestCommonIOCapabilities.test_read_non_existent   s    	F#ww||D&*;f*DE.vh6GHLVHTUV)H26( ;##)(!- 	 OvhVWXNvhVWX 	 >fXF]]tfAdV1TF!D64&$qavQO
 4L	
 
 
s   	B))
B7z#method, module, error_class, fn_exthtmlparquetc                 0   [         R                  " U5        [        R                  " / SQ/ SQ/ SQS.5      n[        R
                  R                  [        SSSU-   5      n[         R                  " USS	9   U" XV5        S S S 5        g ! , (       d  f       g = f)
N)r         )r   r      )r   r   rz   r   r   missing_folderr   z@Cannot save file into a non-existent directory: .*missing_folderr   )	rO   rP   r   r   r(   r   r8   r   r   )r   methodr   r   r   dummy_framer   s          r   #test_write_missing_parent_directory<TestCommonIOCapabilities.test_write_missing_parent_directory   ss     	F#ll#STww||D&*:<MPV<VW]]U
 ;%	
 
 
s   5	B
Bc                    [         R                  " U5        [        R                  R	                  SSU-   5      nUR                  [        SS 5        SU S3nSU S3nS	n	S
n
SU SU S3nSU S3nSU S3nSU 3n[         R                  " USU SU SU	 SU
 SU SU SU SU S3S9   U" U5        S S S 5        g ! , (       d  f       g = f)N~r   r'   c                 B    [         R                  R                  SU 5      $ )Nr5   )r(   r   r8   )xs    r   <lambda>JTestCommonIOCapabilities.test_read_expands_user_home_dir.<locals>.<lambda>  s    BGGLLPQ<Rr   r   r   r   r   z0Unexpected character found when decoding 'false'r   r   r   r   r   r   r   r   r   r   )rO   rP   r(   r   r8   setattrr&   r   )r   r   r   r   r   monkeypatchr   r   r   r   r   r   r   r   r   s                  r   test_read_expands_user_home_dir8TestCommonIOCapabilities.test_read_expands_user_home_dir   s   $ 	F#ww||C!2V!;<D.2RS.vh6GHLVHTUVAH26( ;##)(!- 	 OvhVWXNvhVWX 	 >fXF]]tfAdV1TF!D64&$qavQO
 4L	
 
 
s   *	B<<
C
zreader, module, path)ior   r   ziris.csv)r   r   fixed_widthzfixed_width_format.txt)r   r   excelz
test1.xlsx)r   r   r   zfeather-0_3_1.feather)r   r   
legacy_hdfzdatetimetz_object.h5)r   r   statazstata10_115.dta)r   sasr   ztest1.sas7bdat)r   r   r   ztsframe_v012.json)r   r   r   zcategorical.0.25.0.picklec                     [         R                  " U5        U" U6 n[        U5      nU" U5      nU" U5      nUR                  S5      (       a  [        R
                  " Xg5        g [        R                  " Xg5        g )Nz.pickle)rO   rP   r
   endswithrQ   assert_categorical_equalr   )r   r   r   r   datapathmypathrG   r^   s           r   test_read_fspath_all-TestCommonIOCapabilities.test_read_fspath_all$  sc    @ 	F#d#$<==##''9!!&3r   z"writer_name, writer_kwargs, moduleto_csvto_excelengineopenpyxl
to_featherto_htmlto_jsonto_latex	to_pickleto_stata
time_stampz2019-01-01 00:00c           	      .   US;   a  [         R                  " S5        [        R                  " S5      n[        R                  " S5      n[        R
                  " SSS/05      nU ou n[         R                  " U5        [        U5      n	[        Xa5      n
U
" U40 UD6  U
" U	40 UD6  [        US5       n[        US5       nUS	:X  aE  [        R                  " U40 UD6n[        R                  " U40 UD6n[        R                  " X5        O'UR                  5       nUR                  5       nX:X  d   eS S S 5        S S S 5        S S S 5        S S S 5        g ! , (       d  f       N'= f! , (       d  f       N0= f! , (       d  f       N9= f! , (       d  f       g = f)
N)r   jinja2stringfspathAr   r   rw   r   )rO   rP   rQ   rR   r   r   r
   getattrrS   
read_excelr   r|   )r   writer_namewriter_kwargsr   p1p2r   r   r  r   writerf_strf_pathrG   r^   s                  r   test_write_fspath_all.TestCommonIOCapabilities.test_write_fspath_allQ  s8    ,&)__X&__X&\\3A-(62'!&)FR-F6+]+6+]+fd#ud64.@F*,  ]]5BMBF!}}VE}EH))&;"ZZ\F%{{}H!--- /A# RR /A.@## 2RRsV   %F'AE52E$?A3E	2E$:E5F
E!E$$
E2.E55
F	?F
Fc                    [         R                  " S5        [        R                  " SSS/05      n[        R
                  " S5      n[        R
                  " S5      nU oC n[        U5      nUR                  USS9  UR                  USS9  [        R                  " USS9n[        R                  " USS9nS S S 5        S S S 5        [        R                  " WW5        g ! , (       d  f       N.= f! , (       d  f       N7= f)	Nr   r  r   r   r   r  r6   )key)
rO   rP   r   r   rQ   rR   r
   to_hdfread_hdfr   )	r   r   r  r  r   r  r   rG   r^   s	            r   test_write_fspath_hdf5/TestCommonIOCapabilities.test_write_fspath_hdf5x  s     	H%\\3A-(__X&__X&62!&)FIIf%I(IIf%I([[U3F{{6u5H R 	fh/ 2RRs%   C0!AC7C0
C-	)C00
C>r    N)8r   r   r   r   r   r.   r1   r;   td
skip_if_norB   rH   rU   rO   markparametrize
path_typesr_   strr
   r   rm   rs   r   r   r   r   r   FileNotFoundErrorread_fwfr  read_featherOSErrorr  
read_stataread_sas	read_jsonread_pickler   r   r   r   r   r   
to_parquetr   r   r   r   
read_tabler   r   to_datetimer  r  r   r    r   r   r#   r#   :   s   E==< ]]96 6'
E [[[*5' 6' [[[3d*CDK EK#2. "
D [[-[[$ 159[[$ 159]]F$5v>__i)<[[($5t<]]D"3U;[[$ 1:>\\4!2F;^^T#4h?
	
0 [[-\\  $7\\!!4&9\\""FGV<\\$$i)D\\$$i)D\\""D'59\\!!4&9\\##T7H=		
&& [[-[[$ 159]]D"3U;[[$ 159]]F$5v>__i)<[[($5t<]]D"3U;[[$ 1:>\\4!2F;^^T#4h?	
8 [[[[$ AB]]D"CDG
 ]]F$IJB D
 ]]D"LM[[$ GH\\4!LME-	
>4?>4 [[,r4 (J/<2y)D!D!T""d#,7I(JKTR		
..40r   r#   c                     U " SSSS5      $ )Nr   r   r   ztest_mmap.csvr    )r   s    r   	mmap_filer&    s    D&%99r   c                       \ rS rSrS rS rS rS r\R                  R                  SSS/5      \R                  R                  S	S
S/5      S 5       5       rSrg)TestMMapWrapperi  c                    [        S5      nS Ul        [        5       (       a	  Sn[        nOSn[        R
                  n[        R                  " XCS9   [        R                  " US5        S S S 5        [        USS9 n S S S 5        S	n[        R                  " [        US9   [        R                  " WS5        S S S 5        g ! , (       d  f       N^= f! , (       d  f       N[= f! , (       d  f       g = f)
NzI am not a filec                      g)Nr    r    r   r   r   ;TestMMapWrapper.test_constructor_bad_file.<locals>.<lambda>  s    "r   zThe parameter is incorrectz
[Errno 22]r   Tr{   encodingzI/O operation on closed file)r   filenor   r  mmaperrorrO   r   r&   _maybe_memory_maprS   
ValueError)r   r&  non_filemsgerrtargets         r   test_constructor_bad_file)TestMMapWrapper.test_constructor_bad_file  s    -.$   .CCC**C]]3*""8T2 + )g.& / -]]:S1""640 21 +* /. 21s$   C<C!C$
C
C!$
C2c                 <   [        USS9 nUR                  5       n[        R                  " USSSS9 nUR                  n[        UR                  R                  [        R                  5      (       d   eU H2  n[        U5      nUR                  5       UR                  5       :X  a  M2   e   [        R                  " [        SS9   [        U5        S S S 5        S S S 5        S S S 5        g ! , (       d  f       N= f! , (       d  f       N(= f! , (       d  f       g = f)Nr{   r-  rp   T)ry   
memory_mapz^$r   )rS   	readlinesr&   rh   ri   
isinstancebufferr0  r   striprO   r   StopIteration)r   r&  r7  lineswrapperswrapperline	next_lines           r   	test_nextTestMMapWrapper.test_next  s    )g.&$$&ETd"//!'.."7"7CCCC!D $WI$??,

<<< " ]]=>M ? /. ?>  /.sA   (DA2C<)C<C+C<D+
C95C<<
D
	D
Dc                 >   [         R                  " 5        n[        R                  " S[        R
                  " S5      R                  S5      -  [        R                  " [        S5      [        S9[        R                  " [        S5       Vs/ s H  nSU 3PM
     sn[        S9S9nUR                  U5        [        R                  " [        S	S
9   [        R                  " USS9  S S S 5        S S S 5        g s  snf ! , (       d  f       N= f! , (       d  f       g = f)N皙?x      r   ABCDdtyperL  i-columnsindexzUnknown enginer   pyt)r   )rQ   rR   r   r   nparangereshapeIndexlistobjectranger   rO   r   r3  r   r   r   ir   s       r   test_unknown_engine#TestMMapWrapper.test_unknown_engine  s    __$biin,,W55fV<hh%)<)Q"QC)<FKB
 IIdOz1ABD/ C   = CB s6   A6DC86DC='D8D=
D	D
Dc                     [         R                  " 5        n[        R                  " S[        R
                  " S5      R                  S5      -  [        R                  " [        S5      [        S9[        R                  " [        S5       Vs/ s H  nSU 3PM
     sn[        S9S9nUR                  US	S
9  [         R                  " U[        R                  " USS95        SSS5        gs  snf ! , (       d  f       g= f)zD
'encoding' shouldn't be passed to 'open' in binary mode.

GH 35058
rI  rJ  rK  rM  rN  rL  rP  rQ  zw+brM   r   	index_colN)rQ   rR   r   r   rU  rV  rW  rX  rY  rZ  r[  r   r   r   r\  s       r   test_binary_mode TestMMapWrapper.test_binary_mode  s     __$biin,,W55fV<hh%)<)Q"QC)<FKB
 IIdI'!!"bkk$!&DE   =	 s   A6C/C*AC/*C//
C=r.  zutf-16zutf-32compression_bz2xzc                    [         R                  " S[        R                  " S5      R	                  S5      -  [         R
                  " [        S5      [        S9[         R
                  " [        S5       Vs/ s H  nSU 3PM
     sn[        S9S9n[        R                  " 5        n[        R                  " [        5         UR                  XRUS	9  S
S
S
5        Sn[        R                  " [         US9   [         R"                  " XRUS	9  S
S
S
5        S
S
S
5        g
s  snf ! , (       d  f       NU= f! , (       d  f       N-= f! , (       d  f       g
= f)zz
bz2 and xz do not write the byte order mark (BOM) for utf-16/32.

https://stackoverflow.com/questions/55171439

GH 35681
rI  rJ  rK  rM  rN  rL  rP  rQ  )rZ   r.  NzHUTF-\d+ stream does not start with BOM|'utf-\d+' codec can't decode byter   )r   r   rU  rV  rW  rX  rY  rZ  r[  rQ   rR   assert_produces_warningUnicodeWarningr   rO   r   UnicodeErrorr   )r   r.  re  r]  r   r   r5  s          r   test_warning_missing_utf_bom,TestMMapWrapper.test_warning_missing_utf_bom  s     \\"))C.((11HHT&\8((eBi8ibHi8G

 __$++N;		$8	L <
5  |37DXN 8  9 <; 87 sB   6D&ED!#E5D2E!
D/	+E2
E 	<E
Er    N)r   r   r   r   r8  rF  r^  rc  rO   r  r  rl  r   r    r   r   r(  r(    s`    1,""	0F [[Z(H)=>[[^eT];O < ?Or   r(  c                     [         R                  " S5      (       d   e[         R                  " S5      (       d   e[         R                  " S5      (       a   e[         R                  " S5      (       a   e[         R                  " S5      (       a   e[         R                  " S5      (       a   e[         R                  " S5      (       a   e[         R                  " S5      (       a   e[         R                  " S	5      (       d   eg )
Nzgcs://pandas/somethingelse.comzgs://pandas/somethingelse.comzhttp://pandas/somethingelse.comzrandom:pandas/somethingelse.comz/local/pathzrelative/local/pathzthis is not fsspec://urlz({'url': 'gs://pandas/somethingelse.com'}z#RFC-3986+compliant.spec://something)r&   is_fsspec_urlr    r   r   test_is_fsspec_urlrp    s    >????=>>>>!!"CDDDD!!"CDDDD!!-0000!!"78888!!"<====!!"LMMMMCDDDDr   r.  r{   formatr   r   c                    [         R                  " S[        R                  " S5      R	                  S5      -  [         R
                  " [        S5      [        S9[         R
                  " [        S5       Vs/ s H  nSU 3PM
     sn[        S9S9n[        R                  " 5        n[        R                  " US	U S
9 n[        USU 35      " U5        S S S 5        [        R                  " USU S
9 nUS:X  a  [         R                  " USS9nO[         R                  " U5      nS S S 5        S S S 5        [        R                   " UW5        g s  snf ! , (       d  f       N= f! , (       d  f       ND= f! , (       d  f       NM= f)NrI  rJ  rK  rM  rN  rL  rP  rQ  rc   )rN   r.  to_rp   r   r   ra  )r   r   rU  rV  rW  rX  rY  rZ  r[  rQ   rR   codecsrS   r  r   r   r   )r.  rq  r]  r^   r   ri   r   s          r   test_codecs_encodingru    s    ||biin$$W--fV4hh%)4)Q"QC)4FCH
 
	d[[C(;vHF8n-f5 <[[C(;v[[15\\&)	 < 
 (B' 5 <;;; 
	sB   6E&E3=EE313E"$E3
E	E3"
E0	,E33
Fc                  v   [         R                  " S[        R                  " S5      R	                  S5      -  [         R
                  " [        S5      [        S9[         R
                  " [        S5       V s/ s H  n SU  3PM
     sn [        S9S9n[        R                  " 5        n[        US	5       n[        R                  " S
5      " U5       nUR                  U5        S S S 5        S S S 5        [        US5       n[        R                  " S
5      " U5       n[         R                   " USS9nS S S 5        S S S 5        S S S 5        [        R"                  " UW5        g s  sn f ! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       N]= f! , (       d  f       Nf= f! , (       d  f       No= f)NrI  rJ  rK  rM  rN  rL  rP  rQ  rL   r{   rw   r   ra  )r   r   rU  rV  rW  rX  rY  rZ  r[  rQ   rR   rS   rt  	getwriterr   	getreaderr   r   )r]  r^   r   ri   encodedr   s         r   test_codecs_get_writer_readerrz    s/   ||biin$$W--fV4hh%)4)Q"QC)4FCH
 
	d$!!'*62g( 3  $!!'*62g[[A6 3 	 
 (B' 5 32  32 	 
	sr   6E!&F*3E7E&"E7*F*>FF1F9F*&
E40E77
F	F*
FF
F'	#F**
F8zio_class,mode,msgtz*a bytes-like object is required, not 'str'r   z%string argument expected, got 'bytes'c                    [         R                  " S[        R                  " S5      R	                  S5      -  [         R
                  " [        S5      [        S9[         R
                  " [        S5       Vs/ s H  nSU 3PM
     sn[        S9S9nU " 5        n[        R                  " [        US	9   UR                  US
U 3S9  S S S 5        S S S 5        g s  snf ! , (       d  f       N= f! , (       d  f       g = f)NrI  rJ  rK  rM  rN  rL  rP  rQ  r   rc   rM   )r   r   rU  rV  rW  rX  rY  rZ  r[  rO   r   	TypeErrorr   )io_classrN   r5  r]  r^   r>  s         r   test_explicit_encodingr  $  s     ||biin$$W--fV4hh%)4)Q"QC)4FCH
 
v]]9C0OOF1TFO4 1 
 5 10 
s*   6CC-2CC-
C*	&C--
C;encoding_errors)Nstrictreplacec                 r   SnSnUS:X  a-  SU-   S-   US-  -   S-   U-   n[        [        R                  SS9nO/S	US-  -   S
-   U-   S-   U-   S-   n[        [        R                  SS9n[        R
                  " 5        n[        U5      nUR                  U5        U S:w  a)  [        R                  " [        US9   U" X`S9  S S S 5        OFU" X`S9nUR                  U S9n	[        R                  " X/0U	S-  /S9n
[        R                  " X5        S S S 5        g ! , (       d  f       N= f! , (       d  f       g = f)Nz'utf-8' codec can't decode byte   r      ,   
r   r   ra  s   {"s   ": {"s   ":"s   "}}rS  )orientr  r   )r  errors)rS  )r   r   r   r   rQ   rR   r   write_bytesrO   r   UnicodeDecodeErrordecoder   r   )r  rq  r5  bad_encodingcontentr   r   filer   decodedr^   s              r   test_encoding_errorsr  9  sM    ,CL%-q0@@4G,V2 Q  	
   	 g6		dDz!i'1=t= >= >B")))AG||Wi$81NH!!"/ 
	
 >= 
	s%   <<D(8D?AD(
D%	!D((
D6c                      [         R                  " 5        n [        R                  " [        SS9   [
        R                  " U SSS9  S S S 5        S S S 5        g ! , (       d  f       N= f! , (       d  f       g = f)Nzunknown error handler namer   rc   badr  )rQ   rR   rO   r   LookupErrorr&   rh   r   s    r   test_bad_encdoing_errorsr  \  sK    		d]];.JKOOD#e4 L 
	KK 
	s"   A)AA)
A&	"A))
A7c                      [         R                  " [        SS9 n [        R                  " S5        U R
                  [
        R                  :X  d   e S S S 5        g ! , (       d  f       g = f)Nz\[Errno 2\]r   doesnt_exist)rO   r   r  r   r   errnoENOENT)r6  s    r   test_errno_attributer  c  sB    	(	@C
N#yyELL((( 
A	@	@s   7A
A)c                      [         R                  " [        SS9   [        5        n [        R
                  " U SSS9  S S S 5        S S S 5        g ! , (       d  f       N= f! , (       d  f       g = f)Nr/  r   rw   T)r;  )rO   r   r   r   r&   rh   )r>  s    r   test_fail_mmapr  j  sD    	+8	<Y&OOFDT:  
=	<Y 
=	<s!   AAA
A	A
A,c                  h    " S S5      n [         R                  " [        SS9   [        5        n[        R
                  " US5       nUR                  R                  U " 5       5        S S S 5        S S S 5        S S S 5        g ! , (       d  f       N= f! , (       d  f       N(= f! , (       d  f       g = f)Nc                       \ rS rSrS rSrg)&test_close_on_error.<locals>.TestErrorir  c                     [        S5      e)Ntest)r  r   s    r   close,test_close_on_error.<locals>.TestError.closes  s    &/!r   r    N)r   r   r   r   r  r   r    r   r   	TestErrorr  r  s    	"r   r  r  r   rw   )rO   r   r  r   r&   rh   created_handlesappend)r  r>  rl   s      r   test_close_on_errorr  p  ss    " " 
wf	-Y&.'''..y{; /  
.	-.. Y 
.	-s:   B#B!B(B0B#
BB
B 	B##
B1r   c                 x    [        5        n[        R                  " X5        S S S 5        g ! , (       d  f       g = fr   )r   r   dump)r   r>  s     r   test_pickle_readerr  |  s!      
fF# 
s   +
9)Hr   rt  r  	functoolsr   r   r   r   r   r0  r(   pathlibr   r   rd   numpyrU  rO   pandas.compatr   pandas.util._test_decoratorsutil_test_decoratorsr  pandasr   pandas._testing_testingrQ   pandas.io.commoncommonr&   r  filterwarnings
pytestmarkr
   r  r  py.pathr!   r?   r  ImportErrorr   r>   dirname__file__r   r#   fixturer&  r(  rp  r  ru  rz  r  r  r  r  r  r  r   r  r  r  r  r  r  r   r!  r  r    r   r   <module>r     sP      
  	      - ) )    [[''C

  <&
	*i  
wwrwwx01P0 P0f
 : :[O [O|E dG_5E6?3( 4 6($(" 	#CD	3?@55 *,GHE6?30 4 I0B5);	< 









$$o  		s   I II