Browse Source

bug fix/refactoring commong IEncoder

Steve Nyemba 1 year ago
parent
commit
6f7d912e20
3 changed files with 33 additions and 2 deletions
  1. 17 0
      transport/common.py
  2. 15 1
      transport/nosql/mongodb.py
  3. 1 1
      transport/other/callback.py

+ 17 - 0
transport/common.py

@@ -0,0 +1,17 @@
+import json
+
+
+class IEncoder (json.JSONEncoder):
+	def default (self,object):
+		if type(object) == np.integer :
+			return int(object)
+		elif type(object) == np.floating:
+			return float(object)
+		elif type(object) == np.ndarray :
+			return object.tolist()
+		elif type(object) == datetime :
+			return object.isoformat()
+		else:
+			return super(IEncoder,self).default(object)
+
+

+ 15 - 1
transport/nosql/mongodb.py

@@ -17,7 +17,21 @@ import sys
 import json
 import re
 from multiprocessing import Lock, RLock
-from transport.common import IEncoder
+# from transport.common import IEncoder
+
+class IEncoder (json.JSONEncoder):
+	def default (self,object):
+		if type(object) == np.integer :
+			return int(object)
+		elif type(object) == np.floating:
+			return float(object)
+		elif type(object) == np.ndarray :
+			return object.tolist()
+		elif type(object) == datetime :
+			return object.isoformat()
+		else:
+			return super(IEncoder,self).default(object)
+
 
 class Mongo :
     lock = RLock()

+ 1 - 1
transport/other/callback.py

@@ -1,6 +1,6 @@
 import queue
 from threading import Thread, Lock
-from transport.common import Reader,Writer
+# from transport.common import Reader,Writer
 import numpy as np
 import pandas as pd