Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 2 additions & 1 deletion awswrangler/s3/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
from awswrangler.s3._delete import delete_objects # noqa
from awswrangler.s3._describe import describe_objects, get_bucket_region, size_objects # noqa
from awswrangler.s3._download import download # noqa
from awswrangler.s3._list import does_object_exist, list_directories, list_objects # noqa
from awswrangler.s3._list import does_object_exist, list_buckets, list_directories, list_objects # noqa
from awswrangler.s3._merge_upsert_table import merge_upsert_table # noqa
from awswrangler.s3._read_excel import read_excel # noqa
from awswrangler.s3._read_parquet import read_parquet, read_parquet_metadata, read_parquet_table # noqa
Expand All @@ -24,6 +24,7 @@
"get_bucket_region",
"size_objects",
"does_object_exist",
"list_buckets",
"list_directories",
"list_objects",
"read_parquet",
Expand Down
19 changes: 19 additions & 0 deletions awswrangler/s3/_list.py
Original file line number Diff line number Diff line change
Expand Up @@ -356,3 +356,22 @@ def list_objects(
if chunked:
return result_iterator
return [path for paths in result_iterator for path in paths]


def list_buckets(boto3_session: Optional[boto3.Session] = None) -> List[str]:
"""List Amazon S3 buckets.

Parameters
----------
boto3_session : boto3.Session(), optional
Boto3 Session. The default boto3 session to use, default to None.

Returns
-------
List[str]
List of bucket names.

"""
client_s3: boto3.client = _utils.client(service_name="s3", session=boto3_session)
buckets = client_s3.list_buckets()["Buckets"]
return [bucket["Name"] for bucket in buckets]
1 change: 1 addition & 0 deletions docs/source/api.rst
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,7 @@ Amazon S3
does_object_exist
download
get_bucket_region
list_buckets
list_directories
list_objects
merge_datasets
Expand Down
4 changes: 4 additions & 0 deletions tests/test_s3.py
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,10 @@
logging.getLogger("awswrangler").setLevel(logging.DEBUG)


def test_list_buckets() -> None:
assert len(wr.s3.list_buckets()) > 0


@pytest.mark.parametrize("sanitize_columns,col", [(True, "foo_boo"), (False, "FooBoo")])
def test_sanitize_columns(path, sanitize_columns, col):
df = pd.DataFrame({"FooBoo": [1, 2, 3]})
Expand Down