
    o[we%                     |   d dl Z d dlZd dlZd dlmZmZmZmZm	Z	m
Z
mZmZmZmZ d dlmZ d dlmZ ej        d             Zej        d             Zd Zd Zd Zd	 Zej                            d
ddg          d             Zd Zd Z d Z!d Z"d Z#ej$        d             Z%ej        j&        d             Z'ej        j&        ej                            dg d          d                         Z(ej        j&        ej$        d                         Z) ej*        d          d             Z+d Z,d Z-d Z.d Z/d Z0d  Z1dS )!    N)
	DataFrame
date_rangeread_csv
read_excelread_feather	read_jsonread_parquetread_pickle
read_stata
read_table)_test_decoratorsc            	      h    t          ddgdt          j        gddgt          dd          d	          S )
N      g       @tsz
2018-06-18   )periods)intfloatstrdt)r   npnanr        ;lib/python3.11/site-packages/pandas/tests/io/test_fsspec.pydf1r      sE    q626]:\1555		
 	
  r   c               #      K   t          j        d          } |                     d          }|V  |j                                         d S )Nfsspecmemory)pytestimportorskip
filesystemstoreclear)r    memfss     r   
cleared_fsr(   "   sL       **Fh''E
KKK	Kr   c                 D   t          |                    d                                                    }|                     dd          5 }|                    |           d d d            n# 1 swxY w Y   t          ddg          }t          j        ||           d S )NFindexztest/test.csvwbmemory://test/test.csvr   )parse_dates)r   to_csvencodeopenwriter   tmassert_frame_equal)r(   r   textwdf2s        r   test_read_csvr8   +   s    szzz&&''..00D	$	/	/ 1	              
+$
@
@
@C#s#####s   A..A25A2c                 T   ddl m} t          j        t          d          5  t          d           d d d            n# 1 swxY w Y   d}|                     |dd|d	           t          j        t          |          5  t          d
           d d d            d S # 1 swxY w Y   d S )Nr   )known_implementationsnosuchprotocolmatchznosuchprotocol://test/test.csvztest error message
couldexistzunimportable.CouldExist)classerrzcouldexist://test/test.csv)fsspec.registryr:   r"   raises
ValueErrorr   setitemImportError)monkeypatchr(   r:   err_msgs       r   test_reasonable_errorrH   4   sF   555555	z)9	:	:	: 3 312223 3 3 3 3 3 3 3 3 3 3 3 3 3 3"G+G<<  
 
{'	2	2	2 / /-.../ / / / / / / / / / / / / / / / / /s!   >AA BB!$B!c                     |                     dd           t          ddgd          }t          j        ||           d S )Nr-   Tr*   r   r   r.   	index_col)r/   r   r3   r4   )r(   r   r7   s      r   test_to_csvrL   C   sI    JJ'tJ444
+$1
M
M
MC#s#####r   c                     t          j        d           d}d| }|                    |d           t          |dgd          }t	          j        ||           d S )	Nopenpyxlxlsxzmemory://test/test.Tr*   r   r   rJ   )r"   r#   to_excelr   r3   r4   )r(   r   extpathr7   s        r   test_to_excelrS   K   sj    

###
C&&&DLLTL"""
Tv
;
;
;C#s#####r   binary_modeFTc                    t          j        d          }d}|rdnd}|                    ||                                          5 }|                    |d           |j        rJ 	 d d d            n# 1 swxY w Y   |                    dd          }|                    ||          5 }t          |d	gd
          }|j        rJ 	 d d d            n# 1 swxY w Y   t          j        ||           d S )Nr    r-   r,   r6   )modeTr*   rr   r   rJ   )	r"   r#   r1   r/   closedreplacer   r3   r4   )r(   rT   r   r    rR   rV   fsspec_objectr7   s           r   test_to_csv_fsspec_objectr[   V   s    **F#D'44CD	T	%	%	*	*	,	, (

=
--- '''''( ( ( ( ( ( ( ( ( ( ( ( ( ( ( <<S!!D	T	%	% (
 
 

 !'''''( ( ( ( ( ( ( ( ( ( ( ( ( ( ( #s#####s$   !A44A8;A8,CCCc                     t          ddgi          }|                    dddid           | j        d         dk    sJ t          dddi	           | j        d         dk    sJ d S 
Nar   testmem://test/test.csvtest	csv_writeFstorage_optionsr+   csv_readrc   )r   r/   r`   r   
fsspectestdfs     r   test_csv_optionsri   l   s    	C!:		BII!FK3HPU     ?1,,,,&8LMMMM?1++++++r   c                     t          ddgi          }|                    dddid           | j        d         dk    sJ t          dddi	           | j        d         dk    sJ d S r]   )r   r/   r`   r   rf   s     r   test_read_table_optionsrk   v   s    	C!:		BII!FK3HPU     ?1,,,,(6::NOOOO?1++++++r   c                    t          j        d           d}t          ddgi          }d| }|                    |ddid	           | j        d         dk    sJ t          |dd
i           | j        d         d
k    sJ d S )NrN   rO   r^   r   ztestmem://test/test.r`   r2   Frb   readre   )r"   r#   r   rP   r`   r   )rg   	extensionrh   rR   s       r   test_excel_optionsro      s    

###I	C!:		B-)--DKKvw&7uKEEE?1((((tff%56666?1''''''r   c                 `    t          j        d           |                    dddd           dS )CRegression test for writing to a not-yet-existent GCS Parquet file.fastparquetr-   TN)r+   enginecompression)r"   r#   
to_parquet)r(   r   s     r   test_to_parquet_new_filerv      sB    
&&&NN ]PT      r   c                     t          j        d           t          ddgi          }|                    dddddi           | j        d         dk    sJ t          dddd	i
           | j        d         d	k    sJ dS )rq   pyarrowr^   r   r_   Nr`   parquet_writers   rt   rc   parquet_readrs   rc   r"   r#   r   ru   r`   r	   rf   s     r   test_arrowparquet_optionsr~      s    
	"""	C!:		BMM!1	     ?10000!0   
 ?1//////r   c                     t          j        d           t          ddgi          }|                    dddddi           | j        d         dk    sJ t          dddd	i
           | j        d         d	k    sJ dS )rq   rr   r^   r   r_   Nr`   ry   rz   r{   r|   r}   rf   s     r   test_fastparquet_optionsr      s     &&&	C!:		BMM!1	     ?10000!0   
 ?1//////r   c                    t          j        d           t          j        t	          d| j         d|          t	          |                     t          j        t	          d| j         d|          t	          |                     t          j        t	          d| j         d|          t	          |                     d S )Ns3fss3://	/tips.csvre   z/tips.csv.gzz/tips.csv.bz2r"   r#   r3   assert_equalr   name)s3_public_bucket_with_data	tips_files3sos      r   test_from_s3_csvr      s    
O>.3>>>PT	
 	
 	
 		   OA.3AAASW	
 	
 	
 		   OB.3BBBTX	
 	
 	
 		    r   protocol)s3s3as3nc                     t          j        d           t          j        t	          | d| j         d|          t	          |                     d S )Nr   z://r   re   r   )r   r   r   r   s       r   test_s3_protocolsr      sm     OFF6;FFF 	
 	
 	
 	    r   c                     t          j        d           t          j        d           d| j         d}|                    |ddd |           t	          |d|          }t          j        ||           d S )Nrr   r   r   z/test.parquetF)r+   rs   rt   rc   r|   )r"   r#   r   ru   r	   r3   r   )s3_public_bucketr   r   fnr7   s        r   test_s3_parquetr      s     &&&
	5!&	5	5	5BNN
%4QU     r-
F
F
FCOCr   r    c                      d} t          j        t          |           5  t          d           d d d            d S # 1 swxY w Y   d S )Nz?Missing optional dependency 'fsspec'|fsspec library is requiredr<   r-   )r"   rB   rE   r   )msgs    r   test_not_present_exceptionr      s    
KC	{#	.	.	. + +)***+ + + + + + + + + + + + + + + + + +s   ;??c                     t          j        d           t          ddgi          }|                    dddi           | j        d         dk    sJ t          dddi          }| j        d         dk    sJ t          j        ||           d S )	Nrx   r^   r   testmem://mockfiler`   feather_writere   feather_read)r"   r#   r   
to_featherr`   r   r3   r4   rg   rh   outs      r   test_feather_optionsr      s    
	"""	C!:		BMM&8QMRRR?10000
+fn=U
V
V
VC?1////"c"""""r   c                     t          ddgi          }|                    dddi           | j        d         dk    sJ t          dddi          }| j        d         dk    sJ t	          j        ||           d S )Nr^   r   r   r`   pickle_writere   pickle_read)r   	to_pickler`   r
   r3   r4   r   s      r   test_pickle_optionsr     s    	C!:		BLL%7OLPPP?1////
*V]<S
T
T
TC?1...."c"""""r   c                     t          ddgi          }|                    d|ddi           | j        d         dk    sJ t          d|ddi          }| j        d         dk    sJ t	          j        ||           d S )Nr^   r   r   r`   
json_write)rt   rc   	json_read)r   to_jsonr`   r   r3   r4   )rg   rt   rh   r   s       r   test_json_optionsr     s    	C!:		BJJ.    
 ?1----
-  C
 ?1,,,,"c"""""r   c                     t          ddgi          }|                    dddid           | j        d         dk    sJ t          dddi	          }| j        d         dk    sJ t	          j        ||                    d
                     d S )Nr^   r   r   r`   stata_writeF)rc   write_index
stata_readre   int64)r   to_statar`   r   r3   r4   astyper   s      r   test_stata_optionsr     s    	C!:		BKKv}.ESX     ?1....
)FL;Q
R
R
RC?1----"cjj1122222r   c                     t          j        d           t          ddgi          }|                    dddi           | j        d         dk    sJ |                     d          sJ d S )Ntabulater^   r   r   r`   md_writere   )r"   r#   r   to_markdownr`   catrf   s     r   test_markdown_optionsr   )  sy    

###	C!:		BNN'&*9MNNNN?1++++>>.///////r   c                     t          j        d           t          j        t          d          5  t	          dddi           d d d            n# 1 swxY w Y   t          j        t          d          5  t          dddi           d d d            n# 1 swxY w Y   t          j                    } t          j        t          d          5  t	          | ddi           d d d            n# 1 swxY w Y   t          ddgi          }t          j        t          d          5  |	                    d	ddi           d d d            d S # 1 swxY w Y   d S )
Nrx   rc   r<   	localfiler^   Tre   r   nonfsspecpath)
r"   r#   rB   rC   r   r	   ioBytesIOr   ru   )byrh   s     r   test_non_fsspec_optionsr   1  sc   
	"""	z):	;	;	; ; ;sDk::::; ; ; ; ; ; ; ; ; ; ; ; ; ; ;	z):	;	;	; ? ?[3+>>>>? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 
B	z):	;	;	; 2 2c4[11112 2 2 2 2 2 2 2 2 2 2 2 2 2 2 
C!:		B	z):	;	;	; D D
oT{CCCD D D D D D D D D D D D D D D D D DsG   AAA6BBBC//C36C3'EEE)2r   numpyr   r"   pandasr   r   r   r   r   r   r	   r
   r   r   pandas._testing_testingr3   pandas.utilr   tdfixturer   r(   r8   rH   rL   rS   markparametrizer[   ri   rk   ro   rv   r~   &skip_array_manager_not_yet_implementedr   
single_cpur   r   r   skip_if_installedr   r   r   r   r   r   r   r   r   r   <module>r      s   				                                   . . . . . .      $ $ $/ / /$ $ $$ $ $ 66$ $ 76$*, , ,, , ,( ( (  0 0 0& *0 0 +*0(   . %9%9%9::  ;:  *	 	 +* 	 h+ +  +# # ## # ## # #"3 3 30 0 0D D D D Dr   