
    Mh0                        S 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	s  J
r  SSKJr  SSKJr  SSKJr  SSKJr  \R*                  R-                  S5      r\R*                  R0                  \R*                  R2                  \R*                  R5                  SS	S
/5      \R*                  R5                  SSS/5      S 5       5       5       5       r\R*                  R0                  \R*                  R2                  S 5       5       r\R:                  S 5       r\R*                  R2                  \R*                  R?                  S5      \R@                  " 5        " S S5      5       5       5       r!g)zl
Tests parsers ability to read and parse non-local files
and hence require a network connection to be read.
    )BytesION)	DataFrame)read_featherread_csvz=ignore:Passing a BlockManager to DataFrame:DeprecationWarningmodeexplicitinferenginepythoncc           	      X   US:X  a  [         R                  " S5        Xe   n[        U" SSSSU-   5      S5       nU R                  UR	                  5       S9  S S S 5        U R
                  S	-   U-   n	US
:w  a  Un[        U	SXTS9n
[        R                  " X5        g ! , (       d  f       NJ= f)Ntarz5TODO: Add tar salaraies.csv to pandas/io/parsers/dataioparserdatazsalaries.csvrbcontentz/salaries.csvr	   	)sepcompressionr   )	pytestskipopenserve_contentreadurlr   tmassert_frame_equal)
httpserverdatapathsalaries_tabler   r   compression_onlycompression_to_extension	extensionfr   	url_tables              U/var/www/html/env/lib/python3.13/site-packages/pandas/tests/io/parser/test_network.pytest_compressed_urlsr*      s     5 KL(:I	htXv~	/IJD	QUV   2 
R ..?
*Y
6Cz$4DTI)4 
R	Qs   B
B)c                     [        U" SSSS5      S5       nU R                  UR                  5       S9  [        U R                  SSS	9nSSS5        WR
                  S
   S:X  d   eg! , (       d  f       N$= f)zB
read_csv should honor the requested encoding for URLs.

GH 10424
r   r   r   zunicode_series.csvr   r   zlatin-1N)encodingheader)      u$   Á köldum klaka (Cold Fever) (1994))r   r   r   r   r   loc)r!   r"   r'   dfs       r)   test_url_encoding_csvr2   8   sn     
htXv/CDd	Kq   2jnnyF 
L 66%=BBBB 
L	Ks   3A''
A5c                 *    [        U " SSSS5      5      $ )z DataFrame with the tips dataset.r   r   csvtips.csvr   )r"   s    r)   tips_dfr6   F   s     HT65*=>>    s3_resourcec                   X   \ rS rSrS rS rS rS rS rS r	S r
S	 rS
 rS rS rS r\R"                  R%                  SSS9S 5       r\R"                  R%                  SSS9S 5       r\R"                  R*                  S 5       r\R"                  R*                  S 5       rS rS rSrg)TestS3L   c                     [         R                  " S5        S Ha  u  pE[        SUR                   S3U-   UUS9n[	        U[
        5      (       d   eUR                  (       a   e[        R                  " Xb5        Mc     g )Ns3fs) N).gzgzip).bz2bz2s3://	/tips.csv)r   storage_options	r   importorskipr   name
isinstancer   emptyr   r    selfs3_public_bucket_with_datar6   s3soextcompr1   s          r)   test_parse_public_s3_bucket"TestS3.test_parse_public_s3_bucketP   sw     	F#GIC2778	BSH  $B
 b),,,,xx<!!". Hr7   c                     [         R                  " S5        [        SUR                   S3US9n[	        U[
        5      (       d   eUR                  (       a   e[        R                  " XB5        g )Nr=   rD   rE   rF   rG   )rM   s3_private_bucket_with_datar6   rO   r1   s        r)   test_parse_private_s3_bucket#TestS3.test_parse_private_s3_bucket^   s`    F#/445Y?QU
 "i((((88|
b*r7   c                     [        SUR                   S3SUS9n[        U[        5      (       d   eUR                  (       a   e[
        R                  " UR                  S S U5        g )Nzs3n://rE   
   nrowsrF   r   rI   rJ   r   rK   r   r    ilocrM   rN   r6   rO   r1   s        r)   test_parse_public_s3n_bucket#TestS3.test_parse_public_s3n_bucketh   b    /445Y? 

 "i((((88|
gll3B/4r7   c                     [        SUR                   S3SUS9n[        U[        5      (       d   eUR                  (       a   e[
        R                  " UR                  S S U5        g )Nzs3a://rE   rZ   r[   r]   r_   s        r)   test_parse_public_s3a_bucket#TestS3.test_parse_public_s3a_buckets   rb   r7   c                     S Hp  u  pE[        SUR                   S3U-   SUUS9n[        U[        5      (       d   eUR                  (       a   e[
        R                  " UR                  S S U5        Mr     g )Nr>   rD   rE   rZ   )r\   r   rF   r]   rL   s          r)   !test_parse_public_s3_bucket_nrows(TestS3.test_parse_public_s3_bucket_nrows~   sz     HIC2778	BSH  $	B b),,,,xx<!!',,s"3R8 Hr7   c                    SnS H  u  pV[        SUR                   S3U-   UUUS9 nUR                  U:X  d   eS Hi  nUR                  5       n	[	        U	[
        5      (       d   eU	R                  (       a   eUR                  XH-  XHS-   -   n
[        R                  " X5        Mk     S S S 5        M     g ! , (       d  f       M  = f)N   r>   rD   rE   )	chunksizer   rF   r   r/      r/   
r   rI   rk   	get_chunkrJ   r   rK   r^   r   r    rM   rN   r6   rO   rk   rP   rQ   	df_readeri_chunkr1   true_dfs              r)   #test_parse_public_s3_bucket_chunked*TestS3.test_parse_public_s3_bucket_chunked   s     	GIC2778	BSH#  $	
  **i777(G #,,.B%b)4444!xx'<%ll!+iQ;.GG ))'6  )  H s   BB66
C	c           	         SnS H  u  pV[        SUR                   S3U-   UUSUS9 nUR                  U:X  d   eS Hi  nUR                  5       n	[	        U	[
        5      (       d   eU	R                  (       a   eUR                  XH-  XHS-   -   n
[        R                  " X5        Mk     S S S 5        M     g ! , (       d  f       M  = f)	Nrj   r>   rD   rE   r   )rk   r   r   rF   rl   r/   rn   rp   s              r)   *test_parse_public_s3_bucket_chunked_python1TestS3.test_parse_public_s3_bucket_chunked_python   s     	GIC2778	BSH#  $  **i777(G",,.B%b)4444!xx'<%ll!+iQ;.GG ))'6  )  H s   BB77
C	c                     S Hb  u  pE[        SUR                   S3U-   SUUS9n[        U[        5      (       d   eUR                  (       a   e[
        R                  " Xb5        Md     g )Nr>   rD   rE   r   r   r   rF   r   rI   rJ   r   rK   r   r    rL   s          r)   "test_parse_public_s3_bucket_python)TestS3.test_parse_public_s3_bucket_python   sm     HIC2778	BSH  $	B b),,,,xx<!!". Hr7   c                     S H`  n[        SUR                   S3U-   SSUS9n[        U[        5      (       d   eUR                  (       a   e[
        R                  " XR5        Mb     g )N)r?   r@   rB   rD   rE   r   r
   rz   r{   )rM   rN   r6   rO   rP   r1   s         r)   test_infer_s3_compression TestS3.test_infer_s3_compression   sg    &C2778	BSH# $	B b),,,,xx<!!". 'r7   c           	          S Hq  u  pE[        SUR                   S3U-   SSUUS9n[        U[        5      (       d   eUR                  (       a   e[
        R                  " UR                  S S U5        Ms     g )Nr>   rD   rE   r   rZ   )r   r\   r   rF   r]   rL   s          r)   (test_parse_public_s3_bucket_nrows_python/TestS3.test_parse_public_s3_bucket_nrows_python   s}     HIC2778	BSH  $B b),,,,xx<!!',,s"3R8 Hr7   c                     Sn[         R                  " [        US9   [        SUS9  S S S 5        g ! , (       d  f       g = f)N#The specified bucket does not existmatchzs3://nyqpug/asdf.csvrU   )r   raisesOSErrorr   )rM   rO   msgs      r)   test_read_s3_failsTestS3.test_read_s3_fails   s,    3]]7#.+TB /..s   0
>c                     Sn[         R                  " [        US9   [        SUR                   S35        S S S 5        g ! , (       d  f       g = f)Nr   r   rD   z	/file.csv)r   r   r   r   rI   )rM   s3_private_bucketrO   r   s       r)   test_read_s3_fails_private!TestS3.test_read_s3_fails_private   s<    3 ]]7#.u.334I>? /..s	   ?
AzGH#39155 s3fs upgradeF)reasonstrictc                     SS K n[        UR                  R                  4n[        R
                  " USS9   UR                  SUS9  S S S 5        g ! , (       d  f       g = f)Nr   r   r   z/s3://an_s3_bucket_data_doesnt_exit/not_real.csvrU   )botocoreFileNotFoundError
exceptionsClientErrorr   r   to_csvrM   r6   rO   r   errors        r)   test_write_s3_csv_failsTestS3.test_write_s3_csv_fails   sR     	
 #H$7$7$C$CD]]5(MNNNASW   ONNs   A
Ac                     [         R                  " S5        SS Kn[        UR                  R
                  4n[         R                  " USS9   UR                  SUS9  S S S 5        g ! , (       d  f       g = f)Npyarrowr   r   r   z3s3://an_s3_bucket_data_doesnt_exit/not_real.parquetrU   )r   rH   r   r   r   r   r   
to_parquetr   s        r)   test_write_s3_parquet_fails"TestS3.test_write_s3_parquet_fails  sb     	I&
 #H$7$7$C$CD]]5(MNE $   ONNs   A&&
A4c                 X   UR                  S5      n[        UR                  5       S   R                  5       5       n[	        USS9nS S S 5        [        W[        5      (       d   eUR                  (       a   e[	        U5      n[        R                  " XV5        g ! , (       d  f       NZ= f)Nr5   Bodyutf8)r,   )
Objectr   getr   r   rJ   r   rK   r   r    )rM   rN   	tips_file	s3_objectbufferresultexpecteds          r)   $test_read_csv_handles_boto_s3_object+TestS3.test_read_csv_handles_boto_s3_object  s     /55jA	Y]]_V,1134fv6F 5&),,,,<<I&
f/ 54s   B
B)c                 x   [        [        R                  " S5      [        S5      S9n[	        UR                  5       R                  S5      5       nUR                  SUS9  UR                   S3n[        R                  " SU S	35      nUR                  [        R                  S
S9   [        SU 3SUS9  UR                   HB  n[        R                   " Xx5      =n	(       d  M"  [#        U	R%                  S5      5      S:  a  MB   e   S S S 5        S S S 5        g ! , (       d  f       N= f! , (       d  f       g = f)N)i    abcd)columnszutf-8zlarge-file.csv)Keyr   z/large-file.csvz^Fetch: z, 0-(?P<stop>\d+)$r=   )loggerrD   rj   r[   stopi z )r   npzeroslistr   r   encode
put_objectrI   recompileat_levelloggingDEBUGr   messagesr   intgroup)
rM   s3_public_bucketcaplogrO   r1   bufurimatch_relogr   s
             r)   test_read_csv_chunked_download%TestS3.test_read_csv_chunked_download#  s    rxx,d6lCRYY[''01S'',<3'G%**+?;CzzXcU2D"EFHv>C5M$(
 "??C " 77u7"5;;v#67'AAA + ?	 21 ?>	 21s1   AD+(9D%DD	D+
D(	$D++
D9c                 `    [        SUR                   S3US9n[        R                  " X$5        g )NrD   z/tips#1.csvrU   )r   rI   r   r    )rM   rN   r6   rO   r   s        r)   test_read_s3_with_hash_in_key$TestS3.test_read_s3_with_hash_in_key6  s3    .334K@RV
 	g.r7   c                     [         R                  " S5        [        U5      n[        SUR                   S3US9n[        R
                  " XE5        g )Nr   rD   z/simple_dataset.featherrU   )r   rH   r   rI   r   r    )rM   rN   feather_filerO   r   ress         r)   test_read_feather_s3_file_path%TestS3.test_read_feather_s3_file_path=  sN     	I&-.3344KL 
 	h,r7    N)__name__
__module____qualname____firstlineno__rR   rW   r`   rd   rg   rt   rw   r|   r   r   r   r   r   markxfailr   r   
single_cpur   r   r   r   __static_attributes__r   r7   r)   r:   r:   L   s    /+	5	597070/
/9C
@ [[5eD E [[5eD E" [[0 0 [[B B$/
-r7   r:   )"__doc__r   r   r   r   numpyr   r   pandas.util._test_decoratorsutil_test_decoratorstdpandasr   pandas._testing_testingr   pandas.io.feather_formatr   pandas.io.parsersr   r   filterwarnings
pytestmarknetworkr   parametrizer*   r2   fixturer6   usefixturesskip_if_not_us_localer:   r   r7   r)   <module>r      sG     	   ) )   1 &[[''C

 *g!67Hc?35 4 8  56 	C  	C ? ?
 'x- x-  ( x-r7   