123456789101112131415161718192021222324252627282930 |
- import datetime
- from flask.json import JSONEncoder as Base
- from typing import Any
- 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__
|