aboutsummaryrefslogtreecommitdiff
path: root/gn2/utility/json/encoders.py
blob: 7c5839ace3693b6b7ca2c8a2e1a23d844603d106 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
"""Custom JSON encoders"""
from uuid import UUID
from json import JSONEncoder

# Do not use this `__ENCODERS__` variable outside of this module.
__ENCODERS__ = {
    UUID: lambda obj: str(obj)
}

class CustomJSONEncoder(JSONEncoder):
    """Custom JSONEncoder class."""
    def default(self, obj):
        """Serialise `obj` to a JSON representation."""
        obj_type = type(obj)
        if obj_type in __ENCODERS__:
            return __ENCODERS__[obj_type](obj)
        return JSONEncoder.default(self, obj)