Milimetric has submitted this change and it was merged.

Change subject: decimal json fix
......................................................................


decimal json fix

Change-Id: Ib060ed9c970f18431272941e886b3dced577dc33
---
M wikimetrics/utils.py
1 file changed, 9 insertions(+), 5 deletions(-)

Approvals:
  Milimetric: Verified; Looks good to me, approved



diff --git a/wikimetrics/utils.py b/wikimetrics/utils.py
index 7c58822..e3ec69a 100644
--- a/wikimetrics/utils.py
+++ b/wikimetrics/utils.py
@@ -1,5 +1,6 @@
 import json
 import datetime
+import decimal
 from time import mktime
 from flask import Response
 
@@ -8,9 +9,9 @@
     """
     Handles returning generic arguments as json in a Flask application.
     Takes care of the following custom encoding duties:
-        * datetime.datetime objects encoded via DateTimeCapableEncoder
+        * datetime.datetime objects encoded via BetterEncoder
     """
-    data = json.dumps(dict(*args, **kwargs), cls=DateTimeCapableEncoder, 
indent=4)
+    data = json.dumps(dict(*args, **kwargs), cls=BetterEncoder, indent=4)
     return Response(data, mimetype='application/json')
 
 
@@ -30,19 +31,22 @@
     return json_response(isRedirect=True, redirectTo=url)
 
 
-class DateTimeCapableEncoder(json.JSONEncoder):
+class BetterEncoder(json.JSONEncoder):
     """
     Date/Time objects are not serializable by the built-in
     json library because there is no agreed upon standard of how to do so
     This class can be used as follows to allow your json.dumps to serialize 
dates properly.
     You should make sure your client is happy with this serialization:
-        print json.dumps(obj, cls=DateTimeCapableEncoder)
+        print json.dumps(obj, cls=BetterEncoder)
     """
     
     def default(self, obj):
         if isinstance(obj, datetime.datetime):
             return int(mktime(obj.timetuple()))
-
+        
+        if isinstance(obj, decimal.Decimal):
+            return float(obj)
+        
         return json.JSONEncoder.default(self, obj)
 
 

-- 
To view, visit https://gerrit.wikimedia.org/r/74644
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: merged
Gerrit-Change-Id: Ib060ed9c970f18431272941e886b3dced577dc33
Gerrit-PatchSet: 1
Gerrit-Project: analytics/wikimetrics
Gerrit-Branch: master
Gerrit-Owner: Milimetric <[email protected]>
Gerrit-Reviewer: Milimetric <[email protected]>

_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to