JSON deserialization does not handle OverflowError
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 2/5
- Tiempo estimado
- 1-3 horas
- Aptitud para principiantes
- 52/100
- Tipo de issue
- Error
- Claridad
- Bastante claro
- Estado de actividad
- Estancado
- Stack tecnológico
- python
- Área
- backend-api-design
Línea de trabajo
Empieza en packages/serialization/json/kiota_serialization_json/json_parse_node.py, en JsonParseNode.try_get_anything() y en el catch alrededor de parse_timedelta_string(). Reproduce la entrada "50001140846:00021" y comprueba los otros handlers catch mencionados en el issue. Está terminado cuando los valores malformados pasan sin cambios, sin que se produzca un OverflowError no capturado.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
Trying to deserialize certain misformatted strings result in an uncaught OverflowError exception instead of passing through the string unchanged. In particular, trying to deserialize a timedelta string such as "50001140846:00021" results in the following:
Traceback (most recent call last):
File "lib\site-packages\kiota_abstractions\date_utils.py", line 66, in parse_timedelta_string
return parse_timedelta_from_iso_format(text)
File "lib\site-packages\kiota_abstractions\date_utils.py", line 34, in parse_timedelta_from_iso_format
raise ValueError(f"Invalid ISO8601 duration string: {text}")
ValueError: Invalid ISO8601 duration string: 50001140846:00021
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
[...]
File "lib\site-packages\kiota_serialization_json\json_parse_node.py", line 335, in try_get_anything
return parse_timedelta_string(value)
File "lib\site-packages\kiota_abstractions\date_utils.py", line 76, in parse_timedelta_string
return timedelta(hours=hours, minutes=minutes, seconds=seconds)
OverflowError: days=2083380868; must have magnitude <= 999999999
The issue is that JsonParseNode.try_get_anything() only handles ValueError exceptions instead of also handling OverflowError. Changing this line to catch both ValueError and OverflowError allows deserialization to be successful:
https://github.com/microsoft/kiota-python/blob/b23edcbf268efdb81d14ef59cecc6c9565288248/packages/serialization/json/kiota_serialization_json/json_parse_node.py#L336
Most likely the other catch handlers in try_get_anything() should be updated as well.
- Lenguaje dominante
- Python
- Estrellas
- 31
- Forks
- 39
- Merge medio
- 13 h 21 min
- PR fusionados (30 d)
- 46
Guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de microsoft/kiota-python
-
help wanted type:bug
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
microsoft/kiota-python#477 · 2 comentarios ·
-
Dificultad 3/5 1-2 días Aptitud para principiantes 55/100
microsoft/kiota-python#745 ·
-
Dificultad 3/5 1-2 días Aptitud para principiantes 55/100
microsoft/kiota-python#744 · 1 comentario ·
-
Dificultad 3/5 1-2 días Aptitud para principiantes 72/100
microsoft/kiota-python#737 · 1 comentario ·
-
Dificultad 5/5 Más de una semana Aptitud para principiantes 35/100
microsoft/kiota-python#722 · 1 comentario ·
Todos los issues de microsoft/kiota-python
Issues similares
-
bug priority:low
Dificultad 2/5 1-3 horas Aptitud para principiantes 76/100
CyberAgent/psd2svg#436 ·
-
area/install-update comp/cli comp/desktop P3 sweeper:risk-compatibility type/bug
Dificultad 2/5 1-3 horas Aptitud para principiantes 86/100
NousResearch/hermes-agent#122386 · 1 comentario ·
-
ai-generated
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
vllm-project/production-stack#1105 ·
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 88/100