Skip to content

Commit cfbc02f

Browse files
refactor(tools): propagate preserve_property_names through load and from_parsed_operation
1 parent 89ea430 commit cfbc02f

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
@@ -181,6 +181,7 @@ def from_parsed_operation(
181181
header_provider: Optional[
182182
Callable[[ReadonlyContext], Dict[str, str]]
183183
] = None,
184+
preserve_property_names: bool = False,
184185
) -> "RestApiTool":
185186
"""Initializes the RestApiTool from a ParsedOperation object.
186187
@@ -192,12 +193,17 @@ def from_parsed_operation(
192193
an argument, allowing dynamic header generation based on the current
193194
context. Useful for adding custom headers like correlation IDs,
194195
authentication tokens, or other request metadata.
196+
preserve_property_names: If True, preserve original property names
197+
from the OpenAPI spec instead of converting to snake_case.
195198
196199
Returns:
197200
A RestApiTool object.
198201
"""
199202
operation_parser = OperationParser.load(
200-
parsed.operation, parsed.parameters, parsed.return_value
203+
parsed.operation,
204+
parsed.parameters,
205+
parsed.return_value,
206+
preserve_property_names=preserve_property_names,
201207
)
202208

203209
tool_name = _to_snake_case(operation_parser.get_function_name())

0 commit comments

Comments
 (0)