Phyks (Lucas Verney)
905c141c13
* More logging * Using getpass in dev environment to ease passwords manipulation * Dynamic capabilities fetching for each module
28 lines
768 B
Python
28 lines
768 B
Python
import json
|
|
|
|
from datetime import date, datetime
|
|
from decimal import Decimal
|
|
|
|
|
|
class CustomJSONEncoder(json.JSONEncoder):
|
|
"""
|
|
Custom JSONEncoder to support more types.
|
|
"""
|
|
def default(self, o):
|
|
if isinstance(o, datetime) or isinstance(o, date):
|
|
# Serialize datetime objects to ISO dates
|
|
return o.isoformat()
|
|
elif isinstance(o, Decimal):
|
|
# Serialize Decimal objects to string
|
|
return str(o)
|
|
return json.JSONEncoder.default(self, o)
|
|
|
|
|
|
def pretty_json(foo):
|
|
"""
|
|
Pretty printing of JSON output, using the custom JSONEncoder.
|
|
"""
|
|
return json.dumps(foo, sort_keys=True,
|
|
indent=4, separators=(',', ': '),
|
|
cls=CustomJSONEncoder)
|