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

Commit 9652a08

Browse filesBrowse files
authored
fix: pass resource aliases to file-level CommonResources (#16945)
File-level resources (like imported dependencies) were previously starved of CLI aliases during dummy MessageType creation. This caused false-positive namespace collisions because the collision checker couldn't see the explicit aliases. This wires `opts.resource_name_aliases` down through api.py into `CommonResource.build()` so the alias resolution works as originally intended. Fixes: #16952
1 parent 1718e31 commit 9652a08
Copy full SHA for 9652a08

2 files changed

+7-3Lines changed: 7 additions & 3 deletions

File tree

Expand file treeCollapse file tree
Open diff view settings
Filter options
Expand file treeCollapse file tree
Open diff view settings
Collapse file

‎packages/gapic-generator/gapic/schema/api.py‎

Copy file name to clipboardExpand all lines: packages/gapic-generator/gapic/schema/api.py
+3-1Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -101,6 +101,7 @@ class Proto:
101101
meta: metadata.Metadata = dataclasses.field(
102102
default_factory=metadata.Metadata,
103103
)
104+
resource_name_aliases: Mapping[str, str] = dataclasses.field(default_factory=dict)
104105

105106
def __getattr__(self, name: str):
106107
return getattr(self.file_pb2, name)
@@ -159,7 +160,7 @@ def messages(self) -> Mapping[str, wrappers.MessageType]:
159160
def resource_messages(self) -> Mapping[str, wrappers.MessageType]:
160161
"""Return the file level resources of the proto."""
161162
file_resource_messages = (
162-
(res.type, wrappers.CommonResource.build(res).message_type)
163+
(res.type, wrappers.CommonResource.build(res, aliases=self.resource_name_aliases).message_type)
163164
for res in self.file_pb2.options.Extensions[
164165
resource_pb2.resource_definition
165166
]
@@ -1214,6 +1215,7 @@ def proto(self) -> Proto:
12141215
meta=metadata.Metadata(
12151216
address=self.address,
12161217
),
1218+
resource_name_aliases=self.opts.resource_name_aliases,
12171219
)
12181220

12191221
# If this is not a file being generated, we do not need to
Collapse file

‎packages/gapic-generator/gapic/schema/wrappers.py‎

Copy file name to clipboardExpand all lines: packages/gapic-generator/gapic/schema/wrappers.py
+4-2Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2081,10 +2081,11 @@ def with_internal_methods(self, *, public_methods: Set[str]) -> "Method":
20812081
class CommonResource:
20822082
type_name: str
20832083
pattern: str
2084+
resource_name_aliases: Mapping[str, str] = dataclasses.field(default_factory=dict)
20842085

20852086
@classmethod
2086-
def build(cls, resource: resource_pb2.ResourceDescriptor):
2087-
return cls(type_name=resource.type, pattern=next(iter(resource.pattern)))
2087+
def build(cls, resource: resource_pb2.ResourceDescriptor, aliases: Optional[Mapping[str, str]] = None):
2088+
return cls(type_name=resource.type, pattern=next(iter(resource.pattern)), resource_name_aliases=aliases or {})
20882089

20892090
@utils.cached_property
20902091
def message_type(self):
@@ -2098,6 +2099,7 @@ def message_type(self):
20982099
fields={},
20992100
nested_enums={},
21002101
nested_messages={},
2102+
resource_name_aliases=self.resource_name_aliases,
21012103
)
21022104

21032105

0 commit comments

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