
    .i)                        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m	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j6                  j9                  d      Zej<                  d        Zej<                  d	        Z ej<                  d
        Z!d Z"d Z#d Z$d Z%ej6                  jM                  dddg      d        Z'd Z(d Z)d Z*ej6                  jW                   e       xr exr e	 d      d        Z,d Z-d Z.ej6                  j^                  ej6                  jM                  dg d      d               Z0ej6                  j^                  ej6                  jM                  dg d      d                Z1ej6                  jW                   e       d      ej6                  j^                  d!               Z2 ejf                  d"      d#        Z4d$ Z5d% Z6d& Z7d' Z8d( Z9d) Z:y)*    N)using_string_dtype)HAS_PYARROW)pa_version_under14p0)
	DataFrame
date_rangeread_csv
read_excelread_feather	read_jsonread_parquetread_pickle
read_stata
read_table)_test_decoratorsz=ignore:Passing a BlockManager to DataFrame:DeprecationWarningc               #     K   t        j                  d       ddlm}  ddlm} ddlm}  G d d|      } | d|d	
        |        |j                  dd        d |j                  d<   |j                  j                          y w)Nfsspecr   )register_implementation)MemoryFileSystem)	_registryc                   *     e Zd ZdZdgZd fdZ xZS ) fsspectest.<locals>.TestMemoryFStestmemNc                 b    |j                  dd       | j                  d<   t        |   di | y )Ntestr    )popr   super__init__)selfkwargs	__class__s     Y/var/www/app/trading-bot/venv/lib/python3.12/site-packages/pandas/tests/io/test_fsspec.pyr   z)fsspectest.<locals>.TestMemoryFS.__init__*   s+    !::fd3DIIaLG&v&    )returnN)__name__
__module____qualname__protocolr   r   __classcell__)r!   s   @r"   TestMemoryFSr   &   s    v	' 	'r#   r*   r   T)clobber)pytestimportorskipr   r   fsspec.implementations.memoryr   fsspec.registryr   r   r   storeclear)r   r   registryr*   s       r"   
fsspectestr3      sp     
!.>5'' ' I|TB
.LLD!Las   BBc            	      `    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   r   r#   r"   df1rA   5   s7    q6266]:\15		
 r#   c               #      K   t        j                  d      } | j                  d      }| |j                  j	                          y w)Nr   memory)r,   r-   
filesystemr0   r1   )r   memfss     r"   
cleared_fsrF   A   s;       *Fh'E
K	KKs   AAc                 \   t        |j                  d            j                         }| j                  dd      5 }|j	                  |       d d d        t        ddg      }|j                         }|d   j                  d      |d<   t        j                  ||       y # 1 sw Y   UxY w)	NFindexztest/test.csvwbmemory://test/test.csvr>   )parse_datesM8[us])
r=   to_csvencodeopenwriter   copyastypetmassert_frame_equal)rF   rA   textwdf2expecteds         r"   test_read_csvrZ   J   s    szzz&'..0D	$	/ 1	
+$
@CxxzHd^**84HTN#x( s   B""B+c                 ,   ddl m} t        j                  t        d      5  t        d       d d d        d}| j                  |dd|d	       t        j                  t        |      5  t        d
       d d d        y # 1 sw Y   QxY w# 1 sw Y   y xY w)Nr   )known_implementationsnosuchprotocolmatchznosuchprotocol://test/test.csvztest error message
couldexistzunimportable.CouldExist)classerrzcouldexist://test/test.csv)r/   r\   r,   raises
ValueErrorr   setitemImportError)monkeypatchrF   r\   err_msgs       r"   test_reasonable_errorri   U   s    5	z)9	: 3123"G+G<
 
{'	2 /-./ /3 3/ /s   A>)B
>B
Bc                     |j                  dd       t        ddgd      }|j                         }|d   j                  d      |d<   t	        j
                  ||       y )NrK   TrH   r>   r   rL   	index_colrM   )rN   r   rR   rS   rT   rU   )rF   rA   rX   rY   s       r"   test_to_csvrm   d   sW    JJ'tJ4
+$1
MCxxzHd^**84HTN#x(r#   c                     t        j                  d       d}d| }|j                  |d       t        |dgd      }|j	                         }|d   j                  d	      |d<   t        j                  ||       y )
Nopenpyxlxlsxzmemory://test/test.TrH   r>   r   rk   rM   )r,   r-   to_excelr	   rR   rS   rT   rU   )rF   rA   extpathrX   rY   s         r"   test_to_excelrt   n   st    

#
C &DLLTL"
Tv
;CxxzHd^**84HTN#x(r#   binary_modeFTc                    t        j                  d      }d}|rdnd}|j                  ||      j                         5 }|j                  |d       |j                  rJ 	 d d d        |j                  dd      }|j                  ||      5 }t        |d	gd
      }|j                  rJ 	 d d d        |j                         }|d	   j                  d      |d	<   t        j                  |       y # 1 sw Y   xY w# 1 sw Y   SxY w)Nr   rK   rJ   rW   )modeTrH   rr>   r   rk   rM   )r,   r-   rP   rN   closedreplacer   rR   rS   rT   rU   )	rF   ru   rA   r   rs   rw   fsspec_objectrX   rY   s	            r"   test_to_csv_fsspec_objectr|   {   s	     *F#D4CD	T	%	*	*	, (

=
- '''''( <<S!D	T	% (

 !'''''( xxzHd^**84HTN#x(( (
( (s   "C4D 4C= D	c                     t        ddgi      }|j                  dddid       | j                  d   dk(  sJ t        dddi	       | j                  d   dk(  sJ y 
Nar   testmem://test/test.csvr   	csv_writeFstorage_optionsrI   csv_readr   )r   rN   r   r   r3   dfs     r"   test_csv_optionsr      sp    	C!:	BII!FK3HPU   ??1,,,&8LM??1+++r#   c                     t        ddgi      }|j                  dddid       | j                  d   dk(  sJ t        dddi	       | j                  d   dk(  sJ y r~   )r   rN   r   r   r   s     r"   test_read_table_optionsr      sp    	C!:	BII!FK3HPU   ??1,,,(6::NO??1+++r#   c                     t        j                  d       d}t        ddgi      }d| }|j                  |ddid	       | j                  d   dk(  sJ t        |dd
i       | j                  d   d
k(  sJ y )Nro   rp   r   r   ztestmem://test/test.r   rQ   Fr   readr   )r,   r-   r   rq   r   r	   )r3   	extensionr   rs   s       r"   test_excel_optionsr      s    

#I	C!:	B!)-DKKvw&7uKE??1(((tff%56??1'''r#   zTODO(infer_string) fastparquet)reasonc                 X    t        j                  d       |j                  dddd       y)CRegression test for writing to a not-yet-existent GCS Parquet file.fastparquetrK   TN)rI   enginecompression)r,   r-   
to_parquet)rF   rA   s     r"   test_to_parquet_new_filer      s-     &NN ]PT  r#   c                     t        j                  d       t        ddgi      }|j                  dddddi       | j                  d   dk(  sJ t        dddd	i
       | j                  d   d	k(  sJ y)r   pyarrowr   r   r   Nr   parquet_writer   r   r   parquet_readr   r   r,   r-   r   r   r   r   r   s     r"   test_arrowparquet_optionsr      s    
	"	C!:	BMM!1	   ??1000!0
 ??1///r#   c                     t        j                  d       t        ddgi      }|j                  dddddi       | j                  d   dk(  sJ t        dddd	i
       | j                  d   d	k(  sJ y)r   r   r   r   r   Nr   r   r   r   r   r   r   s     r"   test_fastparquet_optionsr      s    
&	C!:	BMM!1	   ??1000!0
 ??1///r#   compression_suffix) z.gzz.bz2c                     t        j                  d       t        d| j                   d| |      }t        |      }t	        j
                  ||       y )Ns3fss3://	/tips.csvr   r,   r-   r   namerT   assert_equal)s3_bucket_public_with_datas3so	tips_filer   
df_from_s3df_from_locals         r"   test_from_s3_csvr      sS     
*//0	:L9MNJ Y'MOOJ.r#   r(   )s3s3as3nc                     t        j                  d       t        | d| j                   d|      }t        |      }t	        j
                  ||       y )Nr   z://r   r   r   )r   r   r   r(   r   r   s         r"   test_s3_protocolsr      sQ     *C2778	BJ Y'MOOJ.r#   c                     t        j                  d       t        j                  d       d| j                   d}|j                  |ddd |       t	        |d|      }t        j                  ||       y )Nr   r   r   z/test.parquetF)rI   r   r   r   r   )r,   r-   r   r   r   rT   r   )s3_bucket_publicr   rA   fnrX   s        r"   test_s3_parquetr     sq     &
!&&'}	5BNN
%4QU   r-
FCOOCr#   r   c                  ~    d} t        j                  t        |       5  t        d       d d d        y # 1 sw Y   y xY w)NzH`Import fsspec` failed.  Use pip or conda to install the fsspec package.r^   rK   )r,   rc   rf   r   )msgs    r"   test_not_present_exceptionr     s3    
TC	{#	. +)*+ + +s   3<c                    t        j                  d       t        ddgi      }|j                  dddi       | j                  d   dk(  sJ t        dddi      }| j                  d   dk(  sJ t        j                  ||       y )	Nr   r   r   testmem://mockfiler   feather_writer   feather_read)r,   r-   r   
to_featherr   r
   rT   rU   r3   r   outs      r"   test_feather_optionsr     s    
	"	C!:	BMM&8QMR??1000
+fn=U
VC??1///"c"r#   c                     t        ddgi      }|j                  dddi       | j                  d   dk(  sJ t        dddi      }| j                  d   dk(  sJ t	        j
                  ||       y )Nr   r   r   r   pickle_writer   pickle_read)r   	to_pickler   r   rT   rU   r   s      r"   test_pickle_optionsr   !  sx    	C!:	BLL%7OLP??1///
*V]<S
TC??1..."c"r#   c                     t        ddgi      }|j                  d|ddi       | j                  d   dk(  sJ t        d|ddi      }| j                  d   dk(  sJ t	        j
                  ||       y )Nr   r   r   r   
json_write)r   r   	json_read)r   to_jsonr   r   rT   rU   )r3   r   r   r   s       r"   test_json_optionsr   *  s    	C!:	BJJ.  
 ??1---
-C
 ??1,,,"c"r#   c                    t        ddgi      }|j                  dddid       | j                  d   dk(  sJ t        dddi	      }| j                  d   dk(  sJ t	        j
                  ||j                  d
             y )Nr   r   r   r   stata_writeF)r   write_index
stata_readr   int64)r   to_statar   r   rT   rU   rS   r   s      r"   test_stata_optionsr   ;  s    	C!:	BKKv}.ESX   ??1...
)FL;Q
RC??1---"cjj12r#   c                     t        j                  d       t        ddgi      }|j                  dddi       | j                  d   dk(  sJ | j                  d      sJ y )Ntabulater   r   r   r   md_writer   )r,   r-   r   to_markdownr   catr   s     r"   test_markdown_optionsr   F  s`    

#	C!:	BNN'&*9MNN??1+++>>.///r#   c                  v   t        j                  d       t        j                  t        d      5  t	        dddi       d d d        t        j                  t        d      5  t        dddi       d d d        t        j                         } t        j                  t        d      5  t	        | ddi       d d d        t        ddgi      }t        j                  t        d      5  |j                  d	ddi       d d d        y # 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   ixY w# 1 sw Y   y xY w)
Nr   r   r^   	localfiler   Tr   r   nonfsspecpath)
r,   r-   rc   rd   r   r   ioBytesIOr   r   )byr   s     r"   test_non_fsspec_optionsr   N  s   
	"	z):	; ;sDk:;	z):	; ?[3+>? 
B	z):	; 2c4[12 
C!:	B	z):	; D
oT{CD D; ;? ?
2 2D Ds/   D$D+D#,D/DD #D,/D8);r   numpyr?   r,   pandas._configr   pandas.compatr   pandas.compat.pyarrowr   pandasr   r   r   r	   r
   r   r   r   r   r   pandas._testing_testingrT   pandas.utilr   tdmarkfilterwarnings
pytestmarkfixturer3   rA   rF   rZ   ri   rm   rt   parametrizer|   r   r   r   xfailr   r   r   
single_cpur   r   r   skip_if_installedr   r   r   r   r   r   r   r   r#   r"   <module>r      s   	   - % 6    .[[''C

  *    )/)
) 6) 7).,,( E[E1E-E+  	0&0( -/BC/ D / %9:/ ; / %'0PQ	  R	 h+  +###"30Dr#   