`.json()` unable to serialize datetime elements in `data` payload
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 3/5
- Tiempo estimado
- 1-2 días
- Aptitud para principiantes
- 35/100
- Tipo de issue
- Error
- Claridad
- Bastante claro
- Estado de actividad
- Estancado
- Stack tecnológico
- python
- Área
- backend-api-design
Línea de trabajo
El issue identifica cloudevents.pydantic.CloudEvent.json() como punto de entrada; empieza comparando su gestión de datetime con la de Pydantic BaseModel.json(). Añade un caso de regresión que use datetime en data y verifica que la serialización produzca una cadena en lugar de lanzar una excepción. Confirma el comportamiento con la reproducción mostrada en el issue.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
Expected Behavior
The CloudEvent model, like Pydantic's BaseModel, can serialize of datetime properties to strings in the .json() function.
Actual Behavior
The CloudEvent model raises a ValueError from the standard library's json.dumps function when .json() is called on a model containing datetime properties in the data field.
Alternatively, if this is intentional behavior, it would be helpful to have some guidance around what the expected usage is when users want to have dates or timestamps in their CloudEvent data.
Steps to Reproduce the Problem
- Init a CloudEvent where some element of the
dataargument is adatetimeinstance. - Call
.json()on the CloudEvent instance
For example:
from datetime import datetime
from cloudevents.pydantic import CloudEvent
event = CloudEvent(attributes={'source': 'my.source', 'type': 'com.my.type'}, data={'dt': datetime.now()})
# raises TypeError
print(event.json())
By contrast, Pydantic's BaseModel is able to encode datetime properties:
from datetime import datetime
from pydantic import BaseModel
class MyModel(BaseModel):
dt: datetime
foo = MyModel(dt=datetime.now())
# encodes dt as a string
print(foo.json())
Specifications
- Platform: MacOS Ventura 13.2.1 (Intel)
- Python Version: 3.9.9
- Lenguaje dominante
- Python
- Estrellas
- 342
- Forks
- 65
- Métricas de merge de PR
- Sin PR fusionados en 30 d
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 cloudevents/sdk-python
-
Kafka `to_binary()` crashes on events without `datacontenttype` or with non-string attributes Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
cloudevents/sdk-python#304 ·
-
bug
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
cloudevents/sdk-python#300 ·
-
enhancement
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
cloudevents/sdk-python#291 · 8 comentarios ·
-
Dificultad 1/5 Menos de una hora Aptitud para principiantes 48/100
cloudevents/sdk-python#247 · 2 comentarios ·
-
question
Dificultad 3/5 1-2 días Aptitud para principiantes 45/100
cloudevents/sdk-python#246 · 5 comentarios ·
Todos los issues de cloudevents/sdk-python
Issues similares
-
bug confirmed issue
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100
open-webui/open-webui#30750 · 1 comentario ·
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100
-
enhancement
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100
OpenwaterHealth/openmotion-bloodflow-app#604 · 1 comentario ·
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 70/100
-
good first issue
Dificultad 1/5 Menos de una hora Aptitud para principiantes 90/100