Source code for search.encode
"""Utilities for response encoding/serialization."""
from datetime import date, datetime
from flask.json import JSONEncoder
from typing import Any, List, Union
[docs]class ISO8601JSONEncoder(JSONEncoder):
"""Renders date and datetime objects as ISO8601 datetime strings."""
[docs] def default(self, obj: Any) -> Union[str, List[Any]]:
"""Overriden to render date(time)s in isoformat."""
try:
if isinstance(obj, (date, datetime)):
return obj.isoformat()
iterable = iter(obj)
except TypeError:
pass
else:
return list(iterable)
return JSONEncoder.default(self, obj) #type: ignore