]> review.fuel-infra Code Review - openstack-build/cinder-build.git/commitdiff
Synced jsonutils from oslo-incubator
authorIhar Hrachyshka <ihrachys@redhat.com>
Tue, 27 May 2014 08:22:28 +0000 (10:22 +0200)
committerMatt Riedemann <mriedem@us.ibm.com>
Fri, 27 Jun 2014 16:47:01 +0000 (09:47 -0700)
The sync includes change that drastically enhances performance on Python
2.6 with fresh simplejson library installed.

The latest commit in oslo-incubator:
0f4586c0076183c6356eec682c8a593648125abd

The following changes are included with this patch:
-> 18f2bc1 Enforce unicode json output for jsonutils.load[s]()
--> cinder/openstack/common/jsonutils.py

Change-Id: Ib3dc0b713ed90396919feba018772243b3b9c90f
Closes-Bug: 1314129

cinder/openstack/common/jsonutils.py

index 733baef5724a9fcff74c7650f57d9d959400ff51..0aaa138db16f9adf03a66527aaac4c8b863a2ad1 100644 (file)
@@ -31,6 +31,7 @@ This module provides a few things:
 '''
 
 
+import codecs
 import datetime
 import functools
 import inspect
@@ -52,6 +53,7 @@ import six.moves.xmlrpc_client as xmlrpclib
 
 from cinder.openstack.common import gettextutils
 from cinder.openstack.common import importutils
+from cinder.openstack.common import strutils
 from cinder.openstack.common import timeutils
 
 netaddr = importutils.try_import("netaddr")
@@ -166,12 +168,12 @@ def dumps(value, default=to_primitive, **kwargs):
     return json.dumps(value, default=default, **kwargs)
 
 
-def loads(s):
-    return json.loads(s)
+def loads(s, encoding='utf-8'):
+    return json.loads(strutils.safe_decode(s, encoding))
 
 
-def load(fp):
-    return json.load(fp)
+def load(fp, encoding='utf-8'):
+    return json.load(codecs.getreader(encoding)(fp))
 
 
 try: