eWaterCycle / eWaterCycle/remotebmi

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

Abierto
#52 0 comentarios 0 reacciones 0 asignados Ver en GitHub
bug Python
Lenguaje dominante
Julia
Estrellas
0
Forks
1
Métricas de merge de PR
Sin PR fusionados en 30 d

Descripción

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.
>

Guía de contribución

Abrir la guía de contribución

Evaluación

Este issue todavía no se ha evaluado.

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.