
    m*i)]                     j   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r  SSKJs  Jr  SSKrSSKJr  SSKJs  J r!  \RD                  RG                  S5      r$ " S	 S
5      r%\&\%\/r' SSK(J)r*  \'RW                  \*5        \
RZ                  R]                  \
RZ                  R_                  \05      5      r1 " S S5      r2\Rf                  S 5       r4 " S S5      r5S r6\RD                  Ro                  SSS/5      S 5       r8S r9\RD                  Ro                  S\SS4\SS4/5      S 5       r:\RD                  Ro                  S/ SQ5      \RD                  Ro                  SSS/5      S 5       5       r;S  r<S! r=S" r>S# r?\RD                  Ro                  S$\R                  \R                  \R                  \R                  \R                  \R                  \R                  \R                  \R                  /	5      S% 5       rIg! \, a     GNf = f)&z0
Tests for the pandas.io.common functionalities
    N)partial)BytesIOStringIOUnsupportedOperation)Path)is_platform_windows)pa_version_under19p0z=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     [/var/www/html/land-doc-ocr/venv/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\Rf                  " \RB                  SS*\R                  Ri                  S+S,S-9S.9\RD                  SS/4\RF                  SS04\RH                  SS14\RJ                  SS24/
5      S3 5       r5\R                  R                  S4S50 S4S6S7S80S84S90 S4S:0 S4S;0 S4S<0 S4S=0 S4S>S?\Rl                  " S@5      0S4/5      SA 5       r7SB r8SCr9gD)E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_userE   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_pathM   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_pathlibT   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 )Nr6   r7   )r)   r   r9   abspath	LocalPathr'   r8   )r   r   abs_pathlpaths       r   test_stringify_path_localpath6TestCommonIOCapabilities.test_stringify_path_localpathZ   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'   r8   )r   presults      r   test_stringify_path_fspath3TestCommonIOCapabilities.test_stringify_path_fspatha   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'   r8   )r   rL   r   
fsspec_objs       r   !test_stringify_file_and_path_like:TestCommonIOCapabilities.test_stringify_file_and_path_likef   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 )NrF   infer)compression)r'   infer_compression)r   compression_formatrX   	extensionexpectedr   r[   s          r    test_infer_compression_from_path9TestCommonIOCapabilities.test_infer_compression_from_pathm   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   rX   tmpr-   handless        r   test_get_handle_with_path2TestCommonIOCapabilities.test_get_handle_with_patht   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'   ri   rj   closed)r   input_bufferrm   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'   ri   r   rj   readlenencode)r   datarm   rH   	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[        (       a  UR                  S
5      n[        R                  " Xc5        UR                  (       a   e S S S 5        g ! , (       d  f       g = f)Nzpyarrow.csvrw   )1   ©Look)2   ®za snake)3r   u   🐍abcrx   Fry   object)rP   rQ   pd	DataFramer   r'   ri   read_csvrj   	to_pandasr	   astyperR   assert_frame_equalrr   )r   pa_csvr   r_   srm   dfs          r   test_get_handle_pyarrow_compat7TestCommonIOCapabilities.test_get_handle_pyarrow_compat   s    $$]3 <<%,BI\]
 TN__Qe40::<B###??84!!"/xx<x 544s   A/C
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concatrR   r   nextiloc)r   readerrH   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)rP   rQ   r)   r   r9   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   r{   r   r   missing_folderr   z@Cannot save file into a non-existent directory: .*missing_folderr   )	rP   rQ   r   r   r)   r   r9   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      $ )Nr6   )r)   r   r9   )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   )rP   rQ   r)   r   r9   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.h5zTODO(infer_string)F)reasonstrict)marks)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)rP   rQ   r   endswithrR   assert_categorical_equalr   )r   r   r   r   datapathmypathrH   r_   s           r   test_read_fspath_all-TestCommonIOCapabilities.test_read_fspath_all'  sc    D 	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   rx   r   )rP   rQ   rR   rS   r   r   r   getattrrT   
read_excelr   r}   )r   writer_namewriter_kwargsr   p1p2r   r  r  r   writerf_strf_pathrH   r_   s                  r   test_write_fspath_all.TestCommonIOCapabilities.test_write_fspath_allV  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  r7   )key)
rP   rQ   r   r   rR   rS   r   to_hdfread_hdfr   )	r   r   r  r  r  r  r   rH   r_   s	            r   test_write_fspath_hdf5/TestCommonIOCapabilities.test_write_fspath_hdf5}  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):r   r   r   r   r   r/   r2   r<   td
skip_if_norC   rI   rV   rP   markparametrize
path_typesr`   strr   r   rn   rt   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   paramxfailr   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
 LLDkk''/CE'R ]]D"LM[[$ GH\\4!LME1	
 B4C B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errorrP   r   r'   _maybe_memory_maprT   
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|   r5  rq   T)rz   
memory_mapz^$r   )rT   	readlinesr'   ri   rj   
isinstancebufferr8  r   striprP   r   StopIteration)r   r.  r?  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                 2   [         R                  " 5        n[        R                  " S[        R
                  " S5      R                  S5      -  [        R                  " [        S5      5      [        R                  " [        S5       Vs/ s H  nSU 3PM
     sn5      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   ABCDrT  i-columnsindexzUnknown enginer   pyt)r   )rR   rS   r   r   nparangereshapeIndexlistranger   rP   r   r;  r   r   r   ir   s       r   test_unknown_engine#TestMMapWrapper.test_unknown_engine  s    __$biin,,W55f.hh%)<)Q"QC)<=B
 IIdOz1ABD/ C   = CB s6   A3D	C23DC7!D2D7
D	D
Dc                    [         R                  " 5        n[        R                  " S[        R
                  " S5      R                  S5      -  [        R                  " [        S5      5      [        R                  " [        S5       Vs/ s H  nSU 3PM
     sn5      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
rQ  rR  rS  rU  rT  rV  rW  zw+brN   r   	index_colN)rR   rS   r   r   r[  r\  r]  r^  r_  r`  r   r   r   ra  s       r   test_binary_mode TestMMapWrapper.test_binary_mode  s     __$biin,,W55f.hh%)<)Q"QC)<=B
 IIdI'!!"bkk$!&DE   =	 s   A3C)	C$AC)$C))
C7r6  zutf-16zutf-32compression_bz2xzc                    [         R                  " S[        R                  " S5      R	                  S5      -  [         R
                  " [        S5      5      [         R
                  " [        S5       Vs/ s H  nSU 3PM
     sn5      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
rQ  rR  rS  rU  rT  rV  rW  )r[   r6  NzHUTF-\d+ stream does not start with BOM|'utf-\d+' codec can't decode byter   )r   r   r[  r\  r]  r^  r_  r`  rR   rS   assert_produces_warningUnicodeWarningr   rP   r   UnicodeErrorr   )r   r6  rj  rb  r   r   r=  s          r   test_warning_missing_utf_bom,TestMMapWrapper.test_warning_missing_utf_bom  s     \\"))C.((11HHT&\*((eBi8ibHi89

 __$++N;		$8	L <
5  |37DXN 8  9 <; 87 sB   3D D=;D#D=/D,D=
D)	%D=,
D:	6D==
Er!   N)r   r   r   r   r@  rN  rc  rh  rP   r  r  rq  r    r!   r   r   r0  r0    s`    1,""	0F [[Z(H)=>[[^eT];O < ?Or   r0  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_urlru    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   formatr   r   c                    [         R                  " S[        R                  " S5      R	                  S5      -  [         R
                  " [        S5      5      [         R
                  " [        S5       Vs/ s H  nSU 3PM
     sn5      S9n[        R                  " 5        n[        USS	S
9 n[        USU  35      " U5        S S S 5        [        US	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       Nx= f! , (       d  f       ND= f! , (       d  f       NM= f)NrQ  rR  rS  rU  rT  rV  rW  rd   r|   )rO   r6  to_r5  r   r   rf  )r   r   r[  r\  r]  r^  r_  r`  rR   rS   rT   r	  r   r&  r   )rv  rb  r_   r   rj   r   s         r   test_codecs_encodingry    s    ||biin$$W--f&hh%)4)Q"QC)45H
 
	d$S73vHF8n-f5 4$)V[[15\\&)	 * 
 (B' 5 43)) 
	sB   3D/ E,D4E3EE4
E	>E
E	E
E$c                  j   [         R                  " S[        R                  " S5      R	                  S5      -  [         R
                  " [        S5      5      [         R
                  " [        S5       V s/ s H  n SU  3PM
     sn 5      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)NrQ  rR  rS  rU  rT  rV  rW  rM   r|   rx   r   rf  )r   r   r[  r\  r]  r^  r_  r`  rR   rS   rT   codecs	getwriterr   	getreaderr   r   )rb  r_   r   rj   encodedr   s         r   test_codecs_get_writer_readerr    s+   ||biin$$W--f&hh%)4)Q"QC)45H
 
	d$!!'*62g( 3  $!!'*62g[[A6 3 	 
 (B' 5 32  32 	 
	sr   3E F$-E1
E E1$F$8FF+F3F$ 
E.*E11
E?	;F$
FF
F!	F$$
F2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      5      [         R
                  " [        S5       Vs/ s H  nSU 3PM
     sn5      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)NrQ  rR  rS  rU  rT  rV  rW  r   rd   rN   )r   r   r[  r\  r]  r^  r_  r`  rP   r   	TypeErrorr   )io_classrO   r=  rb  r_   rF  s         r   test_explicit_encodingr  (  s     ||biin$$W--f&hh%)4)Q"QC)45H
 
v]]9C0OOF1TFO4 1 
 5 10 
s*   3CC',C C'
C$	 C''
C5encoding_errors)Nr   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   rf  s   {"s   ": {"s   ":"s   "}}rY  )orientr  r   )r  errors)rY  )r   r   r   r&  rR   rS   r   write_bytesrP   r   UnicodeDecodeErrordecoder   r   )r  rv  r=  bad_encodingcontentr   r   filer   decodedr_   s              r   test_encoding_errorsr  =  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   rd   badr  )rR   rS   rP   r   LookupErrorr'   ri   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)rP   r   r   r   r   errnoENOENT)r>  s    r   test_errno_attributer  g  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)Nr7  r   rx   T)rC  )rP   r   r   r   r'   ri   )rF  s    r   test_fail_mmapr  n  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>.TestErroriv  c                     [        S5      e)Ntest)r#  r   s    r   close,test_close_on_error.<locals>.TestError.closew  s    &/!r   r!   N)r   r   r   r   r  r    r!   r   r   	TestErrorr  v  s    	"r   r  r  r   rx   )rP   r   r#  r   r'   ri   created_handlesappend)r  rF  rm   s      r   test_close_on_errorr  t  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   rF  s     r   test_pickle_readerr    s!      
fF# 
s   +
9)Jr   r{  r  	functoolsr   r   r   r   r   r8  r)   pathlibr   r   re   numpyr[  rP   pandas.compatr   pandas.compat.pyarrowr	   pandas.util._test_decoratorsutil_test_decoratorsr  pandasr   pandas._testing_testingrR   pandas.io.commoncommonr'   r  filterwarnings
pytestmarkr   r  r  py.pathr"   r@   r  ImportErrorr   r?   dirname__file__r   r$   fixturer.  r0  ru  r  ry  r  r  r  r  r  r  r  r   r!  r
  r"  r  r$  r%  r&  r'  r  r!   r   r   <module>r     s6      
  	      - 6 ) )    [[''C

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