A multipurpose python flask API server and administration SPA
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
"""JSON specific utilities.""" from datetime import date from typing import Any
import rfc3339 from flask.json import JSONEncoder
from corvus.db import db from corvus.service.transformation_service import serialize_model
class CustomJSONEncoder(JSONEncoder): """Ensure that datetime values are serialized correctly."""
def default(self, o: Any) -> Any: # pylint: disable=E0202 """Handle encoding date and datetime objects according to rfc3339.""" try: if isinstance(o, date): return rfc3339.format(o) if isinstance(o, db.Model): return serialize_model(o) iterable = iter(o) except TypeError: pass else: return list(iterable) return JSONEncoder.default(self, o)
|