
    4iC                        S SK Jr  S SKrS SK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JrJrJrJrJrJr  S SKJr  S SKJr  \R2                  R5                  S5      r\R8                  S 5       r\R2                  R<                  \R2                  R?                  S/ S	Q5      S
 5       5       r S\!S\!S\"4S jr#\R2                  R?                  SSS/5      S 5       r$S r%\RL                  " S5      S 5       r'g)    )BytesION)pa_version_under17p0)	DataFrameIndex
date_rangeread_csv
read_excel	read_jsonread_parquet)_test_decoratorsz=ignore:Passing a BlockManager to DataFrame:DeprecationWarningc                     ^ [         R                  " S5        [         R                  " S5      n [        5       mS Tl         " U4S jSU R                  5      nU R                  SUSS9  T$ )	z"Emulate GCS using a binary buffer.gcsfsfsspecc                      g)NT r       Z/var/www/html/dynamic-report/venv/lib/python3.13/site-packages/pandas/tests/io/test_gcs.py<lambda>gcs_buffer.<locals>.<lambda>$   s    tr   c                   2   > \ rS rSr\U 4S j5       rS rSrg)%gcs_buffer.<locals>.MockGCSFileSystem&   c                  *   > TR                  S5        T$ )Nr   )seek)argskwargs
gcs_buffers     r   open*gcs_buffer.<locals>.MockGCSFileSystem.open'   s    OOAr   c                     USS./$ )Nfile)nametyper   )selfpathr   s      r   ls(gcs_buffer.<locals>.MockGCSFileSystem.ls,   s    !6233r   r   N)__name__
__module____qualname____firstlineno__staticmethodr   r&   __static_attributes__)r   s   r   MockGCSFileSystemr   &   s    		 
		4r   r.   gsT)clobber)pytestimportorskipr   closeAbstractFileSystemregister_implementation)r   r.   r   s     @r   r   r      sb        *FJ#J4F55 4 ""4):D"Ir   format)csvjsonparquetexcelmarkdownc                 ,  ^ [        SS/S[        R                  /SS/[        SSSS	9S
.5      nSU 3nUS:X  a  UR	                  USS9  [        US/SS9nGOiUS:X  a!  SnUR                  U5        [        US/SS9nGOBUS:X  a  UR                  USS9  [        US/S9nGOUS:X  a  [        R                  " S5        [        R                  " S5      m " U4S jSTR                  5      nUR                  [        R                  R                  [         (       + ["        SS95        UR%                  5        n	U	R'                  TSU5        UR)                  U5        [+        U5      nS S S 5        UR-                  5       n
U
R.                  S!:X  d   eO/US":X  a)  [        R                  " S#5        UR1                  U5        UnUS S  nUS$;   a!  US   R2                  R5                  S%5      US'   [6        R8                  " WU5        g ! , (       d  f       N= f)&z9
Test that many to/read functions support GCS.

GH 33987
             @ts
2018-06-18   ns)periodsunit)intfloatstrdtzgs://test/test.r7   T)indexrJ   r   )parse_dates	index_colr:   zgs://test/test.xlsxr8   iso)date_format)convert_datesr9   pyarrowz
pyarrow.fsc                   ,   > \ rS rSr\U 4S j5       rSrg)(test_to_read_gcs.<locals>.MockFileSystemY   c                    > [        S5        [        R                  " U R                  SS5      5      R	                  5       R                  5       nTR                  U5      $ )NzUsing pyarrow filesystemzgs:// )printpathlibPathreplaceabsoluteas_uriLocalFileSystem)r%   to_localpa_fss     r   from_uri1test_to_read_gcs.<locals>.MockFileSystem.from_uriZ   sH    01"<<Wb(ABKKMTTV,,X66r   r   N)r(   r)   r*   r+   r,   r`   r-   )r_   s   r   MockFileSystemrS   Y   s    7 7r   rb   z&pyarrow 17 broke the mocked filesystem)raisesreason
FileSystemNz2Using pyarrow filesystem
Using pyarrow filesystem
r;   tabulate)r7   r:   r8   us)r   npnanr   to_csvr   to_excelr	   to_jsonr
   r1   r2   re   applymarkermarkxfailr   	TypeErrorcontextsetattr
to_parquetr   
readouterroutto_markdownrJ   as_unittmassert_frame_equal)r   r6   monkeypatchcapsysrequestdf1r%   df2rb   mcapturedexpectedr_   s               @r   test_to_read_gcsr   7   s    q6266]:\14@		
C VH%D

4t
$t$1=	7	$TD6Q?	6	De,TF3	9	I&##L1	7U-- 	7 	KK(( ?  	
   "aIIe\>:NN4 t$C # $$&||UUUU	:	J'1vH))!$**2248#x( #"s   70H
Hresultr   compressionc                    US:X  a  [         R                  " [        U 5      5       n[         R                  " [        U5      5       n[        UR	                  5       UR	                  5       5       H!  u  pVUR
                  UR
                  :X  a  M!   e   SSS5        SSS5        gUS:X  a  [        R                  " [        U 5      S9 n[        R                  " [        U5      S9 n[        UR                  5       UR                  5       5       Ha  u  pUR                  U	5      nUR                  U
5      nUSL USL :X  d   eUc  M8  Uc  M=  UR                  5       UR                  5       :X  a  Ma   e   SSS5        SSS5        gX:X  d   eg! , (       d  f       N= f! , (       d  f       g= f! , (       d  f       NA= f! , (       d  f       g= f)z
For zip compression, only compare the CRC-32 checksum of the file contents
to avoid checking the time-dependent last-modified timestamp which
in some CI builds is off-by-one

See https://en.wikipedia.org/wiki/ZIP_(file_format)#File_headers
zipNtar)fileobj)zipfileZipFiler   r   infolistCRCtarfiler   
getmembersextractfileread)r   r   r   expresres_infoexp_infotar_exptar_restar_res_infotar_exp_infoactual_fileexpected_files                r   assert_equal_zip_safer   y   ss    e OOGFO,OOGH-.#&)#,,.#,,.&I"||x||333 'J / -,
 
	LL1WLL!23w.1""$g&8&8&:/* &11,? ' 3 3L A#t+$1FGGG*}/H&++-1C1C1EEEE/ 4 21 !!!% /. -, 43 21sa    FAFFFG &AF/F/ F/0F/4G 
F	F
F,/
F=	9G  
Gencodingutf-8cp1251c                    [        S[        R                  " S5      R                  S5      -  [	        [        S5      5      [	        [        S5       Vs/ s H  nSU 3PM
     sn5      S9nSU0nUS	:X  a  S
US'   [        5       nUR                  XvUSS9  SnUR                  XUS9  U R                  5       n	UR                  5       n
[        XU5        [        USXS9n[        R                  " X[5        X1   nSUS'   USU 3-  nUR                  XUS9  U R                  5       n	UR                  5       n
[        XU5        [        USSUS9n[        R                  " X[5        gs  snf )z
Compression and encoding should with GCS.

GH 35677 (to_csv, compression), GH 26124 (to_csv, encoding), and
GH 32392 (read_csv, encoding)
g?x   )      ABCDr   zi-)columnsrK   methodgzipr=   mtimewb)r   r   modegs://test/test.csv)r   r   r   )rM   r   r   infer.N)r   rh   arangereshaper   listranger   rj   getvaluer   r   rx   ry   )r   compression_onlyr   compression_to_extensionidfr   bufferpath_gcsr   r   read_dffile_exts                r   $test_to_csv_compression_encoding_gcsr      si    
biin$$W--d6l#uRy1y!r!Xy12
B -.K6! GYFIIftIL $HIIh(IC



C H#)9:A+;G "& (9H#K!H:HIIh(IC



C H#)9:x1'HUG"&C 2s   E#c           	         ^ [         R                  " S5        [         R                  " S5        SSKJn  [	        SS/S[
        R                  /[        SS	S
9S.5      n " U4S jSU5      nU R                  SU5        UR                  SSSSS9  g)zCRegression test for writing to a not-yet-existent GCS Parquet file.fastparquetr   r   )r4   r=   r>   r?   rB   rC   )rE   )rG   rH   rJ   c                   &   > \ rS rSrSU 4S jjrSrg)7test_to_parquet_gcs_new_file.<locals>.MockGCSFileSystem   c                 n   > SU;  a  [         e[        [        R                  R	                  TS5      USS9$ )Nwztest.parquetr   )r   )FileNotFoundErrorr   osr%   join)r$   r%   r   r   tmpdirs       r   r   <test_to_parquet_gcs_new_file.<locals>.MockGCSFileSystem.open   s.    $''V^<dWUUr   r   N)r)r(   r)   r*   r+   r   r-   )r   s   r   r.   r      s    	V 	Vr   r.   zgcsfs.GCSFileSystemr   TN)rK   enginer   )
r1   r2   r   r4   r   rh   ri   r   rr   rs   )rz   r   r4   r}   r.   s    `   r   test_to_parquet_gcs_new_filer      s    
&
 )
q6266]\15	
CV. V -/@ANNDD  r   r   c                      [         R                  " [        5         [        S5        S S S 5        g ! , (       d  f       g = f)Nr   )rx   external_error_raisedImportErrorr   r   r   r   test_gcs_not_present_exceptionr      s%    		!	!+	.%& 
/	.	.s   0
>)(ior   r   rX   r   r   numpyrh   r1   pandas.compat.pyarrowr   pandasr   r   r   r   r	   r
   r   pandas._testing_testingrx   pandas.utilr   tdrn   filterwarnings
pytestmarkfixturer   
single_cpuparametrizer   bytesrI   r   r   r   skip_if_installedr   r   r   r   <module>r      s    	      6    .[[''C

  2 #RS=) T =)@"% "5 "s "B gx%89-' :-'`6 g' 'r   