changeset 2528:5c8b1eaafe77 beta

Simplified ext_json thing, for better scope resolution in pydev
author Marcin Kuzminski <marcin@python-works.com>
date Sun, 01 Jul 2012 17:49:42 +0200
parents 95624ce4465f
children 40b3a54391f9
files rhodecode/lib/ext_json.py
diffstat 1 files changed, 23 insertions(+), 18 deletions(-) [+]
line wrap: on
line diff
--- a/rhodecode/lib/ext_json.py	Sun Jul 01 16:24:15 2012 +0200
+++ b/rhodecode/lib/ext_json.py	Sun Jul 01 17:49:42 2012 +0200
@@ -60,7 +60,7 @@
 # Import simplejson
 try:
     # import simplejson initially
-    import simplejson as _sj
+    import simplejson
 
     def extended_encode(obj):
         try:
@@ -70,37 +70,42 @@
         raise TypeError("%r is not JSON serializable" % (obj,))
     # we handle decimals our own it makes unified behavior of json vs
     # simplejson
-    _sj.dumps = functools.partial(_sj.dumps, default=extended_encode,
-                                  use_decimal=False)
-    _sj.dump = functools.partial(_sj.dump, default=extended_encode,
-                                 use_decimal=False)
-    simplejson = _sj
-
+    simplejson.dumps = functools.partial(simplejson.dumps,
+                                         default=extended_encode,
+                                         use_decimal=False)
+    simplejson.dump = functools.partial(simplejson.dump,
+                                        default=extended_encode,
+                                        use_decimal=False)
 except ImportError:
     # no simplejson set it to None
-    _sj = None
+    simplejson = None
 
 
 try:
     # simplejson not found try out regular json module
-    import json as _json
+    import json
 
     # extended JSON encoder for json
-    class ExtendedEncoder(_json.JSONEncoder):
+    class ExtendedEncoder(json.JSONEncoder):
         def default(self, obj):
             try:
                 return _obj_dump(obj)
             except NotImplementedError:
                 pass
-            return _json.JSONEncoder.default(self, obj)
+            return json.JSONEncoder.default(self, obj)
     # monkey-patch JSON encoder to use extended version
-    _json.dumps = functools.partial(_json.dumps, cls=ExtendedEncoder)
-    _json.dump = functools.partial(_json.dump, cls=ExtendedEncoder)
-    stdlib = _json
+    json.dumps = functools.partial(json.dumps, cls=ExtendedEncoder)
+    json.dump = functools.partial(json.dump, cls=ExtendedEncoder)
+
 except ImportError:
-    _json = None
+    json = None
+
+stdlib = json
 
 # set all available json modules
-simplejson = _sj
-stdjson = _json
-json = _sj if _sj else _json
+if simplejson:
+    json = simplejson
+elif json:
+    json = json
+else:
+    raise ImportError('Could not find any json modules')