aboutsummaryrefslogtreecommitdiff
path: root/gn2/utility/json/encoders.py
diff options
context:
space:
mode:
authorArun Isaac2023-12-29 18:55:37 +0000
committerArun Isaac2023-12-29 19:01:46 +0000
commit204a308be0f741726b9a620d88fbc22b22124c81 (patch)
treeb3cf66906674020b530c844c2bb4982c8a0e2d39 /gn2/utility/json/encoders.py
parent83062c75442160427b50420161bfcae2c5c34c84 (diff)
downloadgenenetwork2-204a308be0f741726b9a620d88fbc22b22124c81.tar.gz
Namespace all modules under gn2.
We move all modules under a gn2 directory. This is important for "correct" packaging and deployment as a Guix service.
Diffstat (limited to 'gn2/utility/json/encoders.py')
-rw-r--r--gn2/utility/json/encoders.py17
1 files changed, 17 insertions, 0 deletions
diff --git a/gn2/utility/json/encoders.py b/gn2/utility/json/encoders.py
new file mode 100644
index 00000000..7c5839ac
--- /dev/null
+++ b/gn2/utility/json/encoders.py
@@ -0,0 +1,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)