Ë
    ¤eh0  ã                   óÒ  — d Z ddlmZ ddlZddlZddlZddlZddlm	c m
Z ddlmZ ddlmZ ddlmZ ddlmZ ej*                  j-                  d«      Zej*                  j0                  ej*                  j2                  ej*                  j5                  dd	d
g«      ej*                  j5                  dddg«      d„ «       «       «       «       Zej*                  j0                  ej*                  j2                  d„ «       «       Zej:                  d„ «       Zej*                  j2                  ej*                  j?                  d«       ej@                  «        G d„ d«      «       «       «       Z!y)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  — |dk(  rt        j                  d«       ||   }t         |dddd|z   «      d«      5 }| j                  |j	                  «       ¬«       d d d «       | j
                  d	z   |z   }	|d
k7  r|}t        |	d||¬«      }
t        j                  |
|«       y # 1 sw Y   ŒHxY w)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              úa/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/pandas/tests/io/parser/test_network.pyÚtest_compressed_urlsr*      s±   € ð ˜5Ò Ü�‰ÐKÔLà(Ð)9Ñ:€IÜ	‰h�t˜X v¨~À	Ñ/IÓJÈDÓ	Qð 3ÐUVØ× Ñ ¨¯©«Ð Ô2÷3ð �.‰.˜?Ñ
*¨YÑ
6€CàˆzÒØÐä˜ $Ð4DÈVÔT€IÜ×Ñ˜) ^Õ4÷3ð 3ús   ¸!B Â B)c                 óð   — t         |dddd«      d«      5 }| j                  |j                  «       ¬«       t        | j                  dd¬	«      }ddd«       j
                  d
   dk(  sJ ‚y# 1 sw Y   ŒxY w)zN
    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   sw   € ô 
‰h�t˜X vÐ/CÓDÀdÓ	Kð GÈqØ× Ñ ¨¯©«Ð Ô2Ü�j—n‘n¨yÀÔFˆ÷Gð �6‰6�%‰=ÐBÒBÐBÑB÷Gð Gús   –9A,Á,A5c                 ó*   — t         | dddd«      «      S )z DataFrame with the tips dataset.r   r   Úcsvútips.csvr   )r"   s    r)   Útips_dfr6   F   s   € ô ‘H˜T 6¨5°*Ó=Ó>Ð>ó    Ús3_resourcec                   ó\  — e Zd Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	d„ Z
d	„ Zd
„ Zd„ Zd„ Zej                   j#                  dd¬«      d„ «       Zej                   j#                  dd¬«      d„ «       Zej                   j(                  d„ «       Zej                   j(                  d„ «       Zd„ Zd„ Zy)ÚTestS3c                 óì   — t        j                  d«       dD ]Z  \  }}t        d|j                  › d�|z   ||¬«      }t	        |t
        «      sJ ‚|j                  rJ ‚t        j                  ||«       Œ\ y )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_bucketz"TestS3.test_parse_public_s3_bucketP   s|   € ô 	×Ñ˜FÔ#ØGò 	/‰IˆC�ÜØÐ2×7Ñ7Ð8¸	ÐBÀSÑHØ Ø $ôˆBô
 ˜b¤)Ô,Ð,Ð,Ø—x’xÐ�<Ü×!Ñ! " gÕ.ñ	/r7   c                 óÐ   — t        j                  d«       t        d|j                  › d�|¬«      }t	        |t
        «      sJ ‚|j                  rJ ‚t        j                  ||«       y )Nr<   rC   rD   ©rE   rF   )rL   Ús3_private_bucket_with_datar6   rN   r1   s        r)   Útest_parse_private_s3_bucketz#TestS3.test_parse_private_s3_bucket^   s_   € ä×Ñ˜FÔ#ÜØÐ/×4Ñ4Ð5°YÐ?ÐQUô
ˆô ˜"œiÔ(Ð(Ð(Ø—8’8Ðˆ|Ü
×Ñ˜b 'Õ*r7   c                 óÂ   — t        d|j                  › d�d|¬«      }t        |t        «      sJ ‚|j                  rJ ‚t        j                  |j                  d d |«       y )Nzs3n://rD   é
   ©ÚnrowsrE   ©r   rH   rI   r   rJ   r   r    Úiloc©rL   rM   r6   rN   r1   s        r)   Útest_parse_public_s3n_bucketz#TestS3.test_parse_public_s3n_bucketh   ó_   € äØÐ/×4Ñ4Ð5°YÐ?ØØ ô
ˆô
 ˜"œiÔ(Ð(Ð(Ø—8’8Ðˆ|Ü
×Ñ˜gŸl™l¨3¨BÐ/°Õ4r7   c                 óÂ   — t        d|j                  › d�d|¬«      }t        |t        «      sJ ‚|j                  rJ ‚t        j                  |j                  d d |«       y )Nzs3a://rD   rW   rX   rZ   r\   s        r)   Útest_parse_public_s3a_bucketz#TestS3.test_parse_public_s3a_buckets   r^   r7   c                 óÞ   — dD ]h  \  }}t        d|j                  › d�|z   d||¬«      }t        |t        «      sJ ‚|j                  rJ ‚t        j                  |j                  d d |«       Œj y )Nr=   rC   rD   rW   )rY   r   rE   rZ   rK   s          r)   Ú!test_parse_public_s3_bucket_nrowsz(TestS3.test_parse_public_s3_bucket_nrows~   s}   € ð Hò 		9‰IˆC�ÜØÐ2×7Ñ7Ð8¸	ÐBÀSÑHØØ Ø $ô	ˆBô ˜b¤)Ô,Ð,Ð,Ø—x’xÐ�<Ü×!Ñ! '§,¡,¨s°Ð"3°RÕ8ñ		9r7   c                 ót  — d}dD ]¥  \  }}t        d|j                  › d�|z   |||¬«      5 }|j                  |k(  sJ ‚dD ]`  }|j                  «       }	t	        |	t
        «      sJ ‚|	j                  rJ ‚|j                  ||z  ||dz   z   }
t        j                  |
|	«       Œb 	 d d d «       Œ§ y # 1 sw Y   Œ²xY w)Né   r=   rC   rD   )Ú	chunksizer   rE   ©r   r/   é   r/   ©
r   rH   re   Ú	get_chunkrI   r   rJ   r[   r   r    ©rL   rM   r6   rN   re   rO   rP   Ú	df_readerÚi_chunkr1   Útrue_dfs              r)   Ú#test_parse_public_s3_bucket_chunkedz*TestS3.test_parse_public_s3_bucket_chunkedŒ   sç   € ð ˆ	ØGò 	7‰IˆC�ÜØÐ2×7Ñ7Ð8¸	ÐBÀSÑHØ#Ø Ø $ô	ð 7ð
 Ø ×*Ñ*¨iÒ7Ð7Ð7Ø(ò 	7�Gð #×,Ñ,Ó.�BÜ% b¬)Ô4Ð4Ð4Ø!ŸxšxÐ'˜<Ø%Ÿl™lØ! GÑ+¨i¸7ÀQ¹;Ñ.Gð�Gô ×)Ñ)¨'°2Õ6ñ	7÷7ð 7ñ	7÷7ð 7ús   «A7B.Â.B7	c                 óv  — d}dD ]¦  \  }}t        d|j                  › d�|z   ||d|¬«      5 }|j                  |k(  sJ ‚dD ]`  }|j                  «       }	t	        |	t
        «      sJ ‚|	j                  rJ ‚|j                  ||z  ||dz   z   }
t        j                  |
|	«       Œb 	 d d d «       Œ¨ y # 1 sw Y   Œ³xY w)	Nrd   r=   rC   rD   r   )re   r   r   rE   rf   r/   rh   rj   s              r)   Ú*test_parse_public_s3_bucket_chunked_pythonz1TestS3.test_parse_public_s3_bucket_chunked_python¤   sè   € ð ˆ	ØGò 	7‰IˆC�ÜØÐ2×7Ñ7Ð8¸	ÐBÀSÑHØ#Ø ØØ $ôð 7ð Ø ×*Ñ*¨iÒ7Ð7Ð7Ø(ò 7�Gà"×,Ñ,Ó.�BÜ% b¬)Ô4Ð4Ð4Ø!ŸxšxÐ'˜<Ø%Ÿl™lØ! GÑ+¨i¸7ÀQ¹;Ñ.Gð�Gô ×)Ñ)¨'°2Õ6ñ7÷7ð 7ñ	7÷7ð 7ús   ¬A7B/Â/B8	c                 óÄ   — dD ][  \  }}t        d|j                  › d�|z   d||¬«      }t        |t        «      sJ ‚|j                  rJ ‚t        j                  ||«       Œ] y )Nr=   rC   rD   r   ©r   r   rE   ©r   rH   rI   r   rJ   r   r    rK   s          r)   Ú"test_parse_public_s3_bucket_pythonz)TestS3.test_parse_public_s3_bucket_python¼   sr   € ð Hò 		/‰IˆC�ÜØÐ2×7Ñ7Ð8¸	ÐBÀSÑHØØ Ø $ô	ˆBô ˜b¤)Ô,Ð,Ð,Ø—x’xÐ�<Ü×!Ñ! " gÕ.ñ		/r7   c                 ó¾   — dD ]X  }t        d|j                  › d�|z   dd|¬«      }t        |t        «      sJ ‚|j                  rJ ‚t        j                  ||«       ŒZ y )N)r>   r?   rA   rC   rD   r   r
   rr   rs   )rL   rM   r6   rN   rO   r1   s         r)   Útest_infer_s3_compressionz TestS3.test_infer_s3_compressionÊ   sk   € Ø&ò 		/ˆCÜØÐ2×7Ñ7Ð8¸	ÐBÀSÑHØØ#Ø $ô	ˆBô ˜b¤)Ô,Ð,Ð,Ø—x’xÐ�<Ü×!Ñ! " gÕ.ñ		/r7   c                 óà   — dD ]i  \  }}t        d|j                  › d�|z   dd||¬«      }t        |t        «      sJ ‚|j                  rJ ‚t        j                  |j                  d d |«       Œk y )Nr=   rC   rD   r   rW   )r   rY   r   rE   rZ   rK   s          r)   Ú(test_parse_public_s3_bucket_nrows_pythonz/TestS3.test_parse_public_s3_bucket_nrows_pythonÖ   s€   € ð Hò 
	9‰IˆC�ÜØÐ2×7Ñ7Ð8¸	ÐBÀSÑHØØØ Ø $ôˆBô ˜b¤)Ô,Ð,Ð,Ø—x’xÐ�<Ü×!Ñ! '§,¡,¨s°Ð"3°RÕ8ñ
	9r7   c                 ó‚   — d}t        j                  t        |¬«      5  t        d|¬«       d d d «       y # 1 sw Y   y xY w)Nú#The specified bucket does not exist©Úmatchzs3://nyqpug/asdf.csvrS   )r   ÚraisesÚOSErrorr   )rL   rN   Úmsgs      r)   Útest_read_s3_failszTestS3.test_read_s3_failså   s9   € Ø3ˆÜ�]‰]œ7¨#Ô.ñ 	CÜÐ+¸TÕB÷	C÷ 	Cñ 	Cús   ž5µ>c                 óš   — d}t        j                  t        |¬«      5  t        d|j                  › d�«       d d d «       y # 1 sw Y   y xY w)Nrz   r{   rC   z	/file.csv)r   r}   r~   r   rH   )rL   Ús3_private_bucketrN   r   s       r)   Útest_read_s3_fails_privatez!TestS3.test_read_s3_fails_privateê   sI   € Ø3ˆô �]‰]œ7¨#Ô.ñ 	@Ü�uÐ.×3Ñ3Ð4°IÐ>Ô?÷	@÷ 	@ñ 	@ús   žAÁA
zGH#39155 s3fs upgradeF)ÚreasonÚstrictc                 óÂ   — dd l }t        |j                  j                  f}t	        j
                  |d¬«      5  |j                  d|¬«       d d d «       y # 1 sw Y   y xY w)Nr   rz   r{   z/s3://an_s3_bucket_data_doesnt_exit/not_real.csvrS   )ÚbotocoreÚFileNotFoundErrorÚ
exceptionsÚClientErrorr   r}   Úto_csv©rL   r6   rN   r‡   Úerrors        r)   Útest_write_s3_csv_failszTestS3.test_write_s3_csv_failsñ   sZ   € ó 	ô
 # H×$7Ñ$7×$CÑ$CÐDˆä�]‰]˜5Ð(MÔNñ 	Ø�N‰NØAÐSWð ô ÷	÷ 	ñ 	ús   ¸AÁAc                 óì   — t        j                  d«       dd l}t        |j                  j
                  f}t        j                  |d¬«      5  |j                  d|¬«       d d d «       y # 1 sw Y   y xY w)NÚpyarrowr   rz   r{   z3s3://an_s3_bucket_data_doesnt_exit/not_real.parquetrS   )r   rG   r‡   rˆ   r‰   rŠ   r}   Ú
to_parquetrŒ   s        r)   Útest_write_s3_parquet_failsz"TestS3.test_write_s3_parquet_fails  sj   € ô 	×Ñ˜IÔ&Ûô
 # H×$7Ñ$7×$CÑ$CÐDˆä�]‰]˜5Ð(MÔNñ 	Ø×ÑØEØ $ð ô ÷	÷ 	ñ 	ús   ÁA*Á*A3c                 ó@  — |j                  d«      }t        |j                  «       d   j                  «       «      5 }t	        |d¬«      }d d d «       t        t        «      sJ ‚|j                  rJ ‚t	        |«      }t        j                  ||«       y # 1 sw Y   ŒKxY w)Nr5   ÚBodyÚutf8)r,   )
ÚObjectr   Úgetr   r   rI   r   rJ   r   r    )rL   rM   Ú	tips_fileÚ	s3_objectÚbufferÚresultÚexpecteds          r)   Ú$test_read_csv_handles_boto_s3_objectz+TestS3.test_read_csv_handles_boto_s3_object  sŠ   € ð /×5Ñ5°jÓAˆ	ä�Y—]‘]“_ VÑ,×1Ñ1Ó3Ó4ð 	7¸Ü˜f¨vÔ6ˆF÷	7ä˜&¤)Ô,Ð,Ð,Ø—<’<ÐÐä˜IÓ&ˆÜ
×Ñ˜f hÕ/÷	7ð 	7ús   ¼BÂBc                 óh  — t        t        j                  d«      t        d«      ¬«      }t	        |j                  «       j                  d«      «      5 }|j                  d|¬«       |j                  › d�}t        j                  d|› d	�«      }|j                  t        j                  d
¬«      5  t        d|› �d|¬«       |j                  D ]:  }t        j                   ||«      x}	sŒt#        |	j%                  d«      «      dk  rŒ:J ‚ 	 d d d «       d d d «       y # 1 sw Y   ŒxY w# 1 sw Y   y xY w)N)i † é   Úabcd)Úcolumnszutf-8zlarge-file.csv)ÚKeyr”   z/large-file.csvz^Fetch: z, 0-(?P<stop>\d+)$r<   )ÚloggerrC   rd   rX   Ústopi z )r   ÚnpÚzerosÚlistr   r‹   ÚencodeÚ
put_objectrH   ÚreÚcompileÚat_levelÚloggingÚDEBUGr   Úmessagesr|   ÚintÚgroup)
rL   Ús3_public_bucketÚcaplogrN   r1   ÚbufÚuriÚmatch_reÚlogr|   s
             r)   Útest_read_csv_chunked_downloadz%TestS3.test_read_csv_chunked_download#  s#  € ô ”r—x‘x Ó,´d¸6³lÔCˆÜ�R—Y‘Y“[×'Ñ'¨Ó0Ó1ð 	B°SØ×'Ñ'Ð,<À3Ð'ÔGØ%×*Ñ*Ð+¨?Ð;ˆCÜ—z‘z X¨c¨UÐ2DÐ"EÓFˆHØ—‘¤§¡°v�Ó>ñ 	BÜØ˜C˜5�MØØ$(õð
 "Ÿ?™?ò B�CÜ "§¡¨°3Ó 7Ð7�uÑ7ä" 5§;¡;¨vÓ#6Ó7¸'ÓAÐAÐAñB÷	B÷		Bð 	B÷	Bð 	Bú÷		Bð 	Bús1   ÁAD(Â/9DÃ)DÄDÄD(ÄD%	Ä!D(Ä(D1c                 óf   — t        d|j                  › d�|¬«      }t        j                  ||«       y )NrC   z/tips#1.csvrS   )r   rH   r   r    )rL   rM   r6   rN   r›   s        r)   Útest_read_s3_with_hash_in_keyz$TestS3.test_read_s3_with_hash_in_key6  s5   € äØÐ.×3Ñ3Ð4°KÐ@ÐRVô
ˆô 	×Ñ˜g vÕ.r7   c                 ó¦   — t        j                  d«       t        |«      }t        d|j                  › d�|¬«      }t	        j
                  ||«       y )Nr�   rC   z/simple_dataset.featherrS   )r   rG   r   rH   r   r    )rL   rM   Úfeather_filerN   rœ   Úress         r)   Útest_read_feather_s3_file_pathz%TestS3.test_read_feather_s3_file_path=  sP   € ô 	×Ñ˜IÔ&Ü Ó-ˆÜØÐ.×3Ñ3Ð4Ð4KÐLØ ô
ˆô 	×Ñ˜h¨Õ,r7   N)Ú__name__Ú
__module__Ú__qualname__rQ   rU   r]   r`   rb   rn   rp   rt   rv   rx   r€   rƒ   r   ÚmarkÚxfailrŽ   r’   Ú
single_cpur�   r¸   rº   r¾   © r7   r)   r:   r:   L   sÜ   „ ò/ò+ò	5ò	5ò9ò7ò07ò0/ò
/ò9òCò
@ð ‡[�[×ÑÐ5¸eÐÓDñó Eðð ‡[�[×ÑÐ5¸eÐÓ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Ø      sI  ðñõ Û Û 	ã Û ç )Ð )å Ý å 1Ý &à�[‰[×'Ñ'ØCó€
ð
 ‡�×ÑØ‡�×ÑØ‡�×Ñ˜ *¨gÐ!6Ó7Ø‡�×Ñ˜ H¨c ?Ó3ñ5ó 4ó 8ó ó ð5ð6 ‡�×ÑØ‡�×Ññ	Có ó ð	Cð ‡�ñ?ó ð?ð
 ‡�×ÑØ‡�×Ñ˜Ó'Ø€×ÑÓ÷x-ð x-ó ó (ó ñx-r7   