From 56e3435f7accb807cd094ff3c42c9533f50a4ef9 Mon Sep 17 00:00:00 2001 From: "gcf-owl-bot[bot]" <78513119+gcf-owl-bot[bot]@users.noreply.github.com> Date: Sat, 9 Apr 2022 13:01:11 -0400 Subject: [PATCH] docs: update docstrings to use absolute links (#355) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * fix: use full link in comment to fix JSDoc broken link Committer: @summer-ji-eng PiperOrigin-RevId: 440481666 Source-Link: https://github.com/googleapis/googleapis/commit/6a211105d97cc92e053b2d281a4bb2df1366f3e0 Source-Link: https://github.com/googleapis/googleapis-gen/commit/e6e39aff33b90a63a18e9081e480b08a41c548ac Copy-Tag: eyJwIjoiLmdpdGh1Yi8uT3dsQm90LnlhbWwiLCJoIjoiZTZlMzlhZmYzM2I5MGE2M2ExOGU5MDgxZTQ4MGIwOGE0MWM1NDhhYyJ9 * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md Co-authored-by: Owl Bot --- .../services/adaptation/async_client.py | 24 ++++--- .../services/adaptation/client.py | 24 ++++--- .../types/cloud_speech_adaptation.py | 32 ++++----- .../tests/unit/gapic/speech_v1/test_speech.py | 54 ++++++++++----- .../gapic/speech_v1p1beta1/test_adaptation.py | 66 +++++++++++++------ .../gapic/speech_v1p1beta1/test_speech.py | 54 ++++++++++----- 6 files changed, 167 insertions(+), 87 deletions(-) diff --git a/google-cloud-speech/google/cloud/speech_v1p1beta1/services/adaptation/async_client.py b/google-cloud-speech/google/cloud/speech_v1p1beta1/services/adaptation/async_client.py index ba626ad7f7b7..37ff7ddd9c92 100644 --- a/google-cloud-speech/google/cloud/speech_v1p1beta1/services/adaptation/async_client.py +++ b/google-cloud-speech/google/cloud/speech_v1p1beta1/services/adaptation/async_client.py @@ -251,7 +251,8 @@ def sample_create_phrase_set(): ``us`` (US North America), and ``eu`` (Europe). If you are calling the ``speech.googleapis.com`` endpoint, use the ``global`` location. To specify a region, use a - `regional endpoint `__ + `regional + endpoint `__ with matching ``us`` or ``eu`` location value. This corresponds to the ``parent`` field @@ -376,7 +377,8 @@ def sample_get_phrase_set(): ``us`` (US North America), and ``eu`` (Europe). If you are calling the ``speech.googleapis.com`` endpoint, use the ``global`` location. To specify a region, use a - `regional endpoint `__ + `regional + endpoint `__ with matching ``us`` or ``eu`` location value. This corresponds to the ``name`` field @@ -482,7 +484,8 @@ def sample_list_phrase_set(): ``us`` (US North America), and ``eu`` (Europe). If you are calling the ``speech.googleapis.com`` endpoint, use the ``global`` location. To specify a region, use a - `regional endpoint `__ + `regional + endpoint `__ with matching ``us`` or ``eu`` location value. This corresponds to the ``parent`` field @@ -600,7 +603,8 @@ def sample_update_phrase_set(): ``us`` (US North America), and ``eu`` (Europe). If you are calling the ``speech.googleapis.com`` endpoint, use the ``global`` location. To specify a region, use a - `regional endpoint `__ + `regional + endpoint `__ with matching ``us`` or ``eu`` location value. This corresponds to the ``phrase_set`` field @@ -801,7 +805,8 @@ def sample_create_custom_class(): ``us`` (US North America), and ``eu`` (Europe). If you are calling the ``speech.googleapis.com`` endpoint, use the ``global`` location. To specify a region, use a - `regional endpoint `__ + `regional + endpoint `__ with matching ``us`` or ``eu`` location value. This corresponds to the ``parent`` field @@ -1033,7 +1038,8 @@ def sample_list_custom_classes(): ``us`` (US North America), and ``eu`` (Europe). If you are calling the ``speech.googleapis.com`` endpoint, use the ``global`` location. To specify a region, use a - `regional endpoint `__ + `regional + endpoint `__ with matching ``us`` or ``eu`` location value. This corresponds to the ``parent`` field @@ -1151,7 +1157,8 @@ def sample_update_custom_class(): ``us`` (US North America), and ``eu`` (Europe). If you are calling the ``speech.googleapis.com`` endpoint, use the ``global`` location. To specify a region, use a - `regional endpoint `__ + `regional + endpoint `__ with matching ``us`` or ``eu`` location value. This corresponds to the ``custom_class`` field @@ -1266,7 +1273,8 @@ def sample_delete_custom_class(): ``us`` (US North America), and ``eu`` (Europe). If you are calling the ``speech.googleapis.com`` endpoint, use the ``global`` location. To specify a region, use a - `regional endpoint `__ + `regional + endpoint `__ with matching ``us`` or ``eu`` location value. This corresponds to the ``name`` field diff --git a/google-cloud-speech/google/cloud/speech_v1p1beta1/services/adaptation/client.py b/google-cloud-speech/google/cloud/speech_v1p1beta1/services/adaptation/client.py index 7c6f39b6f7cd..9bef85734679 100644 --- a/google-cloud-speech/google/cloud/speech_v1p1beta1/services/adaptation/client.py +++ b/google-cloud-speech/google/cloud/speech_v1p1beta1/services/adaptation/client.py @@ -499,7 +499,8 @@ def sample_create_phrase_set(): ``us`` (US North America), and ``eu`` (Europe). If you are calling the ``speech.googleapis.com`` endpoint, use the ``global`` location. To specify a region, use a - `regional endpoint `__ + `regional + endpoint `__ with matching ``us`` or ``eu`` location value. This corresponds to the ``parent`` field @@ -624,7 +625,8 @@ def sample_get_phrase_set(): ``us`` (US North America), and ``eu`` (Europe). If you are calling the ``speech.googleapis.com`` endpoint, use the ``global`` location. To specify a region, use a - `regional endpoint `__ + `regional + endpoint `__ with matching ``us`` or ``eu`` location value. This corresponds to the ``name`` field @@ -730,7 +732,8 @@ def sample_list_phrase_set(): ``us`` (US North America), and ``eu`` (Europe). If you are calling the ``speech.googleapis.com`` endpoint, use the ``global`` location. To specify a region, use a - `regional endpoint `__ + `regional + endpoint `__ with matching ``us`` or ``eu`` location value. This corresponds to the ``parent`` field @@ -848,7 +851,8 @@ def sample_update_phrase_set(): ``us`` (US North America), and ``eu`` (Europe). If you are calling the ``speech.googleapis.com`` endpoint, use the ``global`` location. To specify a region, use a - `regional endpoint `__ + `regional + endpoint `__ with matching ``us`` or ``eu`` location value. This corresponds to the ``phrase_set`` field @@ -1049,7 +1053,8 @@ def sample_create_custom_class(): ``us`` (US North America), and ``eu`` (Europe). If you are calling the ``speech.googleapis.com`` endpoint, use the ``global`` location. To specify a region, use a - `regional endpoint `__ + `regional + endpoint `__ with matching ``us`` or ``eu`` location value. This corresponds to the ``parent`` field @@ -1281,7 +1286,8 @@ def sample_list_custom_classes(): ``us`` (US North America), and ``eu`` (Europe). If you are calling the ``speech.googleapis.com`` endpoint, use the ``global`` location. To specify a region, use a - `regional endpoint `__ + `regional + endpoint `__ with matching ``us`` or ``eu`` location value. This corresponds to the ``parent`` field @@ -1399,7 +1405,8 @@ def sample_update_custom_class(): ``us`` (US North America), and ``eu`` (Europe). If you are calling the ``speech.googleapis.com`` endpoint, use the ``global`` location. To specify a region, use a - `regional endpoint `__ + `regional + endpoint `__ with matching ``us`` or ``eu`` location value. This corresponds to the ``custom_class`` field @@ -1514,7 +1521,8 @@ def sample_delete_custom_class(): ``us`` (US North America), and ``eu`` (Europe). If you are calling the ``speech.googleapis.com`` endpoint, use the ``global`` location. To specify a region, use a - `regional endpoint `__ + `regional + endpoint `__ with matching ``us`` or ``eu`` location value. This corresponds to the ``name`` field diff --git a/google-cloud-speech/google/cloud/speech_v1p1beta1/types/cloud_speech_adaptation.py b/google-cloud-speech/google/cloud/speech_v1p1beta1/types/cloud_speech_adaptation.py index 664029886343..c3cb805fecc3 100644 --- a/google-cloud-speech/google/cloud/speech_v1p1beta1/types/cloud_speech_adaptation.py +++ b/google-cloud-speech/google/cloud/speech_v1p1beta1/types/cloud_speech_adaptation.py @@ -52,8 +52,8 @@ class CreatePhraseSetRequest(proto.Message): (US North America), and ``eu`` (Europe). If you are calling the ``speech.googleapis.com`` endpoint, use the ``global`` location. To specify a region, use a `regional - endpoint `__ with matching - ``us`` or ``eu`` location value. + endpoint `__ + with matching ``us`` or ``eu`` location value. phrase_set_id (str): Required. The ID to use for the phrase set, which will become the final component of the phrase set's resource @@ -96,8 +96,8 @@ class UpdatePhraseSetRequest(proto.Message): (US North America), and ``eu`` (Europe). If you are calling the ``speech.googleapis.com`` endpoint, use the ``global`` location. To specify a region, use a `regional - endpoint `__ with matching - ``us`` or ``eu`` location value. + endpoint `__ + with matching ``us`` or ``eu`` location value. update_mask (google.protobuf.field_mask_pb2.FieldMask): The list of fields to be updated. """ @@ -127,8 +127,8 @@ class GetPhraseSetRequest(proto.Message): (US North America), and ``eu`` (Europe). If you are calling the ``speech.googleapis.com`` endpoint, use the ``global`` location. To specify a region, use a `regional - endpoint `__ with matching - ``us`` or ``eu`` location value. + endpoint `__ + with matching ``us`` or ``eu`` location value. """ name = proto.Field( @@ -151,8 +151,8 @@ class ListPhraseSetRequest(proto.Message): (US North America), and ``eu`` (Europe). If you are calling the ``speech.googleapis.com`` endpoint, use the ``global`` location. To specify a region, use a `regional - endpoint `__ with matching - ``us`` or ``eu`` location value. + endpoint `__ + with matching ``us`` or ``eu`` location value. page_size (int): The maximum number of phrase sets to return. The service may return fewer than this value. If @@ -239,8 +239,8 @@ class CreateCustomClassRequest(proto.Message): (US North America), and ``eu`` (Europe). If you are calling the ``speech.googleapis.com`` endpoint, use the ``global`` location. To specify a region, use a `regional - endpoint `__ with matching - ``us`` or ``eu`` location value. + endpoint `__ + with matching ``us`` or ``eu`` location value. custom_class_id (str): Required. The ID to use for the custom class, which will become the final component of the custom class' resource @@ -283,8 +283,8 @@ class UpdateCustomClassRequest(proto.Message): (US North America), and ``eu`` (Europe). If you are calling the ``speech.googleapis.com`` endpoint, use the ``global`` location. To specify a region, use a `regional - endpoint `__ with matching - ``us`` or ``eu`` location value. + endpoint `__ + with matching ``us`` or ``eu`` location value. update_mask (google.protobuf.field_mask_pb2.FieldMask): The list of fields to be updated. """ @@ -331,8 +331,8 @@ class ListCustomClassesRequest(proto.Message): (US North America), and ``eu`` (Europe). If you are calling the ``speech.googleapis.com`` endpoint, use the ``global`` location. To specify a region, use a `regional - endpoint `__ with matching - ``us`` or ``eu`` location value. + endpoint `__ + with matching ``us`` or ``eu`` location value. page_size (int): The maximum number of custom classes to return. The service may return fewer than this @@ -402,8 +402,8 @@ class DeleteCustomClassRequest(proto.Message): (US North America), and ``eu`` (Europe). If you are calling the ``speech.googleapis.com`` endpoint, use the ``global`` location. To specify a region, use a `regional - endpoint `__ with matching - ``us`` or ``eu`` location value. + endpoint `__ + with matching ``us`` or ``eu`` location value. """ name = proto.Field( diff --git a/google-cloud-speech/tests/unit/gapic/speech_v1/test_speech.py b/google-cloud-speech/tests/unit/gapic/speech_v1/test_speech.py index 13f900131231..913889dce7fd 100644 --- a/google-cloud-speech/tests/unit/gapic/speech_v1/test_speech.py +++ b/google-cloud-speech/tests/unit/gapic/speech_v1/test_speech.py @@ -87,24 +87,24 @@ def test__get_default_mtls_endpoint(): @pytest.mark.parametrize( - "client_class", + "client_class,transport_name", [ - SpeechClient, - SpeechAsyncClient, + (SpeechClient, "grpc"), + (SpeechAsyncClient, "grpc_asyncio"), ], ) -def test_speech_client_from_service_account_info(client_class): +def test_speech_client_from_service_account_info(client_class, transport_name): creds = ga_credentials.AnonymousCredentials() with mock.patch.object( service_account.Credentials, "from_service_account_info" ) as factory: factory.return_value = creds info = {"valid": True} - client = client_class.from_service_account_info(info) + client = client_class.from_service_account_info(info, transport=transport_name) assert client.transport._credentials == creds assert isinstance(client, client_class) - assert client.transport._host == "speech.googleapis.com:443" + assert client.transport._host == ("speech.googleapis.com:443") @pytest.mark.parametrize( @@ -131,27 +131,31 @@ def test_speech_client_service_account_always_use_jwt(transport_class, transport @pytest.mark.parametrize( - "client_class", + "client_class,transport_name", [ - SpeechClient, - SpeechAsyncClient, + (SpeechClient, "grpc"), + (SpeechAsyncClient, "grpc_asyncio"), ], ) -def test_speech_client_from_service_account_file(client_class): +def test_speech_client_from_service_account_file(client_class, transport_name): creds = ga_credentials.AnonymousCredentials() with mock.patch.object( service_account.Credentials, "from_service_account_file" ) as factory: factory.return_value = creds - client = client_class.from_service_account_file("dummy/file/path.json") + client = client_class.from_service_account_file( + "dummy/file/path.json", transport=transport_name + ) assert client.transport._credentials == creds assert isinstance(client, client_class) - client = client_class.from_service_account_json("dummy/file/path.json") + client = client_class.from_service_account_json( + "dummy/file/path.json", transport=transport_name + ) assert client.transport._credentials == creds assert isinstance(client, client_class) - assert client.transport._host == "speech.googleapis.com:443" + assert client.transport._host == ("speech.googleapis.com:443") def test_speech_client_get_transport_class(): @@ -1348,24 +1352,40 @@ def test_speech_grpc_transport_client_cert_source_for_mtls(transport_class): ) -def test_speech_host_no_port(): +@pytest.mark.parametrize( + "transport_name", + [ + "grpc", + "grpc_asyncio", + ], +) +def test_speech_host_no_port(transport_name): client = SpeechClient( credentials=ga_credentials.AnonymousCredentials(), client_options=client_options.ClientOptions( api_endpoint="speech.googleapis.com" ), + transport=transport_name, ) - assert client.transport._host == "speech.googleapis.com:443" + assert client.transport._host == ("speech.googleapis.com:443") -def test_speech_host_with_port(): +@pytest.mark.parametrize( + "transport_name", + [ + "grpc", + "grpc_asyncio", + ], +) +def test_speech_host_with_port(transport_name): client = SpeechClient( credentials=ga_credentials.AnonymousCredentials(), client_options=client_options.ClientOptions( api_endpoint="speech.googleapis.com:8000" ), + transport=transport_name, ) - assert client.transport._host == "speech.googleapis.com:8000" + assert client.transport._host == ("speech.googleapis.com:8000") def test_speech_grpc_transport_channel(): diff --git a/google-cloud-speech/tests/unit/gapic/speech_v1p1beta1/test_adaptation.py b/google-cloud-speech/tests/unit/gapic/speech_v1p1beta1/test_adaptation.py index 9aabf4934b3a..203c9893e315 100644 --- a/google-cloud-speech/tests/unit/gapic/speech_v1p1beta1/test_adaptation.py +++ b/google-cloud-speech/tests/unit/gapic/speech_v1p1beta1/test_adaptation.py @@ -84,24 +84,24 @@ def test__get_default_mtls_endpoint(): @pytest.mark.parametrize( - "client_class", + "client_class,transport_name", [ - AdaptationClient, - AdaptationAsyncClient, + (AdaptationClient, "grpc"), + (AdaptationAsyncClient, "grpc_asyncio"), ], ) -def test_adaptation_client_from_service_account_info(client_class): +def test_adaptation_client_from_service_account_info(client_class, transport_name): creds = ga_credentials.AnonymousCredentials() with mock.patch.object( service_account.Credentials, "from_service_account_info" ) as factory: factory.return_value = creds info = {"valid": True} - client = client_class.from_service_account_info(info) + client = client_class.from_service_account_info(info, transport=transport_name) assert client.transport._credentials == creds assert isinstance(client, client_class) - assert client.transport._host == "speech.googleapis.com:443" + assert client.transport._host == ("speech.googleapis.com:443") @pytest.mark.parametrize( @@ -130,27 +130,31 @@ def test_adaptation_client_service_account_always_use_jwt( @pytest.mark.parametrize( - "client_class", + "client_class,transport_name", [ - AdaptationClient, - AdaptationAsyncClient, + (AdaptationClient, "grpc"), + (AdaptationAsyncClient, "grpc_asyncio"), ], ) -def test_adaptation_client_from_service_account_file(client_class): +def test_adaptation_client_from_service_account_file(client_class, transport_name): creds = ga_credentials.AnonymousCredentials() with mock.patch.object( service_account.Credentials, "from_service_account_file" ) as factory: factory.return_value = creds - client = client_class.from_service_account_file("dummy/file/path.json") + client = client_class.from_service_account_file( + "dummy/file/path.json", transport=transport_name + ) assert client.transport._credentials == creds assert isinstance(client, client_class) - client = client_class.from_service_account_json("dummy/file/path.json") + client = client_class.from_service_account_json( + "dummy/file/path.json", transport=transport_name + ) assert client.transport._credentials == creds assert isinstance(client, client_class) - assert client.transport._host == "speech.googleapis.com:443" + assert client.transport._host == ("speech.googleapis.com:443") def test_adaptation_client_get_transport_class(): @@ -1487,7 +1491,7 @@ async def test_list_phrase_set_async_pager(): ) assert async_pager.next_page_token == "abc" responses = [] - async for response in async_pager: + async for response in async_pager: # pragma: no branch responses.append(response) assert len(responses) == 6 @@ -1533,7 +1537,9 @@ async def test_list_phrase_set_async_pages(): RuntimeError, ) pages = [] - async for page_ in (await client.list_phrase_set(request={})).pages: + async for page_ in ( + await client.list_phrase_set(request={}) + ).pages: # pragma: no branch pages.append(page_) for page_, token in zip(pages, ["abc", "def", "ghi", ""]): assert page_.raw_page.next_page_token == token @@ -2926,7 +2932,7 @@ async def test_list_custom_classes_async_pager(): ) assert async_pager.next_page_token == "abc" responses = [] - async for response in async_pager: + async for response in async_pager: # pragma: no branch responses.append(response) assert len(responses) == 6 @@ -2974,7 +2980,9 @@ async def test_list_custom_classes_async_pages(): RuntimeError, ) pages = [] - async for page_ in (await client.list_custom_classes(request={})).pages: + async for page_ in ( + await client.list_custom_classes(request={}) + ).pages: # pragma: no branch pages.append(page_) for page_, token in zip(pages, ["abc", "def", "ghi", ""]): assert page_.raw_page.next_page_token == token @@ -3760,24 +3768,40 @@ def test_adaptation_grpc_transport_client_cert_source_for_mtls(transport_class): ) -def test_adaptation_host_no_port(): +@pytest.mark.parametrize( + "transport_name", + [ + "grpc", + "grpc_asyncio", + ], +) +def test_adaptation_host_no_port(transport_name): client = AdaptationClient( credentials=ga_credentials.AnonymousCredentials(), client_options=client_options.ClientOptions( api_endpoint="speech.googleapis.com" ), + transport=transport_name, ) - assert client.transport._host == "speech.googleapis.com:443" + assert client.transport._host == ("speech.googleapis.com:443") -def test_adaptation_host_with_port(): +@pytest.mark.parametrize( + "transport_name", + [ + "grpc", + "grpc_asyncio", + ], +) +def test_adaptation_host_with_port(transport_name): client = AdaptationClient( credentials=ga_credentials.AnonymousCredentials(), client_options=client_options.ClientOptions( api_endpoint="speech.googleapis.com:8000" ), + transport=transport_name, ) - assert client.transport._host == "speech.googleapis.com:8000" + assert client.transport._host == ("speech.googleapis.com:8000") def test_adaptation_grpc_transport_channel(): diff --git a/google-cloud-speech/tests/unit/gapic/speech_v1p1beta1/test_speech.py b/google-cloud-speech/tests/unit/gapic/speech_v1p1beta1/test_speech.py index 2760bd8860cd..c99abe5a7ae4 100644 --- a/google-cloud-speech/tests/unit/gapic/speech_v1p1beta1/test_speech.py +++ b/google-cloud-speech/tests/unit/gapic/speech_v1p1beta1/test_speech.py @@ -87,24 +87,24 @@ def test__get_default_mtls_endpoint(): @pytest.mark.parametrize( - "client_class", + "client_class,transport_name", [ - SpeechClient, - SpeechAsyncClient, + (SpeechClient, "grpc"), + (SpeechAsyncClient, "grpc_asyncio"), ], ) -def test_speech_client_from_service_account_info(client_class): +def test_speech_client_from_service_account_info(client_class, transport_name): creds = ga_credentials.AnonymousCredentials() with mock.patch.object( service_account.Credentials, "from_service_account_info" ) as factory: factory.return_value = creds info = {"valid": True} - client = client_class.from_service_account_info(info) + client = client_class.from_service_account_info(info, transport=transport_name) assert client.transport._credentials == creds assert isinstance(client, client_class) - assert client.transport._host == "speech.googleapis.com:443" + assert client.transport._host == ("speech.googleapis.com:443") @pytest.mark.parametrize( @@ -131,27 +131,31 @@ def test_speech_client_service_account_always_use_jwt(transport_class, transport @pytest.mark.parametrize( - "client_class", + "client_class,transport_name", [ - SpeechClient, - SpeechAsyncClient, + (SpeechClient, "grpc"), + (SpeechAsyncClient, "grpc_asyncio"), ], ) -def test_speech_client_from_service_account_file(client_class): +def test_speech_client_from_service_account_file(client_class, transport_name): creds = ga_credentials.AnonymousCredentials() with mock.patch.object( service_account.Credentials, "from_service_account_file" ) as factory: factory.return_value = creds - client = client_class.from_service_account_file("dummy/file/path.json") + client = client_class.from_service_account_file( + "dummy/file/path.json", transport=transport_name + ) assert client.transport._credentials == creds assert isinstance(client, client_class) - client = client_class.from_service_account_json("dummy/file/path.json") + client = client_class.from_service_account_json( + "dummy/file/path.json", transport=transport_name + ) assert client.transport._credentials == creds assert isinstance(client, client_class) - assert client.transport._host == "speech.googleapis.com:443" + assert client.transport._host == ("speech.googleapis.com:443") def test_speech_client_get_transport_class(): @@ -1348,24 +1352,40 @@ def test_speech_grpc_transport_client_cert_source_for_mtls(transport_class): ) -def test_speech_host_no_port(): +@pytest.mark.parametrize( + "transport_name", + [ + "grpc", + "grpc_asyncio", + ], +) +def test_speech_host_no_port(transport_name): client = SpeechClient( credentials=ga_credentials.AnonymousCredentials(), client_options=client_options.ClientOptions( api_endpoint="speech.googleapis.com" ), + transport=transport_name, ) - assert client.transport._host == "speech.googleapis.com:443" + assert client.transport._host == ("speech.googleapis.com:443") -def test_speech_host_with_port(): +@pytest.mark.parametrize( + "transport_name", + [ + "grpc", + "grpc_asyncio", + ], +) +def test_speech_host_with_port(transport_name): client = SpeechClient( credentials=ga_credentials.AnonymousCredentials(), client_options=client_options.ClientOptions( api_endpoint="speech.googleapis.com:8000" ), + transport=transport_name, ) - assert client.transport._host == "speech.googleapis.com:8000" + assert client.transport._host == ("speech.googleapis.com:8000") def test_speech_grpc_transport_channel():