Skip to content

Commit 540f56c

Browse files
refactor(tools): propagate preserve_property_names through load and from_parsed_operation
1 parent 78e9519 commit 540f56c

File tree

3 files changed

+15
-2
lines changed

3 files changed

+15
-2
lines changed

src/google/adk/tools/openapi_tool/openapi_spec_parser/openapi_toolset.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -237,6 +237,7 @@ def _parse(self, openapi_spec_dict: Dict[str, Any]) -> List[RestApiTool]:
237237
o,
238238
ssl_verify=self._ssl_verify,
239239
header_provider=self._header_provider,
240+
preserve_property_names=self._preserve_property_names,
240241
)
241242
logger.info("Parsed tool: %s", tool.name)
242243
tools.append(tool)

src/google/adk/tools/openapi_tool/openapi_spec_parser/operation_parser.py

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -81,8 +81,14 @@ def load(
8181
operation: Union[Operation, Dict[str, Any]],
8282
params: List[ApiParameter],
8383
return_value: Optional[ApiParameter] = None,
84+
*,
85+
preserve_property_names: bool = False,
8486
) -> 'OperationParser':
85-
parser = cls(operation, should_parse=False)
87+
parser = cls(
88+
operation,
89+
should_parse=False,
90+
preserve_property_names=preserve_property_names,
91+
)
8692
parser._params = params
8793
parser._return_value = return_value
8894
return parser

src/google/adk/tools/openapi_tool/openapi_spec_parser/rest_api_tool.py

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -178,6 +178,7 @@ def from_parsed_operation(
178178
header_provider: Optional[
179179
Callable[[ReadonlyContext], Dict[str, str]]
180180
] = None,
181+
preserve_property_names: bool = False,
181182
) -> "RestApiTool":
182183
"""Initializes the RestApiTool from a ParsedOperation object.
183184
@@ -189,12 +190,17 @@ def from_parsed_operation(
189190
an argument, allowing dynamic header generation based on the current
190191
context. Useful for adding custom headers like correlation IDs,
191192
authentication tokens, or other request metadata.
193+
preserve_property_names: If True, preserve original property names
194+
from the OpenAPI spec instead of converting to snake_case.
192195
193196
Returns:
194197
A RestApiTool object.
195198
"""
196199
operation_parser = OperationParser.load(
197-
parsed.operation, parsed.parameters, parsed.return_value
200+
parsed.operation,
201+
parsed.parameters,
202+
parsed.return_value,
203+
preserve_property_names=preserve_property_names,
198204
)
199205

200206
tool_name = _to_snake_case(operation_parser.get_function_name())

0 commit comments

Comments
 (0)