Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
mxrch
GitHub Repository: mxrch/GHunt
Path: blob/master/ghunt/objects/encoders.py
253 views
1
import json
2
from datetime import datetime
3
4
5
class GHuntEncoder(json.JSONEncoder):
6
"""
7
Converts non-default types when exporting to JSON.
8
"""
9
def default(self, o: object) -> dict:
10
if isinstance(o, set):
11
return list(o)
12
elif isinstance(o, datetime):
13
return f"{o.strftime('%Y/%m/%d %H:%M:%S')} (UTC)"
14
elif type(o) not in [str, list, int, float, bool, dict]:
15
if hasattr(o, "__dict__"):
16
return o.__dict__
17
else:
18
return {x:getattr(o, x) for x in o.__slots__}
19