eWaterCycle / eWaterCycle/remotebmi

Can't use `set_value` or `set_value_at_indices` in Python server implementation.

Open
#52 0 comments 0 reactions 0 assignees View on GitHub
bug Python
Dominant language
Julia
Stars
0
Forks
1
PR merge metrics
No merged PRs in 30d

Description

To reproduce; enable the Swagger UI and try to set a value for a variable. Error will be;

`set_value() is missing 1 required positional argument: 'src'`

The problem is that the body of the request is passed by connexion to the function as the kwarg "body".

Claude's explanation:

> Connexion 3.x calls operation.body_name() → always returns "body" (since the spec has no x-body-name extension)
> It then checks if "body" in function_arguments — but set_value's arguments are ["name", "src"]
> So connexion skips body injection entirely and calls set_value(name=...) without src
> This cannot be influenced from the client side — the body is discarded before the Python function is even called. The same bug affects update_until (until vs body), get_value_at_indices (indices vs body), and set_value_at_indices (indices/values vs body). initialize works because it already uses body.
>
> The only real fix is server-side: rename the parameter from src to body in the function (one character change), or add x-body-name: src to the spec.
>

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.