Unexpected behaviour with explicitly setting seconds = 0 with timedelta and using to_dict
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 2/5
- Tiempo estimado
- 1-3 horas
- Aptitud para principiantes
- 45/100
Línea de trabajo
Comienza localizando el manejo de timedelta utilizado por Message.to_dict y reproduce los dos ejemplos del issue en Python 3.11. Comprueba que una timedelta de cero segundos proporcionada explícitamente se conserve en el diccionario, con una salida que coincida con el caso esperado {'timeout': '0s'}.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
Summary
When using timedelta with explicitly setting the seconds to 0 the output is empty instead of being explicitly set
Reproduction Steps
>>> from datetime import timedelta
>>> from dataclasses import dataclass
>>> import betterproto
>>>
>>> @dataclass(eq=False, repr=False)
... class TestTimeout(betterproto.Message):
... timeout: timedelta = betterproto.message_field(1)
...
>>> TestTimeout(timeout=timedelta(seconds=0)).to_dict()
{}
>>> from datetime import timedelta
>>> from dataclasses import dataclass
>>> import betterproto
>>>
>>> @dataclass(eq=False, repr=False)
... class TestTimeout(betterproto.Message):
... timeout: timedelta = betterproto.message_field(1)
...
>>> TestTimeout(timeout=timedelta(seconds=1)).to_dict()
{'timeout': '1.000s'}
Expected Results
Output expected to be {'timeout': '0s'}
Actual Results
Output is an empty dict {}
System Information
betterproto==2.0.0b6
python 3.11
Checklist
- I have searched the issues for duplicates.
- I have shown the entire traceback, if possible.
- I have verified this issue occurs on the latest prelease of betterproto which can be installed using
pip install -U --pre betterproto, if possible.
- Lenguaje dominante
- Python
- Estrellas
- 1.8k
- Forks
- 235
- Métricas de merge de PR
- Sin PR fusionados en 30 d
Preparar el entorno
- Sin Dockerfile ni archivo de Docker Compose
- Tiene una plantilla de pull request
- Leer la 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 danielgtaylor/python-betterproto
-
Dificultad 3/5 1-2 días Aptitud para principiantes 55/100
-
Dificultad 5/5 Más de una semana Aptitud para principiantes 15/100
-
bug investigation needed
Dificultad 3/5 1-2 días Aptitud para principiantes 42/100
-
bug investigation needed
Dificultad 3/5 1-2 días Aptitud para principiantes 45/100
-
bug investigation needed
Dificultad 4/5 3-5 días Aptitud para principiantes 38/100
danielgtaylor/python-betterproto#676 · 3 comentarios ·
Todos los issues de danielgtaylor/python-betterproto
Issues similares
-
[Resource]: glyphcss-diagramsAbiertoresource-submission validation-passed
Dificultad 1/5 Menos de una hora Aptitud para principiantes 88/100
hesreallyhim/awesome-claude-code#3214 · 1 comentario ·
Los mantenedores suelen responder en 1 día
-
room-commons replace accepts an empty old string and silently prepends the new text to the pageAbierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
doobidoo/mcp-memory-service#1650 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 1/5 1-3 horas Aptitud para principiantes 82/100
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 76/100
ml-explore/mlx-lm#2002 ·
Los mantenedores suelen responder en 2 días