
The current logic for generating method signatures does not ensure that required parameters precede optional ones. In Python, non-default arguments must come before default arguments. If body is optional (required=False) but a subsequent parameter (like a path parameter) is required, the generated code will raise a SyntaxError. This issue also exists in _generate_async_method and _generate_sync_method.
# Generate method signature
req_sig, opt_sig = [], []
if body_info:
if body_info["required"]:
req_sig.append(f"body: {body_info['type']}")
else:
opt_sig.append(f"body: {body_info['type']} | None = None")
for p in params:
type_hint = f"{p['type']} | None" if not p["required"] else p["type"]
if p["required"]:
req_sig.append(f"{p['name']}: {type_hint}")
else:
opt_sig.append(f"{p['name']}: {type_hint} = None")
sig_params_str = ", ".join(req_sig + opt_sig)
Originally posted by @gemini-code-assist[bot] in #86 (comment)
The current logic for generating method signatures does not ensure that required parameters precede optional ones. In Python, non-default arguments must come before default arguments. If
bodyis optional (required=False) but a subsequent parameter (like a path parameter) is required, the generated code will raise aSyntaxError. This issue also exists in_generate_async_methodand_generate_sync_method.Originally posted by @gemini-code-assist[bot] in #86 (comment)