From b998d0959d961f58823f6bd95bcc6f2fb350e299 Mon Sep 17 00:00:00 2001 From: Dov Shlachter Date: Wed, 12 May 2021 11:52:02 -0700 Subject: [PATCH 1/7] chore: satiate mypy (#880) --- gapic/generator/generator.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/gapic/generator/generator.py b/gapic/generator/generator.py index 362753ff2d..3014719c17 100644 --- a/gapic/generator/generator.py +++ b/gapic/generator/generator.py @@ -89,7 +89,7 @@ def get_response( sample_templates, client_templates = utils.partition( lambda fname: os.path.basename( fname) == samplegen.DEFAULT_TEMPLATE_NAME, - self._env.loader.list_templates(), + self._env.loader.list_templates(), # type: ignore ) # Iterate over each template and add the appropriate output files @@ -113,7 +113,7 @@ def get_response( sample_output = self._generate_samples_and_manifest( api_schema, self._env.get_template(sample_templates[0]), opts=opts, - ) + ) output_files.update(sample_output) # Return the CodeGeneratorResponse output. @@ -286,10 +286,10 @@ def _render_template( for service in api_schema.services.values(): if ( (skip_subpackages - and service.meta.address.subpackage != api_schema.subpackage_view) + and service.meta.address.subpackage != api_schema.subpackage_view) or ('transport' in template_name - and not self._is_desired_transport(template_name, opts)) + and not self._is_desired_transport(template_name, opts)) or # TODO(yon-mg) - remove when rest async implementation resolved # temporarily stop async client gen while rest async is unkown From 388624e88a81ce4b5af305288b061bc39d8b732b Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Wed, 12 May 2021 21:08:02 +0200 Subject: [PATCH 2/7] chore(deps): update dependency markupsafe to v2 (#879) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [![WhiteSource Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [MarkupSafe](https://palletsprojects.com/p/markupsafe/) ([changelog](https://markupsafe.palletsprojects.com/changes/)) | `==1.1.1` -> `==2.0.0` | [![age](https://badges.renovateapi.com/packages/pypi/MarkupSafe/2.0.0/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/pypi/MarkupSafe/2.0.0/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/pypi/MarkupSafe/2.0.0/compatibility-slim/1.1.1)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/pypi/MarkupSafe/2.0.0/confidence-slim/1.1.1)](https://docs.renovatebot.com/merge-confidence/) | --- ### Configuration 📅 **Schedule**: At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻️ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, check this box. --- This PR has been generated by [WhiteSource Renovate](https://renovate.whitesourcesoftware.com). View repository job log [here](https://app.renovatebot.com/dashboard#github/googleapis/gapic-generator-python). --- requirements.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/requirements.txt b/requirements.txt index 43ad012986..b18aa46ec0 100644 --- a/requirements.txt +++ b/requirements.txt @@ -2,7 +2,7 @@ click==7.1.2 google-api-core==1.26.3 googleapis-common-protos==1.53.0 jinja2==2.11.3 -MarkupSafe==1.1.1 +MarkupSafe==2.0.0 protobuf==3.16.0 pypandoc==1.5 PyYAML==5.4.1 From ffe01072993790bdeac98fe0851669d53e76206a Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Wed, 12 May 2021 21:28:02 +0200 Subject: [PATCH 3/7] chore(deps): update dependency jinja2 to v3 (#878) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [![WhiteSource Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [jinja2](https://palletsprojects.com/p/jinja/) ([changelog](https://jinja.palletsprojects.com/changes/)) | `==2.11.3` -> `==3.0.0` | [![age](https://badges.renovateapi.com/packages/pypi/jinja2/3.0.0/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/pypi/jinja2/3.0.0/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/pypi/jinja2/3.0.0/compatibility-slim/2.11.3)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/pypi/jinja2/3.0.0/confidence-slim/2.11.3)](https://docs.renovatebot.com/merge-confidence/) | --- ### Configuration 📅 **Schedule**: At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻️ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, check this box. --- This PR has been generated by [WhiteSource Renovate](https://renovate.whitesourcesoftware.com). View repository job log [here](https://app.renovatebot.com/dashboard#github/googleapis/gapic-generator-python). --- requirements.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/requirements.txt b/requirements.txt index b18aa46ec0..5e740f28ef 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,7 +1,7 @@ click==7.1.2 google-api-core==1.26.3 googleapis-common-protos==1.53.0 -jinja2==2.11.3 +jinja2==3.0.0 MarkupSafe==2.0.0 protobuf==3.16.0 pypandoc==1.5 From 29c201b0c6fcc4cddd0ab445a65a2492a52385d9 Mon Sep 17 00:00:00 2001 From: WhiteSource Renovate Date: Wed, 12 May 2021 22:00:07 +0200 Subject: [PATCH 4/7] chore(deps): update dependency click to v8 (#877) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [![WhiteSource Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [click](https://palletsprojects.com/p/click/) ([changelog](https://click.palletsprojects.com/changes/)) | `==7.1.2` -> `==8.0.0` | [![age](https://badges.renovateapi.com/packages/pypi/click/8.0.0/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/pypi/click/8.0.0/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/pypi/click/8.0.0/compatibility-slim/7.1.2)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/pypi/click/8.0.0/confidence-slim/7.1.2)](https://docs.renovatebot.com/merge-confidence/) | --- ### Configuration 📅 **Schedule**: At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻️ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] If you want to rebase/retry this PR, check this box. --- This PR has been generated by [WhiteSource Renovate](https://renovate.whitesourcesoftware.com). View repository job log [here](https://app.renovatebot.com/dashboard#github/googleapis/gapic-generator-python). --- requirements.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/requirements.txt b/requirements.txt index 5e740f28ef..ee93fbbd14 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,4 +1,4 @@ -click==7.1.2 +click==8.0.0 google-api-core==1.26.3 googleapis-common-protos==1.53.0 jinja2==3.0.0 From 40078c46b21a0dfa489d4cd80ed7d95bb542f3c3 Mon Sep 17 00:00:00 2001 From: Bu Sun Kim <8822365+busunkim96@users.noreply.github.com> Date: Wed, 12 May 2021 14:06:02 -0600 Subject: [PATCH 5/7] fix: fix incorrectly referenced exceptions, add missing port to tests (#873) Fixes #872 --- .../%version/%sub/services/%service/transports/base.py.j2 | 2 +- .../%name_%version/%sub/services/%service/async_client.py.j2 | 2 +- .../tests/unit/gapic/%name_%version/%sub/test_%service.py.j2 | 4 ++-- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/gapic/ads-templates/%namespace/%name/%version/%sub/services/%service/transports/base.py.j2 b/gapic/ads-templates/%namespace/%name/%version/%sub/services/%service/transports/base.py.j2 index d630c8f023..82ab146438 100644 --- a/gapic/ads-templates/%namespace/%name/%version/%sub/services/%service/transports/base.py.j2 +++ b/gapic/ads-templates/%namespace/%name/%version/%sub/services/%service/transports/base.py.j2 @@ -91,7 +91,7 @@ class {{ service.name }}Transport(metaclass=abc.ABCMeta): {% if method.retry.backoff_multiplier %}multiplier={{ method.retry.backoff_multiplier }},{% endif %} predicate=retries.if_exception_type( {% for ex in method.retry.retryable_exceptions|sort(attribute='__name__') %} - exceptions.{{ ex.__name__ }}, + core_exceptions.{{ ex.__name__ }}, {% endfor %} ), deadline={{ method.timeout }}, diff --git a/gapic/templates/%namespace/%name_%version/%sub/services/%service/async_client.py.j2 b/gapic/templates/%namespace/%name_%version/%sub/services/%service/async_client.py.j2 index f5d60d8e60..3c5988073c 100644 --- a/gapic/templates/%namespace/%name_%version/%sub/services/%service/async_client.py.j2 +++ b/gapic/templates/%namespace/%name_%version/%sub/services/%service/async_client.py.j2 @@ -253,7 +253,7 @@ class {{ service.async_client_name }}: {% if method.retry.backoff_multiplier %}multiplier={{ method.retry.backoff_multiplier }},{% endif %} predicate=retries.if_exception_type( {% for ex in method.retry.retryable_exceptions|sort(attribute="__name__") %} - exceptions.{{ ex.__name__ }}, + core_exceptions.{{ ex.__name__ }}, {% endfor %} ), deadline={{ method.timeout }}, diff --git a/gapic/templates/tests/unit/gapic/%name_%version/%sub/test_%service.py.j2 b/gapic/templates/tests/unit/gapic/%name_%version/%sub/test_%service.py.j2 index 3227b7b340..f6ef2fba9b 100644 --- a/gapic/templates/tests/unit/gapic/%name_%version/%sub/test_%service.py.j2 +++ b/gapic/templates/tests/unit/gapic/%name_%version/%sub/test_%service.py.j2 @@ -1665,7 +1665,7 @@ def test_{{ service.name|snake_case }}_transport_create_channel_old_api_core(tra {% with host = (service.host|default('localhost', true)) %} create_channel.assert_called_with( - "{{ host }}", + "{{ host }}{% if ":" not in service.host %}:443{% endif %}", credentials=creds, credentials_file=None, quota_project_id="octopus", @@ -1703,7 +1703,7 @@ def test_{{ service.name|snake_case }}_transport_create_channel_user_scopes(tran transport_class(quota_project_id="octopus", scopes=["1", "2"]) create_channel.assert_called_with( - "{{ host }}", + "{{ host }}{% if ":" not in service.host %}:443{% endif %}", credentials=creds, credentials_file=None, quota_project_id="octopus", From 7087af548c535d47e67fe8a966fa2a09de84505d Mon Sep 17 00:00:00 2001 From: "release-please[bot]" <55107282+release-please[bot]@users.noreply.github.com> Date: Wed, 12 May 2021 14:30:30 -0600 Subject: [PATCH 6/7] chore: release 0.46.2 (#881) Co-authored-by: release-please[bot] <55107282+release-please[bot]@users.noreply.github.com> --- CHANGELOG.md | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 00fde0c8d8..74f499bd5e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,12 @@ # Changelog +### [0.46.2](https://www.github.com/googleapis/gapic-generator-python/compare/v0.46.1...v0.46.2) (2021-05-12) + + +### Bug Fixes + +* fix incorrectly referenced exceptions, add missing port to tests ([#873](https://www.github.com/googleapis/gapic-generator-python/issues/873)) ([40078c4](https://www.github.com/googleapis/gapic-generator-python/commit/40078c46b21a0dfa489d4cd80ed7d95bb542f3c3)), closes [#872](https://www.github.com/googleapis/gapic-generator-python/issues/872) + ### [0.46.1](https://www.github.com/googleapis/gapic-generator-python/compare/v0.46.0...v0.46.1) (2021-05-07) From d789c84d0d686bdb2d88179041b4c04cc32a3e66 Mon Sep 17 00:00:00 2001 From: Bu Sun Kim <8822365+busunkim96@users.noreply.github.com> Date: Wed, 12 May 2021 17:42:02 -0600 Subject: [PATCH 7/7] fix: consistently use _pb2 identifier (#883) Small change to fix bug noticed in https://github.com/googleapis/python-dialogflow/pull/288. The import was `from google.rpc import status_pb2` but code expected `gr_status` --- gapic/schema/metadata.py | 10 +++++----- tests/unit/schema/test_metadata.py | 11 +++++++++++ 2 files changed, 16 insertions(+), 5 deletions(-) diff --git a/gapic/schema/metadata.py b/gapic/schema/metadata.py index e14190d007..91e6905777 100644 --- a/gapic/schema/metadata.py +++ b/gapic/schema/metadata.py @@ -84,17 +84,17 @@ def __str__(self) -> str: if self.module: module_name = self.module + # If collisions are registered and conflict with our module, + # use the module alias instead. + if self.module_alias: + module_name = self.module_alias + # This module is from a different proto package # Most commonly happens for a common proto # https://pypi.org/project/googleapis-common-protos/ if not self.proto_package.startswith(self.api_naming.proto_package): module_name = f'{self.module}_pb2' - # If collisions are registered and conflict with our module, - # use the module alias instead. - if self.module_alias: - module_name = self.module_alias - # Return the dot-separated Python identifier. return '.'.join((module_name,) + self.parent + (self.name,)) diff --git a/tests/unit/schema/test_metadata.py b/tests/unit/schema/test_metadata.py index c778000c7c..179361e039 100644 --- a/tests/unit/schema/test_metadata.py +++ b/tests/unit/schema/test_metadata.py @@ -49,6 +49,17 @@ def test_address_str_different_proto_package(): assert str(addr) == 'options_pb2.GetPolicyOptions' +def test_address_str_different_proto_package_with_collision(): + addr = metadata.Address( + package=('google', 'rpc'), + module='status', + name='Status', + api_naming=naming.NewNaming(proto_package='foo.bar.baz.v1') + ).with_context(collisions=frozenset({'status'})) + # the module alias should be ignored for _pb2 types + assert str(addr) == 'status_pb2.Status' + + def test_address_proto(): addr = metadata.Address(package=('foo', 'bar'), module='baz', name='Bacon') assert addr.proto == 'foo.bar.Bacon'