google-cloud-pubsub 2.36.0__tar.gz → 2.37.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {google_cloud_pubsub-2.36.0/google_cloud_pubsub.egg-info → google_cloud_pubsub-2.37.0}/PKG-INFO +16 -9
- {google_cloud_pubsub-2.36.0 → google_cloud_pubsub-2.37.0}/README.rst +13 -6
- {google_cloud_pubsub-2.36.0 → google_cloud_pubsub-2.37.0}/google/cloud/pubsub_v1/open_telemetry/publish_message_wrapper.py +18 -16
- {google_cloud_pubsub-2.36.0 → google_cloud_pubsub-2.37.0}/google/pubsub/gapic_version.py +1 -1
- {google_cloud_pubsub-2.36.0 → google_cloud_pubsub-2.37.0}/google/pubsub_v1/gapic_version.py +1 -1
- {google_cloud_pubsub-2.36.0 → google_cloud_pubsub-2.37.0}/google/pubsub_v1/services/publisher/async_client.py +34 -16
- {google_cloud_pubsub-2.36.0 → google_cloud_pubsub-2.37.0}/google/pubsub_v1/services/publisher/client.py +42 -20
- {google_cloud_pubsub-2.36.0 → google_cloud_pubsub-2.37.0}/google/pubsub_v1/services/publisher/transports/base.py +6 -0
- {google_cloud_pubsub-2.36.0 → google_cloud_pubsub-2.37.0}/google/pubsub_v1/services/publisher/transports/grpc.py +6 -2
- {google_cloud_pubsub-2.36.0 → google_cloud_pubsub-2.37.0}/google/pubsub_v1/services/publisher/transports/grpc_asyncio.py +6 -2
- {google_cloud_pubsub-2.36.0 → google_cloud_pubsub-2.37.0}/google/pubsub_v1/services/publisher/transports/rest.py +6 -0
- {google_cloud_pubsub-2.36.0 → google_cloud_pubsub-2.37.0}/google/pubsub_v1/services/schema_service/async_client.py +34 -16
- {google_cloud_pubsub-2.36.0 → google_cloud_pubsub-2.37.0}/google/pubsub_v1/services/schema_service/client.py +42 -20
- {google_cloud_pubsub-2.36.0 → google_cloud_pubsub-2.37.0}/google/pubsub_v1/services/schema_service/transports/base.py +6 -0
- {google_cloud_pubsub-2.36.0 → google_cloud_pubsub-2.37.0}/google/pubsub_v1/services/schema_service/transports/grpc.py +6 -2
- {google_cloud_pubsub-2.36.0 → google_cloud_pubsub-2.37.0}/google/pubsub_v1/services/schema_service/transports/grpc_asyncio.py +6 -2
- {google_cloud_pubsub-2.36.0 → google_cloud_pubsub-2.37.0}/google/pubsub_v1/services/schema_service/transports/rest.py +6 -0
- {google_cloud_pubsub-2.36.0 → google_cloud_pubsub-2.37.0}/google/pubsub_v1/services/subscriber/async_client.py +34 -16
- {google_cloud_pubsub-2.36.0 → google_cloud_pubsub-2.37.0}/google/pubsub_v1/services/subscriber/client.py +42 -20
- {google_cloud_pubsub-2.36.0 → google_cloud_pubsub-2.37.0}/google/pubsub_v1/services/subscriber/transports/base.py +6 -0
- {google_cloud_pubsub-2.36.0 → google_cloud_pubsub-2.37.0}/google/pubsub_v1/services/subscriber/transports/grpc.py +6 -2
- {google_cloud_pubsub-2.36.0 → google_cloud_pubsub-2.37.0}/google/pubsub_v1/services/subscriber/transports/grpc_asyncio.py +6 -2
- {google_cloud_pubsub-2.36.0 → google_cloud_pubsub-2.37.0}/google/pubsub_v1/services/subscriber/transports/rest.py +6 -0
- {google_cloud_pubsub-2.36.0 → google_cloud_pubsub-2.37.0}/google/pubsub_v1/types/pubsub.py +1 -1
- {google_cloud_pubsub-2.36.0 → google_cloud_pubsub-2.37.0/google_cloud_pubsub.egg-info}/PKG-INFO +16 -9
- {google_cloud_pubsub-2.36.0 → google_cloud_pubsub-2.37.0}/google_cloud_pubsub.egg-info/requires.txt +2 -2
- {google_cloud_pubsub-2.36.0 → google_cloud_pubsub-2.37.0}/setup.py +2 -3
- {google_cloud_pubsub-2.36.0 → google_cloud_pubsub-2.37.0}/tests/unit/gapic/pubsub_v1/test_publisher.py +286 -138
- {google_cloud_pubsub-2.36.0 → google_cloud_pubsub-2.37.0}/tests/unit/gapic/pubsub_v1/test_schema_service.py +311 -152
- {google_cloud_pubsub-2.36.0 → google_cloud_pubsub-2.37.0}/tests/unit/gapic/pubsub_v1/test_subscriber.py +356 -199
- {google_cloud_pubsub-2.36.0 → google_cloud_pubsub-2.37.0}/tests/unit/pubsub_v1/subscriber/test_subscriber_client.py +14 -8
- {google_cloud_pubsub-2.36.0 → google_cloud_pubsub-2.37.0}/LICENSE +0 -0
- {google_cloud_pubsub-2.36.0 → google_cloud_pubsub-2.37.0}/MANIFEST.in +0 -0
- {google_cloud_pubsub-2.36.0 → google_cloud_pubsub-2.37.0}/google/cloud/pubsub/__init__.py +0 -0
- {google_cloud_pubsub-2.36.0 → google_cloud_pubsub-2.37.0}/google/cloud/pubsub_v1/__init__.py +0 -0
- {google_cloud_pubsub-2.36.0 → google_cloud_pubsub-2.37.0}/google/cloud/pubsub_v1/exceptions.py +0 -0
- {google_cloud_pubsub-2.36.0 → google_cloud_pubsub-2.37.0}/google/cloud/pubsub_v1/futures.py +0 -0
- {google_cloud_pubsub-2.36.0 → google_cloud_pubsub-2.37.0}/google/cloud/pubsub_v1/open_telemetry/__init__.py +0 -0
- {google_cloud_pubsub-2.36.0 → google_cloud_pubsub-2.37.0}/google/cloud/pubsub_v1/open_telemetry/context_propagation.py +0 -0
- {google_cloud_pubsub-2.36.0 → google_cloud_pubsub-2.37.0}/google/cloud/pubsub_v1/open_telemetry/subscribe_opentelemetry.py +0 -0
- {google_cloud_pubsub-2.36.0 → google_cloud_pubsub-2.37.0}/google/cloud/pubsub_v1/proto/pubsub.proto +0 -0
- {google_cloud_pubsub-2.36.0 → google_cloud_pubsub-2.37.0}/google/cloud/pubsub_v1/proto/schema.proto +0 -0
- {google_cloud_pubsub-2.36.0 → google_cloud_pubsub-2.37.0}/google/cloud/pubsub_v1/publisher/__init__.py +0 -0
- {google_cloud_pubsub-2.36.0 → google_cloud_pubsub-2.37.0}/google/cloud/pubsub_v1/publisher/_batch/__init__.py +0 -0
- {google_cloud_pubsub-2.36.0 → google_cloud_pubsub-2.37.0}/google/cloud/pubsub_v1/publisher/_batch/base.py +0 -0
- {google_cloud_pubsub-2.36.0 → google_cloud_pubsub-2.37.0}/google/cloud/pubsub_v1/publisher/_batch/thread.py +0 -0
- {google_cloud_pubsub-2.36.0 → google_cloud_pubsub-2.37.0}/google/cloud/pubsub_v1/publisher/_sequencer/__init__.py +0 -0
- {google_cloud_pubsub-2.36.0 → google_cloud_pubsub-2.37.0}/google/cloud/pubsub_v1/publisher/_sequencer/base.py +0 -0
- {google_cloud_pubsub-2.36.0 → google_cloud_pubsub-2.37.0}/google/cloud/pubsub_v1/publisher/_sequencer/ordered_sequencer.py +0 -0
- {google_cloud_pubsub-2.36.0 → google_cloud_pubsub-2.37.0}/google/cloud/pubsub_v1/publisher/_sequencer/unordered_sequencer.py +0 -0
- {google_cloud_pubsub-2.36.0 → google_cloud_pubsub-2.37.0}/google/cloud/pubsub_v1/publisher/client.py +0 -0
- {google_cloud_pubsub-2.36.0 → google_cloud_pubsub-2.37.0}/google/cloud/pubsub_v1/publisher/exceptions.py +0 -0
- {google_cloud_pubsub-2.36.0 → google_cloud_pubsub-2.37.0}/google/cloud/pubsub_v1/publisher/flow_controller.py +0 -0
- {google_cloud_pubsub-2.36.0 → google_cloud_pubsub-2.37.0}/google/cloud/pubsub_v1/publisher/futures.py +0 -0
- {google_cloud_pubsub-2.36.0 → google_cloud_pubsub-2.37.0}/google/cloud/pubsub_v1/subscriber/__init__.py +0 -0
- {google_cloud_pubsub-2.36.0 → google_cloud_pubsub-2.37.0}/google/cloud/pubsub_v1/subscriber/_protocol/__init__.py +0 -0
- {google_cloud_pubsub-2.36.0 → google_cloud_pubsub-2.37.0}/google/cloud/pubsub_v1/subscriber/_protocol/dispatcher.py +0 -0
- {google_cloud_pubsub-2.36.0 → google_cloud_pubsub-2.37.0}/google/cloud/pubsub_v1/subscriber/_protocol/heartbeater.py +0 -0
- {google_cloud_pubsub-2.36.0 → google_cloud_pubsub-2.37.0}/google/cloud/pubsub_v1/subscriber/_protocol/helper_threads.py +0 -0
- {google_cloud_pubsub-2.36.0 → google_cloud_pubsub-2.37.0}/google/cloud/pubsub_v1/subscriber/_protocol/histogram.py +0 -0
- {google_cloud_pubsub-2.36.0 → google_cloud_pubsub-2.37.0}/google/cloud/pubsub_v1/subscriber/_protocol/leaser.py +0 -0
- {google_cloud_pubsub-2.36.0 → google_cloud_pubsub-2.37.0}/google/cloud/pubsub_v1/subscriber/_protocol/messages_on_hold.py +0 -0
- {google_cloud_pubsub-2.36.0 → google_cloud_pubsub-2.37.0}/google/cloud/pubsub_v1/subscriber/_protocol/requests.py +0 -0
- {google_cloud_pubsub-2.36.0 → google_cloud_pubsub-2.37.0}/google/cloud/pubsub_v1/subscriber/_protocol/streaming_pull_manager.py +0 -0
- {google_cloud_pubsub-2.36.0 → google_cloud_pubsub-2.37.0}/google/cloud/pubsub_v1/subscriber/client.py +0 -0
- {google_cloud_pubsub-2.36.0 → google_cloud_pubsub-2.37.0}/google/cloud/pubsub_v1/subscriber/exceptions.py +0 -0
- {google_cloud_pubsub-2.36.0 → google_cloud_pubsub-2.37.0}/google/cloud/pubsub_v1/subscriber/futures.py +0 -0
- {google_cloud_pubsub-2.36.0 → google_cloud_pubsub-2.37.0}/google/cloud/pubsub_v1/subscriber/message.py +0 -0
- {google_cloud_pubsub-2.36.0 → google_cloud_pubsub-2.37.0}/google/cloud/pubsub_v1/subscriber/scheduler.py +0 -0
- {google_cloud_pubsub-2.36.0 → google_cloud_pubsub-2.37.0}/google/cloud/pubsub_v1/types.py +0 -0
- {google_cloud_pubsub-2.36.0 → google_cloud_pubsub-2.37.0}/google/pubsub/__init__.py +0 -0
- {google_cloud_pubsub-2.36.0 → google_cloud_pubsub-2.37.0}/google/pubsub/py.typed +0 -0
- {google_cloud_pubsub-2.36.0 → google_cloud_pubsub-2.37.0}/google/pubsub_v1/__init__.py +0 -0
- {google_cloud_pubsub-2.36.0 → google_cloud_pubsub-2.37.0}/google/pubsub_v1/gapic_metadata.json +0 -0
- {google_cloud_pubsub-2.36.0 → google_cloud_pubsub-2.37.0}/google/pubsub_v1/py.typed +0 -0
- {google_cloud_pubsub-2.36.0 → google_cloud_pubsub-2.37.0}/google/pubsub_v1/services/__init__.py +0 -0
- {google_cloud_pubsub-2.36.0 → google_cloud_pubsub-2.37.0}/google/pubsub_v1/services/publisher/__init__.py +0 -0
- {google_cloud_pubsub-2.36.0 → google_cloud_pubsub-2.37.0}/google/pubsub_v1/services/publisher/pagers.py +0 -0
- {google_cloud_pubsub-2.36.0 → google_cloud_pubsub-2.37.0}/google/pubsub_v1/services/publisher/transports/__init__.py +0 -0
- {google_cloud_pubsub-2.36.0 → google_cloud_pubsub-2.37.0}/google/pubsub_v1/services/publisher/transports/rest_base.py +0 -0
- {google_cloud_pubsub-2.36.0 → google_cloud_pubsub-2.37.0}/google/pubsub_v1/services/schema_service/__init__.py +0 -0
- {google_cloud_pubsub-2.36.0 → google_cloud_pubsub-2.37.0}/google/pubsub_v1/services/schema_service/pagers.py +0 -0
- {google_cloud_pubsub-2.36.0 → google_cloud_pubsub-2.37.0}/google/pubsub_v1/services/schema_service/transports/__init__.py +0 -0
- {google_cloud_pubsub-2.36.0 → google_cloud_pubsub-2.37.0}/google/pubsub_v1/services/schema_service/transports/rest_base.py +0 -0
- {google_cloud_pubsub-2.36.0 → google_cloud_pubsub-2.37.0}/google/pubsub_v1/services/subscriber/__init__.py +0 -0
- {google_cloud_pubsub-2.36.0 → google_cloud_pubsub-2.37.0}/google/pubsub_v1/services/subscriber/pagers.py +0 -0
- {google_cloud_pubsub-2.36.0 → google_cloud_pubsub-2.37.0}/google/pubsub_v1/services/subscriber/transports/__init__.py +0 -0
- {google_cloud_pubsub-2.36.0 → google_cloud_pubsub-2.37.0}/google/pubsub_v1/services/subscriber/transports/rest_base.py +0 -0
- {google_cloud_pubsub-2.36.0 → google_cloud_pubsub-2.37.0}/google/pubsub_v1/types/__init__.py +0 -0
- {google_cloud_pubsub-2.36.0 → google_cloud_pubsub-2.37.0}/google/pubsub_v1/types/schema.py +0 -0
- {google_cloud_pubsub-2.36.0 → google_cloud_pubsub-2.37.0}/google_cloud_pubsub.egg-info/SOURCES.txt +0 -0
- {google_cloud_pubsub-2.36.0 → google_cloud_pubsub-2.37.0}/google_cloud_pubsub.egg-info/dependency_links.txt +0 -0
- {google_cloud_pubsub-2.36.0 → google_cloud_pubsub-2.37.0}/google_cloud_pubsub.egg-info/not-zip-safe +0 -0
- {google_cloud_pubsub-2.36.0 → google_cloud_pubsub-2.37.0}/google_cloud_pubsub.egg-info/top_level.txt +0 -0
- {google_cloud_pubsub-2.36.0 → google_cloud_pubsub-2.37.0}/setup.cfg +0 -0
- {google_cloud_pubsub-2.36.0 → google_cloud_pubsub-2.37.0}/tests/__init__.py +0 -0
- {google_cloud_pubsub-2.36.0 → google_cloud_pubsub-2.37.0}/tests/system.py +0 -0
- {google_cloud_pubsub-2.36.0 → google_cloud_pubsub-2.37.0}/tests/unit/__init__.py +0 -0
- {google_cloud_pubsub-2.36.0 → google_cloud_pubsub-2.37.0}/tests/unit/gapic/__init__.py +0 -0
- {google_cloud_pubsub-2.36.0 → google_cloud_pubsub-2.37.0}/tests/unit/gapic/pubsub_v1/__init__.py +0 -0
- {google_cloud_pubsub-2.36.0 → google_cloud_pubsub-2.37.0}/tests/unit/pubsub_v1/conftest.py +0 -0
- {google_cloud_pubsub-2.36.0 → google_cloud_pubsub-2.37.0}/tests/unit/pubsub_v1/publisher/batch/test_base.py +0 -0
- {google_cloud_pubsub-2.36.0 → google_cloud_pubsub-2.37.0}/tests/unit/pubsub_v1/publisher/batch/test_thread.py +0 -0
- {google_cloud_pubsub-2.36.0 → google_cloud_pubsub-2.37.0}/tests/unit/pubsub_v1/publisher/sequencer/test_ordered_sequencer.py +0 -0
- {google_cloud_pubsub-2.36.0 → google_cloud_pubsub-2.37.0}/tests/unit/pubsub_v1/publisher/sequencer/test_unordered_sequencer.py +0 -0
- {google_cloud_pubsub-2.36.0 → google_cloud_pubsub-2.37.0}/tests/unit/pubsub_v1/publisher/test_flow_controller.py +0 -0
- {google_cloud_pubsub-2.36.0 → google_cloud_pubsub-2.37.0}/tests/unit/pubsub_v1/publisher/test_futures_publisher.py +0 -0
- {google_cloud_pubsub-2.36.0 → google_cloud_pubsub-2.37.0}/tests/unit/pubsub_v1/publisher/test_publish_message_wrapper.py +0 -0
- {google_cloud_pubsub-2.36.0 → google_cloud_pubsub-2.37.0}/tests/unit/pubsub_v1/publisher/test_publisher_client.py +0 -0
- {google_cloud_pubsub-2.36.0 → google_cloud_pubsub-2.37.0}/tests/unit/pubsub_v1/subscriber/test_dispatcher.py +0 -0
- {google_cloud_pubsub-2.36.0 → google_cloud_pubsub-2.37.0}/tests/unit/pubsub_v1/subscriber/test_futures_subscriber.py +0 -0
- {google_cloud_pubsub-2.36.0 → google_cloud_pubsub-2.37.0}/tests/unit/pubsub_v1/subscriber/test_heartbeater.py +0 -0
- {google_cloud_pubsub-2.36.0 → google_cloud_pubsub-2.37.0}/tests/unit/pubsub_v1/subscriber/test_helper_threads.py +0 -0
- {google_cloud_pubsub-2.36.0 → google_cloud_pubsub-2.37.0}/tests/unit/pubsub_v1/subscriber/test_histogram.py +0 -0
- {google_cloud_pubsub-2.36.0 → google_cloud_pubsub-2.37.0}/tests/unit/pubsub_v1/subscriber/test_leaser.py +0 -0
- {google_cloud_pubsub-2.36.0 → google_cloud_pubsub-2.37.0}/tests/unit/pubsub_v1/subscriber/test_message.py +0 -0
- {google_cloud_pubsub-2.36.0 → google_cloud_pubsub-2.37.0}/tests/unit/pubsub_v1/subscriber/test_messages_on_hold.py +0 -0
- {google_cloud_pubsub-2.36.0 → google_cloud_pubsub-2.37.0}/tests/unit/pubsub_v1/subscriber/test_scheduler.py +0 -0
- {google_cloud_pubsub-2.36.0 → google_cloud_pubsub-2.37.0}/tests/unit/pubsub_v1/subscriber/test_streaming_pull_manager.py +0 -0
- {google_cloud_pubsub-2.36.0 → google_cloud_pubsub-2.37.0}/tests/unit/pubsub_v1/subscriber/test_subscribe_opentelemetry.py +0 -0
- {google_cloud_pubsub-2.36.0 → google_cloud_pubsub-2.37.0}/tests/unit/pubsub_v1/test_futures.py +0 -0
- {google_cloud_pubsub-2.36.0 → google_cloud_pubsub-2.37.0}/tests/unit/test_packaging.py +0 -0
- {google_cloud_pubsub-2.36.0 → google_cloud_pubsub-2.37.0}/tests/unit/test_pubsub.py +0 -0
{google_cloud_pubsub-2.36.0/google_cloud_pubsub.egg-info → google_cloud_pubsub-2.37.0}/PKG-INFO
RENAMED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: google-cloud-pubsub
|
|
3
|
-
Version: 2.
|
|
3
|
+
Version: 2.37.0
|
|
4
4
|
Summary: Google Cloud Pub/Sub API client library
|
|
5
5
|
Home-page: https://github.com/googleapis/google-cloud-python/tree/main/packages/google-cloud-pubsub
|
|
6
6
|
Author: Google LLC
|
|
@@ -22,12 +22,12 @@ Classifier: Operating System :: OS Independent
|
|
|
22
22
|
Classifier: Topic :: Internet
|
|
23
23
|
Requires-Python: >=3.9
|
|
24
24
|
License-File: LICENSE
|
|
25
|
-
Requires-Dist: google-api-core[grpc]
|
|
25
|
+
Requires-Dist: google-api-core[grpc]<3.0.0,>=2.11.0
|
|
26
26
|
Requires-Dist: google-auth!=2.24.0,!=2.25.0,<3.0.0,>=2.14.1
|
|
27
27
|
Requires-Dist: grpcio<2.0.0,>=1.51.3; python_version < "3.14"
|
|
28
28
|
Requires-Dist: proto-plus<2.0.0,>=1.22.3
|
|
29
29
|
Requires-Dist: proto-plus<2.0.0,>=1.25.0; python_version >= "3.13"
|
|
30
|
-
Requires-Dist: protobuf
|
|
30
|
+
Requires-Dist: protobuf<8.0.0,>=4.25.8
|
|
31
31
|
Requires-Dist: grpc-google-iam-v1<1.0.0,>=0.14.0
|
|
32
32
|
Requires-Dist: grpcio-status>=1.33.2
|
|
33
33
|
Requires-Dist: opentelemetry-api>=1.27.0
|
|
@@ -118,15 +118,22 @@ Code samples and snippets live in the `samples/`_ folder.
|
|
|
118
118
|
|
|
119
119
|
Supported Python Versions
|
|
120
120
|
^^^^^^^^^^^^^^^^^^^^^^^^^
|
|
121
|
-
|
|
121
|
+
Our client libraries are compatible with all current `active`_ and `maintenance`_ versions of
|
|
122
|
+
Python.
|
|
122
123
|
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
124
|
+
Python >= 3.9, including 3.14
|
|
125
|
+
|
|
126
|
+
.. _active: https://devguide.python.org/devcycle/#in-development-main-branch
|
|
127
|
+
.. _maintenance: https://devguide.python.org/devcycle/#maintenance-branches
|
|
128
|
+
|
|
129
|
+
Unsupported Python Versions
|
|
130
|
+
^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
|
131
|
+
Python <= 3.8
|
|
126
132
|
|
|
127
|
-
|
|
133
|
+
If you are using an `end-of-life`_
|
|
134
|
+
version of Python, we recommend that you update as soon as possible to an actively supported version.
|
|
128
135
|
|
|
129
|
-
|
|
136
|
+
.. _end-of-life: https://devguide.python.org/devcycle/#end-of-life-branches
|
|
130
137
|
|
|
131
138
|
Mac/Linux
|
|
132
139
|
^^^^^^^^^
|
|
@@ -69,15 +69,22 @@ Code samples and snippets live in the `samples/`_ folder.
|
|
|
69
69
|
|
|
70
70
|
Supported Python Versions
|
|
71
71
|
^^^^^^^^^^^^^^^^^^^^^^^^^
|
|
72
|
-
|
|
72
|
+
Our client libraries are compatible with all current `active`_ and `maintenance`_ versions of
|
|
73
|
+
Python.
|
|
73
74
|
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
75
|
+
Python >= 3.9, including 3.14
|
|
76
|
+
|
|
77
|
+
.. _active: https://devguide.python.org/devcycle/#in-development-main-branch
|
|
78
|
+
.. _maintenance: https://devguide.python.org/devcycle/#maintenance-branches
|
|
79
|
+
|
|
80
|
+
Unsupported Python Versions
|
|
81
|
+
^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
|
82
|
+
Python <= 3.8
|
|
77
83
|
|
|
78
|
-
|
|
84
|
+
If you are using an `end-of-life`_
|
|
85
|
+
version of Python, we recommend that you update as soon as possible to an actively supported version.
|
|
79
86
|
|
|
80
|
-
|
|
87
|
+
.. _end-of-life: https://devguide.python.org/devcycle/#end-of-life-branches
|
|
81
88
|
|
|
82
89
|
Mac/Linux
|
|
83
90
|
^^^^^^^^^
|
|
@@ -62,22 +62,24 @@ class PublishMessageWrapper:
|
|
|
62
62
|
tracer = trace.get_tracer(self._OPEN_TELEMETRY_TRACER_NAME)
|
|
63
63
|
assert len(topic.split("/")) == 4
|
|
64
64
|
topic_short_name = topic.split("/")[3]
|
|
65
|
-
with
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
65
|
+
with (
|
|
66
|
+
tracer.start_as_current_span(
|
|
67
|
+
name=f"{topic_short_name} create",
|
|
68
|
+
attributes={
|
|
69
|
+
"messaging.system": self._OPEN_TELEMETRY_MESSAGING_SYSTEM,
|
|
70
|
+
"messaging.destination.name": topic_short_name,
|
|
71
|
+
"code.function": "publish",
|
|
72
|
+
"messaging.gcp_pubsub.message.ordering_key": ordering_key,
|
|
73
|
+
"messaging.operation": "create",
|
|
74
|
+
"gcp.project_id": topic.split("/")[1],
|
|
75
|
+
"messaging.message.body.size": sys.getsizeof(
|
|
76
|
+
self._message.data
|
|
77
|
+
), # sys.getsizeof() used since the attribute expects size of message body in bytes
|
|
78
|
+
},
|
|
79
|
+
kind=trace.SpanKind.PRODUCER,
|
|
80
|
+
end_on_exit=False,
|
|
81
|
+
) as create_span
|
|
82
|
+
):
|
|
81
83
|
create_span.add_event(
|
|
82
84
|
name=self._PUBLISH_START_EVENT,
|
|
83
85
|
attributes={
|
|
@@ -196,7 +196,7 @@ class PublisherAsyncClient:
|
|
|
196
196
|
return self._client.transport
|
|
197
197
|
|
|
198
198
|
@property
|
|
199
|
-
def api_endpoint(self):
|
|
199
|
+
def api_endpoint(self) -> str:
|
|
200
200
|
"""Return the API endpoint used by the client instance.
|
|
201
201
|
|
|
202
202
|
Returns:
|
|
@@ -1358,7 +1358,7 @@ class PublisherAsyncClient:
|
|
|
1358
1358
|
|
|
1359
1359
|
async def set_iam_policy(
|
|
1360
1360
|
self,
|
|
1361
|
-
request: Optional[iam_policy_pb2.SetIamPolicyRequest] = None,
|
|
1361
|
+
request: Optional[Union[iam_policy_pb2.SetIamPolicyRequest, dict]] = None,
|
|
1362
1362
|
*,
|
|
1363
1363
|
retry: OptionalRetry = gapic_v1.method.DEFAULT,
|
|
1364
1364
|
timeout: TimeoutType = gapic_v1.method.DEFAULT,
|
|
@@ -1451,8 +1451,12 @@ class PublisherAsyncClient:
|
|
|
1451
1451
|
|
|
1452
1452
|
# The request isn't a proto-plus wrapped type,
|
|
1453
1453
|
# so it must be constructed via keyword expansion.
|
|
1454
|
-
if
|
|
1455
|
-
|
|
1454
|
+
if request is None:
|
|
1455
|
+
request_pb = iam_policy_pb2.SetIamPolicyRequest()
|
|
1456
|
+
elif isinstance(request, dict):
|
|
1457
|
+
request_pb = iam_policy_pb2.SetIamPolicyRequest(**request)
|
|
1458
|
+
else:
|
|
1459
|
+
request_pb = request
|
|
1456
1460
|
|
|
1457
1461
|
# Wrap the RPC method; this adds retry and timeout information,
|
|
1458
1462
|
# and friendly error handling.
|
|
@@ -1461,7 +1465,9 @@ class PublisherAsyncClient:
|
|
|
1461
1465
|
# Certain fields should be provided within the metadata header;
|
|
1462
1466
|
# add these here.
|
|
1463
1467
|
metadata = tuple(metadata) + (
|
|
1464
|
-
gapic_v1.routing_header.to_grpc_metadata(
|
|
1468
|
+
gapic_v1.routing_header.to_grpc_metadata(
|
|
1469
|
+
(("resource", request_pb.resource),)
|
|
1470
|
+
),
|
|
1465
1471
|
)
|
|
1466
1472
|
|
|
1467
1473
|
# Validate the universe domain.
|
|
@@ -1469,7 +1475,7 @@ class PublisherAsyncClient:
|
|
|
1469
1475
|
|
|
1470
1476
|
# Send the request.
|
|
1471
1477
|
response = await rpc(
|
|
1472
|
-
|
|
1478
|
+
request_pb,
|
|
1473
1479
|
retry=retry,
|
|
1474
1480
|
timeout=timeout,
|
|
1475
1481
|
metadata=metadata,
|
|
@@ -1480,7 +1486,7 @@ class PublisherAsyncClient:
|
|
|
1480
1486
|
|
|
1481
1487
|
async def get_iam_policy(
|
|
1482
1488
|
self,
|
|
1483
|
-
request: Optional[iam_policy_pb2.GetIamPolicyRequest] = None,
|
|
1489
|
+
request: Optional[Union[iam_policy_pb2.GetIamPolicyRequest, dict]] = None,
|
|
1484
1490
|
*,
|
|
1485
1491
|
retry: OptionalRetry = gapic_v1.method.DEFAULT,
|
|
1486
1492
|
timeout: TimeoutType = gapic_v1.method.DEFAULT,
|
|
@@ -1574,8 +1580,12 @@ class PublisherAsyncClient:
|
|
|
1574
1580
|
|
|
1575
1581
|
# The request isn't a proto-plus wrapped type,
|
|
1576
1582
|
# so it must be constructed via keyword expansion.
|
|
1577
|
-
if
|
|
1578
|
-
|
|
1583
|
+
if request is None:
|
|
1584
|
+
request_pb = iam_policy_pb2.GetIamPolicyRequest()
|
|
1585
|
+
elif isinstance(request, dict):
|
|
1586
|
+
request_pb = iam_policy_pb2.GetIamPolicyRequest(**request)
|
|
1587
|
+
else:
|
|
1588
|
+
request_pb = request
|
|
1579
1589
|
|
|
1580
1590
|
# Wrap the RPC method; this adds retry and timeout information,
|
|
1581
1591
|
# and friendly error handling.
|
|
@@ -1584,7 +1594,9 @@ class PublisherAsyncClient:
|
|
|
1584
1594
|
# Certain fields should be provided within the metadata header;
|
|
1585
1595
|
# add these here.
|
|
1586
1596
|
metadata = tuple(metadata) + (
|
|
1587
|
-
gapic_v1.routing_header.to_grpc_metadata(
|
|
1597
|
+
gapic_v1.routing_header.to_grpc_metadata(
|
|
1598
|
+
(("resource", request_pb.resource),)
|
|
1599
|
+
),
|
|
1588
1600
|
)
|
|
1589
1601
|
|
|
1590
1602
|
# Validate the universe domain.
|
|
@@ -1592,7 +1604,7 @@ class PublisherAsyncClient:
|
|
|
1592
1604
|
|
|
1593
1605
|
# Send the request.
|
|
1594
1606
|
response = await rpc(
|
|
1595
|
-
|
|
1607
|
+
request_pb,
|
|
1596
1608
|
retry=retry,
|
|
1597
1609
|
timeout=timeout,
|
|
1598
1610
|
metadata=metadata,
|
|
@@ -1603,7 +1615,7 @@ class PublisherAsyncClient:
|
|
|
1603
1615
|
|
|
1604
1616
|
async def test_iam_permissions(
|
|
1605
1617
|
self,
|
|
1606
|
-
request: Optional[iam_policy_pb2.TestIamPermissionsRequest] = None,
|
|
1618
|
+
request: Optional[Union[iam_policy_pb2.TestIamPermissionsRequest, dict]] = None,
|
|
1607
1619
|
*,
|
|
1608
1620
|
retry: OptionalRetry = gapic_v1.method.DEFAULT,
|
|
1609
1621
|
timeout: TimeoutType = gapic_v1.method.DEFAULT,
|
|
@@ -1635,8 +1647,12 @@ class PublisherAsyncClient:
|
|
|
1635
1647
|
|
|
1636
1648
|
# The request isn't a proto-plus wrapped type,
|
|
1637
1649
|
# so it must be constructed via keyword expansion.
|
|
1638
|
-
if
|
|
1639
|
-
|
|
1650
|
+
if request is None:
|
|
1651
|
+
request_pb = iam_policy_pb2.TestIamPermissionsRequest()
|
|
1652
|
+
elif isinstance(request, dict):
|
|
1653
|
+
request_pb = iam_policy_pb2.TestIamPermissionsRequest(**request)
|
|
1654
|
+
else:
|
|
1655
|
+
request_pb = request
|
|
1640
1656
|
|
|
1641
1657
|
# Wrap the RPC method; this adds retry and timeout information,
|
|
1642
1658
|
# and friendly error handling.
|
|
@@ -1647,7 +1663,9 @@ class PublisherAsyncClient:
|
|
|
1647
1663
|
# Certain fields should be provided within the metadata header;
|
|
1648
1664
|
# add these here.
|
|
1649
1665
|
metadata = tuple(metadata) + (
|
|
1650
|
-
gapic_v1.routing_header.to_grpc_metadata(
|
|
1666
|
+
gapic_v1.routing_header.to_grpc_metadata(
|
|
1667
|
+
(("resource", request_pb.resource),)
|
|
1668
|
+
),
|
|
1651
1669
|
)
|
|
1652
1670
|
|
|
1653
1671
|
# Validate the universe domain.
|
|
@@ -1655,7 +1673,7 @@ class PublisherAsyncClient:
|
|
|
1655
1673
|
|
|
1656
1674
|
# Send the request.
|
|
1657
1675
|
response = await rpc(
|
|
1658
|
-
|
|
1676
|
+
request_pb,
|
|
1659
1677
|
retry=retry,
|
|
1660
1678
|
timeout=timeout,
|
|
1661
1679
|
metadata=metadata,
|
|
@@ -120,7 +120,7 @@ class PublisherClient(metaclass=PublisherClientMeta):
|
|
|
120
120
|
"""
|
|
121
121
|
|
|
122
122
|
@staticmethod
|
|
123
|
-
def _get_default_mtls_endpoint(api_endpoint):
|
|
123
|
+
def _get_default_mtls_endpoint(api_endpoint) -> Optional[str]:
|
|
124
124
|
"""Converts api endpoint to mTLS endpoint.
|
|
125
125
|
|
|
126
126
|
Convert "*.sandbox.googleapis.com" and "*.googleapis.com" to
|
|
@@ -128,7 +128,7 @@ class PublisherClient(metaclass=PublisherClientMeta):
|
|
|
128
128
|
Args:
|
|
129
129
|
api_endpoint (Optional[str]): the api endpoint to convert.
|
|
130
130
|
Returns:
|
|
131
|
-
str: converted mTLS api endpoint.
|
|
131
|
+
Optional[str]: converted mTLS api endpoint.
|
|
132
132
|
"""
|
|
133
133
|
if not api_endpoint:
|
|
134
134
|
return api_endpoint
|
|
@@ -138,6 +138,10 @@ class PublisherClient(metaclass=PublisherClientMeta):
|
|
|
138
138
|
)
|
|
139
139
|
|
|
140
140
|
m = mtls_endpoint_re.match(api_endpoint)
|
|
141
|
+
if m is None:
|
|
142
|
+
# Could not parse api_endpoint; return as-is.
|
|
143
|
+
return api_endpoint
|
|
144
|
+
|
|
141
145
|
name, mtls, sandbox, googledomain = m.groups()
|
|
142
146
|
if mtls or not googledomain:
|
|
143
147
|
return api_endpoint
|
|
@@ -523,7 +527,7 @@ class PublisherClient(metaclass=PublisherClientMeta):
|
|
|
523
527
|
@staticmethod
|
|
524
528
|
def _get_api_endpoint(
|
|
525
529
|
api_override, client_cert_source, universe_domain, use_mtls_endpoint
|
|
526
|
-
):
|
|
530
|
+
) -> str:
|
|
527
531
|
"""Return the API endpoint used by the client.
|
|
528
532
|
|
|
529
533
|
Args:
|
|
@@ -620,7 +624,7 @@ class PublisherClient(metaclass=PublisherClientMeta):
|
|
|
620
624
|
error._details.append(json.dumps(cred_info))
|
|
621
625
|
|
|
622
626
|
@property
|
|
623
|
-
def api_endpoint(self):
|
|
627
|
+
def api_endpoint(self) -> str:
|
|
624
628
|
"""Return the API endpoint used by the client instance.
|
|
625
629
|
|
|
626
630
|
Returns:
|
|
@@ -716,7 +720,7 @@ class PublisherClient(metaclass=PublisherClientMeta):
|
|
|
716
720
|
self._universe_domain = PublisherClient._get_universe_domain(
|
|
717
721
|
universe_domain_opt, self._universe_domain_env
|
|
718
722
|
)
|
|
719
|
-
self._api_endpoint =
|
|
723
|
+
self._api_endpoint: str = "" # updated below, depending on `transport`
|
|
720
724
|
|
|
721
725
|
# Initialize the universe domain validation.
|
|
722
726
|
self._is_universe_domain_valid = False
|
|
@@ -1859,7 +1863,7 @@ class PublisherClient(metaclass=PublisherClientMeta):
|
|
|
1859
1863
|
|
|
1860
1864
|
def set_iam_policy(
|
|
1861
1865
|
self,
|
|
1862
|
-
request: Optional[iam_policy_pb2.SetIamPolicyRequest] = None,
|
|
1866
|
+
request: Optional[Union[iam_policy_pb2.SetIamPolicyRequest, dict]] = None,
|
|
1863
1867
|
*,
|
|
1864
1868
|
retry: OptionalRetry = gapic_v1.method.DEFAULT,
|
|
1865
1869
|
timeout: TimeoutType = gapic_v1.method.DEFAULT,
|
|
@@ -1952,8 +1956,12 @@ class PublisherClient(metaclass=PublisherClientMeta):
|
|
|
1952
1956
|
|
|
1953
1957
|
# The request isn't a proto-plus wrapped type,
|
|
1954
1958
|
# so it must be constructed via keyword expansion.
|
|
1955
|
-
if
|
|
1956
|
-
|
|
1959
|
+
if request is None:
|
|
1960
|
+
request_pb = iam_policy_pb2.SetIamPolicyRequest()
|
|
1961
|
+
elif isinstance(request, dict):
|
|
1962
|
+
request_pb = iam_policy_pb2.SetIamPolicyRequest(**request)
|
|
1963
|
+
else:
|
|
1964
|
+
request_pb = request
|
|
1957
1965
|
|
|
1958
1966
|
# Wrap the RPC method; this adds retry and timeout information,
|
|
1959
1967
|
# and friendly error handling.
|
|
@@ -1962,7 +1970,9 @@ class PublisherClient(metaclass=PublisherClientMeta):
|
|
|
1962
1970
|
# Certain fields should be provided within the metadata header;
|
|
1963
1971
|
# add these here.
|
|
1964
1972
|
metadata = tuple(metadata) + (
|
|
1965
|
-
gapic_v1.routing_header.to_grpc_metadata(
|
|
1973
|
+
gapic_v1.routing_header.to_grpc_metadata(
|
|
1974
|
+
(("resource", request_pb.resource),)
|
|
1975
|
+
),
|
|
1966
1976
|
)
|
|
1967
1977
|
|
|
1968
1978
|
# Validate the universe domain.
|
|
@@ -1971,7 +1981,7 @@ class PublisherClient(metaclass=PublisherClientMeta):
|
|
|
1971
1981
|
try:
|
|
1972
1982
|
# Send the request.
|
|
1973
1983
|
response = rpc(
|
|
1974
|
-
|
|
1984
|
+
request_pb,
|
|
1975
1985
|
retry=retry,
|
|
1976
1986
|
timeout=timeout,
|
|
1977
1987
|
metadata=metadata,
|
|
@@ -1985,7 +1995,7 @@ class PublisherClient(metaclass=PublisherClientMeta):
|
|
|
1985
1995
|
|
|
1986
1996
|
def get_iam_policy(
|
|
1987
1997
|
self,
|
|
1988
|
-
request: Optional[iam_policy_pb2.GetIamPolicyRequest] = None,
|
|
1998
|
+
request: Optional[Union[iam_policy_pb2.GetIamPolicyRequest, dict]] = None,
|
|
1989
1999
|
*,
|
|
1990
2000
|
retry: OptionalRetry = gapic_v1.method.DEFAULT,
|
|
1991
2001
|
timeout: TimeoutType = gapic_v1.method.DEFAULT,
|
|
@@ -2079,8 +2089,12 @@ class PublisherClient(metaclass=PublisherClientMeta):
|
|
|
2079
2089
|
|
|
2080
2090
|
# The request isn't a proto-plus wrapped type,
|
|
2081
2091
|
# so it must be constructed via keyword expansion.
|
|
2082
|
-
if
|
|
2083
|
-
|
|
2092
|
+
if request is None:
|
|
2093
|
+
request_pb = iam_policy_pb2.GetIamPolicyRequest()
|
|
2094
|
+
elif isinstance(request, dict):
|
|
2095
|
+
request_pb = iam_policy_pb2.GetIamPolicyRequest(**request)
|
|
2096
|
+
else:
|
|
2097
|
+
request_pb = request
|
|
2084
2098
|
|
|
2085
2099
|
# Wrap the RPC method; this adds retry and timeout information,
|
|
2086
2100
|
# and friendly error handling.
|
|
@@ -2089,7 +2103,9 @@ class PublisherClient(metaclass=PublisherClientMeta):
|
|
|
2089
2103
|
# Certain fields should be provided within the metadata header;
|
|
2090
2104
|
# add these here.
|
|
2091
2105
|
metadata = tuple(metadata) + (
|
|
2092
|
-
gapic_v1.routing_header.to_grpc_metadata(
|
|
2106
|
+
gapic_v1.routing_header.to_grpc_metadata(
|
|
2107
|
+
(("resource", request_pb.resource),)
|
|
2108
|
+
),
|
|
2093
2109
|
)
|
|
2094
2110
|
|
|
2095
2111
|
# Validate the universe domain.
|
|
@@ -2098,7 +2114,7 @@ class PublisherClient(metaclass=PublisherClientMeta):
|
|
|
2098
2114
|
try:
|
|
2099
2115
|
# Send the request.
|
|
2100
2116
|
response = rpc(
|
|
2101
|
-
|
|
2117
|
+
request_pb,
|
|
2102
2118
|
retry=retry,
|
|
2103
2119
|
timeout=timeout,
|
|
2104
2120
|
metadata=metadata,
|
|
@@ -2112,7 +2128,7 @@ class PublisherClient(metaclass=PublisherClientMeta):
|
|
|
2112
2128
|
|
|
2113
2129
|
def test_iam_permissions(
|
|
2114
2130
|
self,
|
|
2115
|
-
request: Optional[iam_policy_pb2.TestIamPermissionsRequest] = None,
|
|
2131
|
+
request: Optional[Union[iam_policy_pb2.TestIamPermissionsRequest, dict]] = None,
|
|
2116
2132
|
*,
|
|
2117
2133
|
retry: OptionalRetry = gapic_v1.method.DEFAULT,
|
|
2118
2134
|
timeout: TimeoutType = gapic_v1.method.DEFAULT,
|
|
@@ -2144,8 +2160,12 @@ class PublisherClient(metaclass=PublisherClientMeta):
|
|
|
2144
2160
|
|
|
2145
2161
|
# The request isn't a proto-plus wrapped type,
|
|
2146
2162
|
# so it must be constructed via keyword expansion.
|
|
2147
|
-
if
|
|
2148
|
-
|
|
2163
|
+
if request is None:
|
|
2164
|
+
request_pb = iam_policy_pb2.TestIamPermissionsRequest()
|
|
2165
|
+
elif isinstance(request, dict):
|
|
2166
|
+
request_pb = iam_policy_pb2.TestIamPermissionsRequest(**request)
|
|
2167
|
+
else:
|
|
2168
|
+
request_pb = request
|
|
2149
2169
|
|
|
2150
2170
|
# Wrap the RPC method; this adds retry and timeout information,
|
|
2151
2171
|
# and friendly error handling.
|
|
@@ -2154,7 +2174,9 @@ class PublisherClient(metaclass=PublisherClientMeta):
|
|
|
2154
2174
|
# Certain fields should be provided within the metadata header;
|
|
2155
2175
|
# add these here.
|
|
2156
2176
|
metadata = tuple(metadata) + (
|
|
2157
|
-
gapic_v1.routing_header.to_grpc_metadata(
|
|
2177
|
+
gapic_v1.routing_header.to_grpc_metadata(
|
|
2178
|
+
(("resource", request_pb.resource),)
|
|
2179
|
+
),
|
|
2158
2180
|
)
|
|
2159
2181
|
|
|
2160
2182
|
# Validate the universe domain.
|
|
@@ -2163,7 +2185,7 @@ class PublisherClient(metaclass=PublisherClientMeta):
|
|
|
2163
2185
|
try:
|
|
2164
2186
|
# Send the request.
|
|
2165
2187
|
response = rpc(
|
|
2166
|
-
|
|
2188
|
+
request_pb,
|
|
2167
2189
|
retry=retry,
|
|
2168
2190
|
timeout=timeout,
|
|
2169
2191
|
metadata=metadata,
|
|
@@ -88,6 +88,10 @@ class PublisherTransport(abc.ABC):
|
|
|
88
88
|
your own client library.
|
|
89
89
|
always_use_jwt_access (Optional[bool]): Whether self signed JWT should
|
|
90
90
|
be used for service account credentials.
|
|
91
|
+
api_audience (Optional[str]): The intended audience for the API calls
|
|
92
|
+
to the service that will be set when using certain 3rd party
|
|
93
|
+
authentication flows. Audience is typically a resource identifier.
|
|
94
|
+
If not set, the host value will be used as a default.
|
|
91
95
|
"""
|
|
92
96
|
|
|
93
97
|
# Save the scopes.
|
|
@@ -137,6 +141,8 @@ class PublisherTransport(abc.ABC):
|
|
|
137
141
|
host += ":443"
|
|
138
142
|
self._host = host
|
|
139
143
|
|
|
144
|
+
self._wrapped_methods: Dict[Callable, Callable] = {}
|
|
145
|
+
|
|
140
146
|
@property
|
|
141
147
|
def host(self):
|
|
142
148
|
return self._host
|
|
@@ -59,7 +59,7 @@ class _LoggingClientInterceptor(grpc.UnaryUnaryClientInterceptor): # pragma: NO
|
|
|
59
59
|
elif isinstance(request, google.protobuf.message.Message):
|
|
60
60
|
request_payload = MessageToJson(request)
|
|
61
61
|
else:
|
|
62
|
-
request_payload = f"{type(request).__name__}: {pickle.dumps(request)}"
|
|
62
|
+
request_payload = f"{type(request).__name__}: {pickle.dumps(request)!r}"
|
|
63
63
|
|
|
64
64
|
request_metadata = {
|
|
65
65
|
key: value.decode("utf-8") if isinstance(value, bytes) else value
|
|
@@ -94,7 +94,7 @@ class _LoggingClientInterceptor(grpc.UnaryUnaryClientInterceptor): # pragma: NO
|
|
|
94
94
|
elif isinstance(result, google.protobuf.message.Message):
|
|
95
95
|
response_payload = MessageToJson(result)
|
|
96
96
|
else:
|
|
97
|
-
response_payload = f"{type(result).__name__}: {pickle.dumps(result)}"
|
|
97
|
+
response_payload = f"{type(result).__name__}: {pickle.dumps(result)!r}"
|
|
98
98
|
grpc_response = {
|
|
99
99
|
"payload": response_payload,
|
|
100
100
|
"metadata": metadata,
|
|
@@ -190,6 +190,10 @@ class PublisherGrpcTransport(PublisherTransport):
|
|
|
190
190
|
your own client library.
|
|
191
191
|
always_use_jwt_access (Optional[bool]): Whether self signed JWT should
|
|
192
192
|
be used for service account credentials.
|
|
193
|
+
api_audience (Optional[str]): The intended audience for the API calls
|
|
194
|
+
to the service that will be set when using certain 3rd party
|
|
195
|
+
authentication flows. Audience is typically a resource identifier.
|
|
196
|
+
If not set, the host value will be used as a default.
|
|
193
197
|
|
|
194
198
|
Raises:
|
|
195
199
|
google.auth.exceptions.MutualTLSChannelError: If mutual TLS transport
|
|
@@ -65,7 +65,7 @@ class _LoggingClientAIOInterceptor(
|
|
|
65
65
|
elif isinstance(request, google.protobuf.message.Message):
|
|
66
66
|
request_payload = MessageToJson(request)
|
|
67
67
|
else:
|
|
68
|
-
request_payload = f"{type(request).__name__}: {pickle.dumps(request)}"
|
|
68
|
+
request_payload = f"{type(request).__name__}: {pickle.dumps(request)!r}"
|
|
69
69
|
|
|
70
70
|
request_metadata = {
|
|
71
71
|
key: value.decode("utf-8") if isinstance(value, bytes) else value
|
|
@@ -100,7 +100,7 @@ class _LoggingClientAIOInterceptor(
|
|
|
100
100
|
elif isinstance(result, google.protobuf.message.Message):
|
|
101
101
|
response_payload = MessageToJson(result)
|
|
102
102
|
else:
|
|
103
|
-
response_payload = f"{type(result).__name__}: {pickle.dumps(result)}"
|
|
103
|
+
response_payload = f"{type(result).__name__}: {pickle.dumps(result)!r}"
|
|
104
104
|
grpc_response = {
|
|
105
105
|
"payload": response_payload,
|
|
106
106
|
"metadata": metadata,
|
|
@@ -241,6 +241,10 @@ class PublisherGrpcAsyncIOTransport(PublisherTransport):
|
|
|
241
241
|
your own client library.
|
|
242
242
|
always_use_jwt_access (Optional[bool]): Whether self signed JWT should
|
|
243
243
|
be used for service account credentials.
|
|
244
|
+
api_audience (Optional[str]): The intended audience for the API calls
|
|
245
|
+
to the service that will be set when using certain 3rd party
|
|
246
|
+
authentication flows. Audience is typically a resource identifier.
|
|
247
|
+
If not set, the host value will be used as a default.
|
|
244
248
|
|
|
245
249
|
Raises:
|
|
246
250
|
google.auth.exceptions.MutualTlsChannelError: If mutual TLS transport
|
|
@@ -667,6 +667,12 @@ class PublisherRestTransport(_BasePublisherRestTransport):
|
|
|
667
667
|
url_scheme: the protocol scheme for the API endpoint. Normally
|
|
668
668
|
"https", but for testing or local servers,
|
|
669
669
|
"http" can be specified.
|
|
670
|
+
interceptor (Optional[PublisherRestInterceptor]): Interceptor used
|
|
671
|
+
to manipulate requests, request metadata, and responses.
|
|
672
|
+
api_audience (Optional[str]): The intended audience for the API calls
|
|
673
|
+
to the service that will be set when using certain 3rd party
|
|
674
|
+
authentication flows. Audience is typically a resource identifier.
|
|
675
|
+
If not set, the host value will be used as a default.
|
|
670
676
|
"""
|
|
671
677
|
# Run the base constructor
|
|
672
678
|
# TODO(yon-mg): resolve other ctor params i.e. scopes, quota, etc.
|