##// END OF EJS Templates
Simplified ext_json thing, for better scope resolution in pydev
marcink -
r2528:5c8b1eaa beta
parent child Browse files
Show More
@@ -60,7 +60,7 b' def _obj_dump(obj):'
60 60 # Import simplejson
61 61 try:
62 62 # import simplejson initially
63 import simplejson as _sj
63 import simplejson
64 64
65 65 def extended_encode(obj):
66 66 try:
@@ -70,37 +70,42 b' try:'
70 70 raise TypeError("%r is not JSON serializable" % (obj,))
71 71 # we handle decimals our own it makes unified behavior of json vs
72 72 # simplejson
73 _sj.dumps = functools.partial(_sj.dumps, default=extended_encode,
74 use_decimal=False)
75 _sj.dump = functools.partial(_sj.dump, default=extended_encode,
76 use_decimal=False)
77 simplejson = _sj
78
73 simplejson.dumps = functools.partial(simplejson.dumps,
74 default=extended_encode,
75 use_decimal=False)
76 simplejson.dump = functools.partial(simplejson.dump,
77 default=extended_encode,
78 use_decimal=False)
79 79 except ImportError:
80 80 # no simplejson set it to None
81 _sj = None
81 simplejson = None
82 82
83 83
84 84 try:
85 85 # simplejson not found try out regular json module
86 import json as _json
86 import json
87 87
88 88 # extended JSON encoder for json
89 class ExtendedEncoder(_json.JSONEncoder):
89 class ExtendedEncoder(json.JSONEncoder):
90 90 def default(self, obj):
91 91 try:
92 92 return _obj_dump(obj)
93 93 except NotImplementedError:
94 94 pass
95 return _json.JSONEncoder.default(self, obj)
95 return json.JSONEncoder.default(self, obj)
96 96 # monkey-patch JSON encoder to use extended version
97 _json.dumps = functools.partial(_json.dumps, cls=ExtendedEncoder)
98 _json.dump = functools.partial(_json.dump, cls=ExtendedEncoder)
99 stdlib = _json
97 json.dumps = functools.partial(json.dumps, cls=ExtendedEncoder)
98 json.dump = functools.partial(json.dump, cls=ExtendedEncoder)
99
100 100 except ImportError:
101 _json = None
101 json = None
102
103 stdlib = json
102 104
103 105 # set all available json modules
104 simplejson = _sj
105 stdjson = _json
106 json = _sj if _sj else _json
106 if simplejson:
107 json = simplejson
108 elif json:
109 json = json
110 else:
111 raise ImportError('Could not find any json modules')
General Comments 0
You need to be logged in to leave comments. Login now