Ë
    AúYjÖ  ã                   óÈ  — 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*                  j0                   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Útarz4TODO: Add tar salaries.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              ún/var/www/ramen.bs-engineer-server.com/venv/lib/python3.12/site-packages/pandas/tests/io/parser/test_network.pyÚtest_compressed_urlsr*      s±   € ð ˜5Ò Ü�‰ÐJÔKà(Ð)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   9   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   G   s   € ô ‘H˜T 6¨5°*Ó=Ó>Ð>ó    c                   ó€  — e Zd Zej                  j                  dg d¢«      ej                  j                  dddg«      ej                  j                  dddg«      d	„ «       «       «       Zd
„ Zej                  j                  dddg«      d„ «       Zej                  j                  dg d¢«      ej                  j                  dddg«      d„ «       «       Z	ej                  j                  dg d¢«      d„ «       Z
d„ Zd„ Zej                  j                  d„ «       Zej                  j                  d„ «       Zd„ Zd„ Zy)ÚTestS3zsuffix, compression))Ú N)ú.gzÚgzip)ú.bz2Úbz2ÚnrowsNé
   r   r   r   c                 ó´   — t        j                  d«       t        d|j                  › d|› �||||¬«      }t	        j
                  ||j                  d | «       y )NÚs3fsús3://ú	/tips.csv)r?   r   Ústorage_optionsr   )r   Úimportorskipr   Únamer   r    Úiloc)	ÚselfÚs3_bucket_public_with_dataÚs3sor6   Úsuffixr   r?   r   r1   s	            r)   Útest_parse_public_s3_bucketz"TestS3.test_parse_public_s3_bucketQ   s]   € ô, 	×Ñ˜FÔ#ÜØÐ.×3Ñ3Ð4°I¸f¸XÐFØØ#Ø Øô
ˆô 	×Ñ˜b '§,¡,¨v°Ð"6Õ7r7   c                 ó�   — t        j                  d«       t        d|j                  › d�|¬«      }t	        j
                  ||«       y )NrB   rC   rD   ©rE   )r   rF   r   rG   r   r    )rI   Ús3_bucket_private_with_datarK   r6   r1   s        r)   Útest_parse_private_s3_bucketz#TestS3.test_parse_private_s3_bucketq   sC   € ä×Ñ˜FÔ#ÜØÐ/×4Ñ4Ð5°YÐ?ÐQUô
ˆô 	×Ñ˜b 'Õ*r7   ÚschemeÚs3nÚs3ac                 óŠ   — d}t        |› d|j                  › d�||¬«      }t        j                  ||j                  d | «       y )Nr@   z://rD   ©r?   rE   )r   rG   r   r    rH   )rI   rJ   rK   r6   rR   r?   r1   s          r)   Ú test_parse_public_bucket_s3n_s3az'TestS3.test_parse_public_bucket_s3n_s3ay   sN   € ð ˆÜØˆh�cÐ4×9Ñ9Ð:¸)ÐDØØ ô
ˆô
 	×Ñ˜b '§,¡,¨v°Ð"6Õ7r7   c                 ó`  — d}t        d|j                  › 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   y xY w)Né   rC   rD   )Ú	chunksizer   rE   r   )r   r/   é   r/   )
r   rG   rZ   Ú	get_chunkÚ
isinstancer   ÚemptyrH   r   r    )rI   rJ   rK   r6   rL   r   r   rZ   Ú	df_readerÚi_chunkr1   Útrue_dfs               r)   Ú#test_parse_public_s3_bucket_chunkedz*TestS3.test_parse_public_s3_bucket_chunked…   sÍ   € ð ˆ	ÜØÐ.×3Ñ3Ð4°I¸f¸XÐFØØ#Ø Øô
ð 	3ð Ø×&Ñ&¨)Ò3Ð3Ð3Ø$ò 3�ð ×(Ñ(Ó*�Ü! "¤iÔ0Ð0Ð0ØŸ8š8Ð#�|Ø!Ÿ,™, y°7Ñ':¸YÈ'ÐTUÉ+Ñ=VÐW�Ü×%Ñ% g¨rÕ2ñ3÷	3÷ 	3ñ 	3ús   £A7B$Â$B-rL   )r:   r;   r=   c                 ón   — t        d|j                  › d|› �dd|¬«      }t        j                  ||«       y )NrC   rD   r   r
   )r   r   rE   ©r   rG   r   r    )rI   rJ   rK   r6   rL   r1   s         r)   Útest_infer_s3_compressionz TestS3.test_infer_s3_compression¤   sA   € ô ØÐ.×3Ñ3Ð4°I¸f¸XÐFØØØ ô	
ˆô 	×Ñ˜b 'Õ*r7   c                 ó‚   — d}t        j                  t        |¬«      5  t        d|¬«       d d d «       y # 1 sw Y   y xY w)Nz#The specified bucket does not exist©Úmatchzs3://nyqpug/asdf.csvrO   )r   ÚraisesÚOSErrorr   )rI   rJ   rK   Úmsgs       r)   Útest_read_s3_failszTestS3.test_read_s3_fails°   s9   € Ø3ˆÜ�]‰]œ7¨#Ô.ñ 	CÜÐ+¸TÕB÷	C÷ 	Cñ 	Cús   ž5µ>c                 ó¨   — |j                   › d�}|› }t        j                  t        |¬«      5  t	        d|› �|¬«       d d d «       y # 1 sw Y   y xY w)Nz	/file.csvrg   rC   rO   )rG   r   ri   ÚFileNotFoundErrorr   )rI   rP   rK   Ús3_urlrk   s        r)   Útest_read_s3_fails_privatez!TestS3.test_read_s3_fails_privateµ   sW   € Ø/×4Ñ4Ð5°YÐ?ˆØ�ˆô �]‰]Ô,°CÔ8ñ 	ÜØ˜�xÐ Ø $õ÷	÷ 	ñ 	ús   ®AÁA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   r]   r   r^   r   r    )rI   rJ   Ú	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)ÚKeyrr   z/large-file.csvz^Fetch: z, 0-(?P<stop>\d+)$rB   )ÚloggerrC   rY   rV   Ústopi z )r   ÚnpÚzerosÚlistr   Úto_csvÚencodeÚ
put_objectrG   ÚreÚcompileÚat_levelÚloggingÚDEBUGr   Úmessagesrh   ÚintÚgroup)
rI   Ús3_bucket_publicrK   Úcaplogr1   ÚbufÚuriÚmatch_reÚlogrh   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.csvrO   rd   )rI   rJ   rK   r6   ry   s        r)   Útest_read_s3_with_hash_in_keyz$TestS3.test_read_s3_with_hash_in_keyã   s5   € äØÐ.×3Ñ3Ð4°KÐ@ÐRVô
ˆô 	×Ñ˜g vÕ.r7   c                 ó¦   — t        j                  d«       t        |«      }t        d|j                  › d�|¬«      }t	        j
                  ||«       y )NÚpyarrowrC   z/simple_dataset.featherrO   )r   rF   r   rG   r   r    )rI   rJ   rK   Úfeather_filerz   Úress         r)   Útest_read_feather_s3_file_pathz%TestS3.test_read_feather_s3_file_pathê   sP   € ô 	×Ñ˜IÔ&Ü Ó-ˆÜØÐ.×3Ñ3Ð4Ð4KÐLØ ô
ˆô 	×Ñ˜h¨Õ,r7   )Ú__name__Ú
__module__Ú__qualname__r   ÚmarkÚparametrizerM   rQ   rW   rb   re   rl   rp   Ú
single_cpur{   r—   r™   rž   © r7   r)   r9   r9   M   sZ  „ ð ‡[�[×ÑØò	
óð ‡[�[×Ñ˜W t¨R jÓ1Ø‡[�[×Ñ˜X¨¨X Ó7ñ8ó 8ó 2óð8ò,+ð ‡[�[×Ñ˜X¨¨u ~Ó6ñ	8ó 7ð	8ð ‡[�[×ÑØò	
óð ‡[�[×Ñ˜X¨¨X Ó7ñ3ó 8óð3ð, ‡[�[×Ñ˜XÒ':Ó;ñ	+ó <ð	+òCò
	ð ‡[�[×Ññ0ó ð0ð ‡[�[×ÑñBó ðBò$/ó
-r7   r9   )!Ú__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¤   r£   r*   r2   Úfixturer6   Úskip_if_not_us_localer9   r¥   r7   r)   ú<module>r¶      sD  ðñõ
 Û Û 	ã Û ç )Ð )å Ý å 1Ý &à�[‰[×'Ñ'ØCó€
ð
 ‡�×ÑØ‡�×ÑØ‡�×Ñ˜ *¨gÐ!6Ó7Ø‡�×Ñ˜ H¨c ?Ó3ñ5ó 4ó 8ó ó ð5ð6 ‡�×ÑØ‡�×Ññ	Có ó ð	Cð ‡�ñ?ó ð?ð
 ‡�×ÑØ‡�×ÑØ€×ÑÓ÷d-ð d-ó ó ó ñd-r7   