Factor out API helper classes from 'pubsub.Connection'.#1736
Factor out API helper classes from 'pubsub.Connection'.#1736tseaver merged 8 commits intogoogleapis:masterfrom tseaver:851-1696-pubsub-api_helper_classes
Conversation
These API objects will represent logical groupings of the JSON api endpoints, and correspond one-for-one to the stubs exposed by the generated gRPC code. Further commits will move the endpoint-specific methods from the 'Connecttion' class into the relevant API classes, and adjust the callers. See: #1700 (comment)
| def publisher_api(self): | ||
| """Helper for publisher-related API calls.""" | ||
| if self._publisher_api is None: | ||
| self._publisher_api = _PublisherAPI(self.connection) |
This comment was marked as spam.
This comment was marked as spam.
Sorry, something went wrong.
This comment was marked as spam.
This comment was marked as spam.
Sorry, something went wrong.
This comment was marked as spam.
This comment was marked as spam.
Sorry, something went wrong.
|
For non-test code, ISTM the only change after the cut-and-paste was |
| self.assertEqual(conn.build_api_url('/foo', api_base_url=base_url2), | ||
| URI) | ||
|
|
||
| def _verify_uri(self, uri, expected_path, **expected_qs): |
This comment was marked as spam.
This comment was marked as spam.
Sorry, something went wrong.
This comment was marked as spam.
This comment was marked as spam.
Sorry, something went wrong.
|
@tseaver LGTM save for my |
For the helper objects, yes. The callers now delegate to the methods of the helpers, rather than the connection. |
|
@tseaver You jumped the gun a bit on the merge. I have an unanswered question:
regarding setting test connections to |
|
141eab5 removed them. |
|
I'm seeing conn = client.connection = object()on line 36 of Instead of |
Co-authored-by: Anthonios Partheniou <partheniou@google.com>
* chore(python): Add Python 3.12 Source-Link: googleapis/synthtool@af16e6d Post-Processor: gcr.io/cloud-devrel-public-resources/owlbot-python:latest@sha256:bacc3af03bff793a03add584537b36b5644342931ad989e3ba1171d3bd5399f5 * add trove classifier for python 3.12 * update kokoro configs * Add python 3.12 to noxfile.py * update georaphy sample requirements * update geography samples requirements * add testing constraint file for 3.12 * remove repr test --------- Co-authored-by: Owl Bot <gcf-owl-bot[bot]@users.noreply.github.com> Co-authored-by: Anthonios Partheniou <partheniou@google.com> Co-authored-by: Linchin <lingqing.gan@gmail.com>
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](googleapis/python-storage@v3.8.0...v3.9.0) (2026-02-02) ### Features * update generation for MRD (#1730) ([08bc7082](googleapis/python-storage@08bc7082)) * add get_object method for async grpc client (#1735) ([0e5ec29b](googleapis/python-storage@0e5ec29b)) * Add micro-benchmarks for reads comparing standard (regional) vs rapid (zonal) buckets. (#1697) ([1917649f](googleapis/python-storage@1917649f)) * Add support for opening via `write_handle` and fix `write_handle` type (#1715) ([2bc15fa5](googleapis/python-storage@2bc15fa5)) * add samples for appendable objects writes and reads ([2e1a1eb5](googleapis/python-storage@2e1a1eb5)) * add samples for appendable objects writes and reads (#1705) ([2e1a1eb5](googleapis/python-storage@2e1a1eb5)) * add context manager to mrd (#1724) ([5ac2808a](googleapis/python-storage@5ac2808a)) * Move Zonal Buckets features of `_experimental` (#1728) ([74c9ecc5](googleapis/python-storage@74c9ecc5)) * add default user agent for grpc (#1726) ([7b319469](googleapis/python-storage@7b319469)) * expose finalized_time in blob.py applicable for GET_OBJECT in ZB (#1719) ([8e21a7f](googleapis/python-storage@8e21a7fe)) * expose `DELETE_OBJECT` in `AsyncGrpcClient` (#1718) ([c8dd7a0b](googleapis/python-storage@c8dd7a0b)) * send `user_agent` to grpc channel (#1712) ([cdb2486b](googleapis/python-storage@cdb2486b)) * integrate writes strategy and appendable object writer (#1695) ([dbd162b3](googleapis/python-storage@dbd162b3)) * Add micro-benchmarks for writes comparing standard (regional) vs rapid (zonal) buckets. (#1707) ([dbe9d8b8](googleapis/python-storage@dbe9d8b8)) * add support for `generation=0` to avoid overwriting existing objects and add `is_stream_open` support (#1709) ([ea0f5bf8](googleapis/python-storage@ea0f5bf8)) * add support for `generation=0` to prevent overwriting existing objects ([ea0f5bf8](googleapis/python-storage@ea0f5bf8)) * add `is_stream_open` property to AsyncAppendableObjectWriter for stream status check ([ea0f5bf8](googleapis/python-storage@ea0f5bf8)) ### Bug Fixes * receive eof while closing reads stream (#1733) ([2ef63396](googleapis/python-storage@2ef63396)) * update write handle on every recv() (#1716) ([5d9fafe1](googleapis/python-storage@5d9fafe1)) * implement requests_done method to signal end of requests in async streams. Gracefully close streams. (#1700) ([6c160794](googleapis/python-storage@6c160794)) * implement requests_done method to signal end of requests in async streams. Gracefully close streams. ([6c160794](googleapis/python-storage@6c160794)) * instance grpc client once per process in benchmarks (#1725) ([721ea2dd](googleapis/python-storage@721ea2dd)) * Fix formatting in setup.py dependencies list (#1713) ([cc4831d7](googleapis/python-storage@cc4831d7)) * Change contructors of MRD and AAOW AsyncGrpcClient.grpc_client to AsyncGrpcClient (#1727) ([e730bf50](googleapis/python-storage@e730bf50)) </details>
Uses #1700 as a base.Toward #851 / #1696.