1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
U
­ý°dj/ã@s4dZddlmZmZddlZddlZddlZddlm    Z    ddl
m m Z ddlmZddlmZddlmZddlmZddlmZejjejd    d
d ej d d dg¡ej dddg¡dd„ƒƒƒƒZejjejdd
d dd„ƒƒZejdd„ƒZejj ej !d¡ejj"de#dde  $¡Gdd„dƒƒƒƒƒZ%dS)zl
Tests parsers ability to read and parse non-local files
and hence require a network connection to be read.
é)ÚBytesIOÚStringION)Úis_ci_environment)Ú    DataFrame)Ú_compression_to_extension)Ú read_feather©Úread_csvúVhttps://github.com/pandas-dev/pandas/raw/main/pandas/tests/io/parser/data/salaries.csvT)ÚurlZcheck_before_testÚmodeÚexplicitÚinferÚengineÚpythonÚccCs@t|}d}||}|dkr |}t|d||d}t ||¡dS)Nr
r ú    )ÚsepÚ compressionr)rr    ÚtmÚassert_frame_equal)Zsalaries_tabler rZcompression_onlyÚ    extensionÚbase_urlr Z    url_table©rúZd:\z\workplace\vscode\pyvenv\venv\Lib\site-packages\pandas/tests/io/parser/test_network.pyÚtest_compressed_urlss ÿrúghttps://raw.githubusercontent.com/pandas-dev/pandas/main/pandas/tests/io/parser/data/unicode_series.csvcCs(d}t|ddd}|jddks$t‚dS)zN
    read_csv should honor the requested encoding for URLs.
 
    GH 10424
    rzlatin-1N)ÚencodingÚheader)ééu$Á köldum klaka (Cold Fever) (1994))r    ÚlocÚAssertionError)ÚpathÚdfrrrÚtest_url_encoding_csv5sÿr%cCst|ddddƒƒS)z DataFrame with the tips dataset.ÚioÚdataÚcsvútips.csvr)ÚdatapathrrrÚtips_dfKsr+Ú s3_resourcez$CI race condition GH 45433, GH 44584F)ÚreasonÚraisesÚstrictc@sìeZdZe d¡dd„ƒZdd„Zdd„Zdd    „Zd
d „Z    d d „Z
dd„Z dd„Z dd„Z dd„Zejjddddd„ƒZejjddde d¡dd„ƒƒZejjdd„ƒZejjejjeƒd d!d"d#„ƒƒZd$d%„Ze d¡d&d'„ƒZd(S))ÚTestS3Ús3fscCsxdD]>\}}td|||d}t|tƒs,t‚|jr6t‚t ||¡qtd|d}t|tƒs^t‚|jrht‚t ||¡dS)N©)ÚN)ú.gzÚgzip)ú.bz2Úbz2ús3://pandas-test/tips.csv)rÚstorage_optionszs3://cant_get_it/tips.csv©r9©r    Ú
isinstancerr"Úemptyrr©Úselfr+Ús3soÚextÚcompr$rrrÚtest_parse_public_s3_bucketZs ý
 
z"TestS3.test_parse_public_s3_bucketcCs@tdd|d}t|tƒst‚|jr&t‚t |jdd…|¡dS)Nzs3n://pandas-test/tips.csvé
©Únrowsr9©r    r<rr"r=rrÚiloc©r?r+r@r$rrrÚtest_parse_public_s3n_bucketns
z#TestS3.test_parse_public_s3n_bucketcCs@tdd|d}t|tƒst‚|jr&t‚t |jdd…|¡dS)Nzs3a://pandas-test/tips.csvrDrErGrIrrrÚtest_parse_public_s3a_bucketus
z#TestS3.test_parse_public_s3a_bucketcCsTdD]J\}}td|d||d}t|tƒs.t‚|jr8t‚t |jdd…|¡qdS)Nr2r8rD)rFrr9rGr>rrrÚ!test_parse_public_s3_bucket_nrows|s ü
z(TestS3.test_parse_public_s3_bucket_nrowsc
 
Cs”d}dD]†\}}td||||dd}|j|ks4t‚dD]J}| ¡}t|tƒsRt‚|jr\t‚|j||||d…}    t     |    |¡q8W5QRXqdS)Nér2r8)Ú    chunksizerr9©rr ér ©
r    rNr"Z    get_chunkr<rr=rHrr©
r?r+r@rNrArBZ    df_readerZi_chunkr$Ztrue_dfrrrÚ#test_parse_public_s3_bucket_chunkedˆs& ü
 
ÿz*TestS3.test_parse_public_s3_bucket_chunkedc
 
Cs–d}dD]ˆ\}}td|||d|dd}|j|ks6t‚dD]J}| ¡}t|tƒsTt‚|jr^t‚|j||||d…}    t     |    |¡q:W5QRXqdS)NrMr2r8r)rNrrr9rOr rQrRrrrÚ*test_parse_public_s3_bucket_chunked_pythonžs( û
 
ÿz1TestS3.test_parse_public_s3_bucket_chunked_pythoncCsJdD]@\}}td|d||d}t|tƒs.t‚|jr8t‚t ||¡qdS)Nr2r8r©rrr9r;r>rrrÚ"test_parse_public_s3_bucket_python´s ü
z)TestS3.test_parse_public_s3_bucket_pythoncCsFdD]<}td|dd|d}t|tƒs*t‚|jr4t‚t ||¡qdS)N)r3r4r6r8rrrUr;)r?r+r@rAr$rrrÚtest_infer_s3_compressionÀsü
z TestS3.test_infer_s3_compressioncCsVdD]L\}}td|dd||d}t|tƒs0t‚|jr:t‚t |jdd…|¡qdS)Nr2r8rrD)rrFrr9rGr>rrrÚ(test_parse_public_s3_bucket_nrows_pythonÌs û
z/TestS3.test_parse_public_s3_bucket_nrows_pythonc    CsPd}tjt|dtd|dW5QRXtjt|dtdƒW5QRXdS)Nú#The specified bucket does not exist©Úmatchzs3://nyqpug/asdf.csvr:zs3://cant_get_it/file.csv)Úpytestr.ÚOSErrorr    )r?r@ÚmsgrrrÚtest_read_s3_failsÙs
zTestS3.test_read_s3_failszGH#39155 s3fs upgradeF)r-r/c    Cs@ddl}t|jjf}tj|dd|jd|dW5QRXdS)NrrYrZz/s3://an_s3_bucket_data_doesnt_exit/not_real.csvr:)ÚbotocoreÚFileNotFoundErrorÚ
exceptionsÚ ClientErrorr\r.Úto_csv©r?r+r@r`ÚerrorrrrÚtest_write_s3_csv_failsãs ÿzTestS3.test_write_s3_csv_failsZpyarrowc    Cs@ddl}t|jjf}tj|dd|jd|dW5QRXdS)NrrYrZz3s3://an_s3_bucket_data_doesnt_exit/not_real.parquetr:)r`rarbrcr\r.Z
to_parquetrerrrÚtest_write_s3_parquet_failsós þz"TestS3.test_write_s3_parquet_failsc    Csj|jjjddd}t|d ¡ƒ}t|dd}W5QRXt|tƒsHt‚|j    rRt‚t|ƒ}t
  ||¡dS)Nú pandas-testr))ÚBucketÚKeyÚBodyÚutf8)r) ÚmetaÚclientZ
get_objectrÚreadr    r<rr"r=rr)r?r,Z    tips_fileZ    s3_objectÚbufferÚresultÚexpectedrrrÚ$test_read_csv_handles_boto_s3_objectsÿ
z+TestS3.test_read_csv_handles_boto_s3_objectz†This test can hang in our CI min_versions build and leads to '##[error]The runner has received a shutdown signal...' in GHA. GH: 45651)r-c    Cs¨ddl}ttj dd¡tdƒd}tƒ}| |¡t|     ¡ 
d¡ƒ}|  d¡j d|d    |j  ¡|jtjd
d ,td d |dddd„|jDƒksšt‚W5QRXdS)Nri †éZabcd)Úcolumnszutf-8rizlarge-file.csv)rkrlr1)Úloggerzs3://pandas-test/large-file.csvrMrE)riTcss|]}|jdd…VqdS)éþÿÿÿN)Úargs)Ú.0ÚxrrrÚ    <genexpr>2sz8TestS3.test_read_csv_chunked_download.<locals>.<genexpr>)r1rÚnpÚrandomZrandnÚlistrrdrÚgetvalueÚencoderjZ
put_objectZ S3FileSystemZclear_instance_cacheZat_levelÚloggingÚDEBUGr    Úrecordsr")r?r,Zcaplogr@r1r$Zstr_bufÚbufrrrÚtest_read_csv_chunked_downloads    
 
z%TestS3.test_read_csv_chunked_downloadcCstd|d}t ||¡dS)Nzs3://pandas-test/tips#1.csvr:)r    rr)r?r+r@rrrrrÚtest_read_s3_with_hash_in_key4s z$TestS3.test_read_s3_with_hash_in_keycCs$t|ƒ}td|d}t ||¡dS)Nz's3://pandas-test/simple_dataset.featherr:)rrr)r?Z feather_filer@rsÚresrrrÚtest_read_feather_s3_file_path9s ÿz%TestS3.test_read_feather_s3_file_pathN)Ú__name__Ú
__module__Ú __qualname__ÚtdZ
skip_if_norCrJrKrLrSrTrVrWrXr_r\ÚmarkÚxfailrgrhÚ
single_cpurtZskipifrr†r‡r‰rrrrr0Qs6    
 
 
 
þ r0)&Ú__doc__r&rrr‚Únumpyr}r\Z pandas.compatrZpandas.util._test_decoratorsÚutilZ_test_decoratorsrZpandasrZpandas._testingZ_testingrZ pandas.tests.io.test_compressionrZpandas.io.feather_formatrZpandas.io.parsersr    rŽÚnetworkZ parametrizerr%Zfixturer+rZ usefixturesrraZskip_if_not_us_localer0rrrrÚ<module>sH      ûû 
 
ý