-
Notifications
You must be signed in to change notification settings - Fork 171
feat(samples): add samples for appendable objects writes and reads #1705
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
Summary of ChangesHello @chandra-siri, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed! This pull request significantly expands the sample code for Google Cloud Storage, focusing on experimental asynchronous operations for appendable objects and advanced ranged read capabilities. The new samples provide practical examples for developers to understand and utilize features like creating and appending to objects, finalizing uploads, pausing and resuming uploads, and performing various types of ranged reads, including concurrent reads across multiple objects and real-time 'tailing' of appendable data streams. These additions aim to enhance the utility and clarity of the client library's asynchronous functionalities. Highlights
🧠 New Feature in Public Preview: You can now enable Memory to help Gemini Code Assist learn from your team's feedback. This makes future code reviews more consistent and personalized to your project's style. Click here to enable Memory in your admin console. Using Gemini Code AssistThe full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips. Invoking Gemini You can request assistance from Gemini at any point by creating a comment using either
Customization To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a Limitations & Feedback Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for Github and other Google products, sign up here. You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension. Footnotes
|
There was a problem hiding this comment.
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 several new sample files demonstrating appendable object writes and reads. The samples are well-structured and cover a range of use cases. My review focuses on improving resource management by ensuring that streams are always closed, even in the case of errors, and on correcting some inconsistencies in comments and docstrings. Overall, these are great additions to the sample library.
samples/snippets/zonal_buckets/storage_read_appendable_object_tail.py
Outdated
Show resolved
Hide resolved
samples/snippets/rapid/storage_open_multiple_objects_ranged_read.py
Outdated
Show resolved
Hide resolved
samples/snippets/rapid/storage_pause_and_resume_appendable_upload.py
Outdated
Show resolved
Hide resolved
samples/snippets/rapid/storage_create_and_write_appendable_object.py
Outdated
Show resolved
Hide resolved
samples/snippets/rapid/storage_finalize_appendable_object_upload.py
Outdated
Show resolved
Hide resolved
samples/snippets/rapid/storage_create_and_write_appendable_object.py
Outdated
Show resolved
Hide resolved
Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
…y stream initialization and error handling
samples/snippets/zonal_buckets/storage_finalize_appendable_object_upload.py
Outdated
Show resolved
Hide resolved
samples/snippets/zonal_buckets/storage_pause_and_resume_appendable_upload.py
Show resolved
Hide resolved
…ltiRangeDownloader
PR created by the Librarian CLI to initialize a release. Merging this PR will auto trigger a release. Librarian Version: v1.0.2-0.20251119154421-36c3e21ad3ac Language Image: us-central1-docker.pkg.dev/cloud-sdk-librarian-prod/images-prod/python-librarian-generator@sha256:8e2c32496077054105bd06c54a59d6a6694287bc053588e24debe6da6920ad91 <details><summary>google-cloud-storage: 3.9.0</summary> ## [3.9.0](v3.8.0...v3.9.0) (2026-02-02) ### Features * update generation for MRD (#1730) ([08bc708](08bc7082)) * add get_object method for async grpc client (#1735) ([0e5ec29](0e5ec29b)) * Add micro-benchmarks for reads comparing standard (regional) vs rapid (zonal) buckets. (#1697) ([1917649](1917649f)) * Add support for opening via `write_handle` and fix `write_handle` type (#1715) ([2bc15fa](2bc15fa5)) * add samples for appendable objects writes and reads ([2e1a1eb](2e1a1eb5)) * add samples for appendable objects writes and reads (#1705) ([2e1a1eb](2e1a1eb5)) * add context manager to mrd (#1724) ([5ac2808](5ac2808a)) * Move Zonal Buckets features of `_experimental` (#1728) ([74c9ecc](74c9ecc5)) * add default user agent for grpc (#1726) ([7b31946](7b319469)) * expose finalized_time in blob.py applicable for GET_OBJECT in ZB (#1719) ([8e21a7f](8e21a7fe)) * expose `DELETE_OBJECT` in `AsyncGrpcClient` (#1718) ([c8dd7a0](c8dd7a0b)) * send `user_agent` to grpc channel (#1712) ([cdb2486](cdb2486b)) * integrate writes strategy and appendable object writer (#1695) ([dbd162b](dbd162b3)) * Add micro-benchmarks for writes comparing standard (regional) vs rapid (zonal) buckets. (#1707) ([dbe9d8b](dbe9d8b8)) * add support for `generation=0` to avoid overwriting existing objects and add `is_stream_open` support (#1709) ([ea0f5bf](ea0f5bf8)) * add support for `generation=0` to prevent overwriting existing objects ([ea0f5bf](ea0f5bf8)) * add `is_stream_open` property to AsyncAppendableObjectWriter for stream status check ([ea0f5bf](ea0f5bf8)) ### Bug Fixes * receive eof while closing reads stream (#1733) ([2ef6339](2ef63396)) * update write handle on every recv() (#1716) ([5d9fafe](5d9fafe1)) * implement requests_done method to signal end of requests in async streams. Gracefully close streams. (#1700) ([6c16079](6c160794)) * implement requests_done method to signal end of requests in async streams. Gracefully close streams. ([6c16079](6c160794)) * instance grpc client once per process in benchmarks (#1725) ([721ea2d](721ea2dd)) * Fix formatting in setup.py dependencies list (#1713) ([cc4831d](cc4831d7)) * Change contructors of MRD and AAOW AsyncGrpcClient.grpc_client to AsyncGrpcClient (#1727) ([e730bf5](e730bf50)) </details>
feat(samples): add samples for appendable objects writes and reads