Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

Low-level transport objects should not be public @property-s #3090

Copy link
Copy link
Closed
@dhermes

Description

@dhermes
Issue body actions

The majority (11 of 12) low-level API @property-s that we use are surfaced publicly on the client. This is not intended, right?

$ git grep -B 1 -n 'def .*api(self' -- '*/google/*'
error_reporting/google/cloud/error_reporting/client.py-146-    @property
error_reporting/google/cloud/error_reporting/client.py:147:    def report_errors_api(self):
--
logging/google/cloud/logging/client.py-110-    @property
logging/google/cloud/logging/client.py:111:    def logging_api(self):
--
logging/google/cloud/logging/client.py-125-    @property
logging/google/cloud/logging/client.py:126:    def sinks_api(self):
--
logging/google/cloud/logging/client.py-139-    @property
logging/google/cloud/logging/client.py:140:    def metrics_api(self):
--
pubsub/google/cloud/pubsub/client.py-92-    @property
pubsub/google/cloud/pubsub/client.py:93:    def publisher_api(self):
--
pubsub/google/cloud/pubsub/client.py-108-    @property
pubsub/google/cloud/pubsub/client.py:109:    def subscriber_api(self):
--
pubsub/google/cloud/pubsub/client.py-124-    @property
pubsub/google/cloud/pubsub/client.py:125:    def iam_policy_api(self):
--
spanner/google/cloud/spanner/client.py-152-    @property
spanner/google/cloud/spanner/client.py:153:    def instance_admin_api(self):
--
spanner/google/cloud/spanner/client.py-162-    @property
spanner/google/cloud/spanner/client.py:163:    def database_admin_api(self):
--
spanner/google/cloud/spanner/database.py-179-    @property
spanner/google/cloud/spanner/database.py:180:    def spanner_api(self):
--
speech/google/cloud/speech/client.py-103-    @property
speech/google/cloud/speech/client.py:104:    def speech_api(self):
--
vision/google/cloud/vision/client.py-99-    @property
vision/google/cloud/vision/client.py:100:    def _vision_api(self):
$
$ git log -1 --pretty=%H  # Current commit checked out
1b482f06fa3a36e3cdeedf5b6810048ed67c727a

Other than vision, the non-GAPIC APIs that happen to use gRPC do not surface the properties publicly:

datastore/google/cloud/datastore/_http.py:252:            self._datastore_api = _DatastoreAPIOverGRPC(self, secure=secure)
datastore/google/cloud/datastore/_http.py:254:            self._datastore_api = _DatastoreAPIOverHttp(self)
bigtable/google/cloud/bigtable/client.py:284:    def _instance_stub(self):
bigtable/google/cloud/bigtable/client.py:298:    def _operations_stub(self):
bigtable/google/cloud/bigtable/client.py:312:    def _table_stub(self):

Metadata

Metadata

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions

    Morty Proxy This is a proxified and sanitized view of the page, visit original site.