from io import BytesIO | |
import pytest | |
from pandas import read_csv | |
def test_streaming_s3_objects(): | |
# GH17135 | |
# botocore gained iteration support in 1.10.47, can now be used in read_* | |
pytest.importorskip("botocore", minversion="1.10.47") | |
from botocore.response import StreamingBody | |
data = [b"foo,bar,baz\n1,2,3\n4,5,6\n", b"just,the,header\n"] | |
for el in data: | |
body = StreamingBody(BytesIO(el), content_length=len(el)) | |
read_csv(body) | |
def test_read_without_creds_from_pub_bucket(s3_public_bucket_with_data, s3so): | |
# GH 34626 | |
pytest.importorskip("s3fs") | |
result = read_csv( | |
f"s3://{s3_public_bucket_with_data.name}/tips.csv", | |
nrows=3, | |
storage_options=s3so, | |
) | |
assert len(result) == 3 | |
def test_read_with_creds_from_pub_bucket(s3_public_bucket_with_data, s3so): | |
# Ensure we can read from a public bucket with credentials | |
# GH 34626 | |
pytest.importorskip("s3fs") | |
df = read_csv( | |
f"s3://{s3_public_bucket_with_data.name}/tips.csv", | |
nrows=5, | |
header=None, | |
storage_options=s3so, | |
) | |
assert len(df) == 5 | |