feat(storage): Add async client and async http iterator class by googlyrahman · Pull Request #1696 · googleapis/python-storage · GitHub
Skip to content
This repository was archived by the owner on Mar 31, 2026. It is now read-only.

feat(storage): Add async client and async http iterator class#1696

Merged
googlyrahman merged 2 commits into
googleapis:asyncfrom
googlyrahman:dev-1
Feb 5, 2026
Merged

feat(storage): Add async client and async http iterator class#1696
googlyrahman merged 2 commits into
googleapis:asyncfrom
googlyrahman:dev-1

Conversation

@googlyrahman

Copy link
Copy Markdown
Contributor
  1. Add async client implementation.
  2. Add AsyncHTTPIterator deriving from google.api_core.page_iterator_async.AsyncIterator as an alternative to google.api_core.page_iterator.HTTPIterator

The AsyncHTTPIterator doesn't exists, and hence needs to be implemented.

@product-auto-label product-auto-label Bot added size: l Pull request size is large. api: storage Issues related to the googleapis/python-storage API. labels Dec 25, 2025
@gemini-code-assist

Copy link
Copy Markdown
Contributor

@gemini-code-assist gemini-code-assist Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request introduces an experimental asynchronous client for Google Cloud Storage, along with an async HTTP iterator. The implementation looks solid and follows the patterns of the synchronous client. The tests are also comprehensive.

I've left a few comments for improvement:

  • A few minor style issues like typos in comments, extra blank lines, and trailing whitespace.
  • A suggestion to refactor _list_resource to be a synchronous method since it doesn't perform any awaitable operations, which would be a cleaner design.
  • Some improvements to type hints and defensive copying of parameters.
  • A misplaced import in one of the test files.

Overall, great work on adding async support!

Comment thread google/cloud/storage/_experimental/asyncio/async_client.py Outdated
Comment thread google/cloud/storage/_experimental/asyncio/async_client.py Outdated
Comment thread google/cloud/storage/_experimental/asyncio/async_client.py Outdated
Comment thread google/cloud/storage/_experimental/asyncio/async_client.py Outdated
Comment thread google/cloud/storage/_experimental/asyncio/async_helpers.py
Comment thread google/cloud/storage/_experimental/asyncio/async_helpers.py Outdated
Comment thread google/cloud/storage/_experimental/asyncio/async_helpers.py Outdated
Comment thread google/cloud/storage/abstracts/base_client.py Outdated
Comment thread tests/unit/asyncio/test_async_client.py Outdated
Comment thread tests/unit/asyncio/test_async_helpers.py Outdated
@googlyrahman googlyrahman force-pushed the dev-1 branch 5 times, most recently from 9162e46 to d2460df Compare December 25, 2025 13:37
@googlyrahman googlyrahman marked this pull request as ready for review December 25, 2025 18:43
@googlyrahman googlyrahman requested review from a team December 25, 2025 18:43
@googlyrahman googlyrahman requested a review from a team as a code owner December 25, 2025 18:43
Comment thread google/cloud/storage/_experimental/asyncio/async_client.py Outdated
Comment thread google/cloud/storage/_experimental/asyncio/async_client.py Outdated
Comment thread google/cloud/storage/_experimental/asyncio/async_helpers.py
Comment thread tests/unit/asyncio/test_async_client.py
@googlyrahman googlyrahman merged commit eabbdca into googleapis:async Feb 5, 2026
6 checks passed
googlyrahman added a commit to googlyrahman/python-storage that referenced this pull request Feb 5, 2026
…oogleapis#1696)

1. Add async client implementation.
2. Add AsyncHTTPIterator deriving from
google.api_core.page_iterator_async.AsyncIterator as an alternative to
google.api_core.page_iterator.HTTPIterator

The AsyncHTTPIterator doesn't exists, and hence needs to be implemented.
googlyrahman added a commit to googlyrahman/python-storage that referenced this pull request Feb 19, 2026
…oogleapis#1696)

1. Add async client implementation.
2. Add AsyncHTTPIterator deriving from
google.api_core.page_iterator_async.AsyncIterator as an alternative to
google.api_core.page_iterator.HTTPIterator

The AsyncHTTPIterator doesn't exists, and hence needs to be implemented.
googlyrahman added a commit to googlyrahman/python-storage that referenced this pull request Feb 19, 2026
…oogleapis#1696)

1. Add async client implementation.
2. Add AsyncHTTPIterator deriving from
google.api_core.page_iterator_async.AsyncIterator as an alternative to
google.api_core.page_iterator.HTTPIterator

The AsyncHTTPIterator doesn't exists, and hence needs to be implemented.
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

api: storage Issues related to the googleapis/python-storage API. size: l Pull request size is large.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants