##// END OF EJS Templates
deps: replaced simplejson with much faster orjson implementation
super-admin -
r4972:da637531 default
parent child Browse files
Show More
@@ -145,13 +145,12 b' nbconvert==7.2.9'
145 tinycss2==1.2.1
145 tinycss2==1.2.1
146 webencodings==0.5.1
146 webencodings==0.5.1
147 traitlets==5.9.0
147 traitlets==5.9.0
148 orjson==3.8.7
148 pastescript==3.3.0
149 pastescript==3.3.0
149 paste==3.5.2
150 paste==3.5.2
150 six==1.16.0
151 six==1.16.0
151 pastedeploy==3.0.1
152 pastedeploy==3.0.1
152 six==1.16.0
153 six==1.16.0
153 pathlib2==2.3.7.post1
154 six==1.16.0
155 premailer==3.10.0
154 premailer==3.10.0
156 cachetools==5.3.0
155 cachetools==5.3.0
157 cssselect==1.2.0
156 cssselect==1.2.0
@@ -1,10 +1,15 b''
1 import datetime
1 import datetime
2 import decimal
2 import decimal
3 import functools
3 import functools
4 # we keep simplejson for having dump functionality still
5 # orjson doesn't support it
6 import orjson
7 import simplejson
8 import orjson as json
4
9
5 import simplejson as json
6
10
7 from rhodecode.lib.datelib import is_aware
11 from rhodecode.lib.datelib import is_aware
12 from rhodecode.lib.str_utils import safe_str
8
13
9 try:
14 try:
10 import rhodecode.translation
15 import rhodecode.translation
@@ -57,8 +62,22 b' def _obj_dump(obj):'
57 raise TypeError(repr(obj) + " is not JSON serializable")
62 raise TypeError(repr(obj) + " is not JSON serializable")
58
63
59
64
60 json.dumps = functools.partial(json.dumps, default=_obj_dump, use_decimal=False)
65 json.dumps = functools.partial(json.dumps, default=_obj_dump, option=orjson.OPT_NON_STR_KEYS)
61 json.dump = functools.partial(json.dump, default=_obj_dump, use_decimal=False)
66 json.dump = functools.partial(simplejson.dump, default=_obj_dump)
67
68
69 def formatted_json(*args, **kwargs):
70 # alias for formatted json
71 opts = orjson.OPT_NON_STR_KEYS | orjson.OPT_INDENT_2 | orjson.OPT_SORT_KEYS
72 return functools.partial(json.dumps, option=opts)(*args, **kwargs)
73
62
74
63 # alias for formatted json
75 def formatted_str_json(*args, **kwargs):
64 formatted_json = functools.partial(json.dumps, indent=4, sort_keys=True)
76 opts = orjson.OPT_NON_STR_KEYS | orjson.OPT_INDENT_2 | orjson.OPT_SORT_KEYS
77 closure = functools.partial(json.dumps, option=opts)
78 return safe_str(closure(*args, **kwargs))
79
80
81 def str_json(*args, **kwargs):
82 closure = functools.partial(json.dumps)
83 return safe_str(closure(*args, **kwargs))
General Comments 0
You need to be logged in to leave comments. Login now