"""JSON encoder that converts datetime and date objects.""" import datetime from flask import json def utc_format(date): """Convert datetime to utc string.""" return date.isoformat() def utc_format_with_z(date): """Convert datetime to utc string.""" return utc_format(date) + ".000Z" class Encoder(json.JSONEncoder): """Encoder class to convert datetime and date objects.""" def default(self, obj): """Return a default encoder method implementation.""" if isinstance(obj, datetime.datetime): return utc_format_with_z(obj) if isinstance(obj, datetime.date): return utc_format(obj) return json.JSONEncoder.default(self, obj)