12345678910111213141516171819202122232425262728293031 |
- import datetime
- from typing import Any
- from flask.json import JSONEncoder as Base
- from pycs.database.util.JSONEncoder import JSONEncoder as DatabaseEncoder
- from pycs.jobs.util.JSONEncoder import JSONEncoder as JobsEncoder
- class JSONEncoder(Base):
- """
- prepares job and DB objects to be json encoded
- """
- def default(self, o: Any) -> Any:
- module = o.__class__.__module__
- if module.startswith('pycs.database'):
- return DatabaseEncoder().default(o)
- if module.startswith('pycs.jobs'):
- return JobsEncoder().default(o)
- if isinstance(o, datetime.datetime):
- return str(o)
- if isinstance(o, dict):
- return o
- return o.__dict__
|