JSONEncoder.py 463 B

12345678910111213141516171819202122
  1. import datetime
  2. import typing as T
  3. from flask import json
  4. class JSONEncoder(json.JSONEncoder):
  5. """
  6. prepares job and DB objects to be json encoded
  7. """
  8. def default(self, o: T.Any) -> T.Any:
  9. if hasattr(o, "serialize") and callable(o.serialize):
  10. return o.serialize()
  11. if isinstance(o, datetime.datetime):
  12. return str(o)
  13. if isinstance(o, dict):
  14. return o
  15. return o.__dict__.copy()