
    I>qj*                        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 d dlmZ ej:                  j=                  d      Zej@                  d	        Z!ej@                  d
        Z"ej@                  d        Z#d Z$d Z%d Z&d Z'ej:                  jQ                  dddg      d        Z)d Z*d Z+d Z,d Z-d Z.d Z/ej:                  j`                  ej:                  jQ                  dg d      d               Z1ej:                  j`                  ej:                  jQ                  dg d      d               Z2ej:                  jg                   e       d !      ej:                  j`                  d"               Z4 ejj                  d#      d$        Z6d% Z7d& Z8d' Z9d( Z:d) Z;d* 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_decorators)Versionz=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     Z/opt/rentech/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#   
fsspectestr4       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#   df1rB   6   s7    q6266]:\15		
 r$   c               #      K   t        j                  d      } | j                  d      }| |j                  j	                          y w)Nr   memory)r-   r.   
filesystemr1   r2   )r   memfss     r#   
cleared_fsrG   B   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)rG   rB   textwdf2expecteds         r#   test_read_csvr[   K   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)r0   r]   r-   raises
ValueErrorr   setitemImportError)monkeypatchrG   r]   err_msgs       r#   test_reasonable_errorrj   V   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 )NrL   TrI   r?   r   rM   	index_colrN   )rO   r   rS   rT   rU   rV   )rG   rB   rY   rZ   s       r#   test_to_csvrn   e   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.TrI   r?   r   rl   rN   )r-   r.   to_excelr	   rS   rT   rU   rV   )rG   rB   extpathrY   rZ   s         r#   test_to_excelru   o   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   rL   rK   rX   )modeTrI   rr?   r   rl   rN   )r-   r.   rQ   rO   closedreplacer   rS   rT   rU   rV   )	rG   rv   rB   r   rt   rx   fsspec_objectrY   rZ   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_optionsrJ   csv_readr   )r   rO   r   r   r4   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   rO   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 )Nrp   rq   r   r   ztestmem://test/test.r   rR   Fr   readr   )r-   r.   r   rr   r   r	   )r4   	extensionr   rt   s       r#   test_excel_optionsr      s    

#I	C!:	B!)-DKKvw&7uKE??1(((tff%56??1'''r$   c                 0   t        j                  d      }|j                  t         j                  j	                  t               xr2 t        xr* t         xr! t        |j                        t        d      k  d             |j                  dddd       y)	CRegression test for writing to a not-yet-existent GCS Parquet file.fastparquetz	2025.12.0TODO(infer_string) fastparquetreasonrL   TN)rJ   enginecompression)r-   r.   applymarkermarkxfailr   r   r   r   __version__
to_parquet)rG   rB   requestfps       r#   test_to_parquet_new_filer      s    			]	+B  @@((@ '7;+??3 	 	
 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   namerU   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$   r   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)rJ   r   r   r   r   )r-   r.   r   r   r   rU   r   )s3_bucket_publicr   rB   fnrY   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_   rL   )r-   rd   rg   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
   rU   rV   r4   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   rU   rV   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   rU   rV   )r4   r   r   r   s       r#   test_json_optionsr   1  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   rU   rV   rT   r   s      r#   test_stata_optionsr   B  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   M  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.   rd   re   r   r   ioBytesIOr   r   )byr   s     r#   test_non_fsspec_optionsr   U  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_testingrU   pandas.utilr   tdpandas.util.versionr   r   filterwarnings
pytestmarkfixturer4   rB   rG   r[   rj   rn   ru   parametrizer}   r   r   r   r   r   r   
single_cpur   r   r   r   skip_if_installedr   r   r   r   r   r   r   r   r$   r#   <module>r      s   	   - % 6    . '[[''C

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