diff options
Diffstat (limited to 'sphinx/util/jsonimpl.py')
-rw-r--r-- | sphinx/util/jsonimpl.py | 30 |
1 files changed, 10 insertions, 20 deletions
diff --git a/sphinx/util/jsonimpl.py b/sphinx/util/jsonimpl.py index 8c51f4416..1d296b6b7 100644 --- a/sphinx/util/jsonimpl.py +++ b/sphinx/util/jsonimpl.py @@ -9,28 +9,18 @@ :license: BSD, see LICENSE for details. """ -import UserString - -try: - import json - # json-py's json module has no JSONEncoder; this will raise AttributeError - # if json-py is imported instead of the built-in json module - JSONEncoder = json.JSONEncoder -except (ImportError, AttributeError): - try: - import simplejson as json - JSONEncoder = json.JSONEncoder - except ImportError: - json = None - JSONEncoder = object - - -class SphinxJSONEncoder(JSONEncoder): +import json + +from six import text_type +from six.moves import UserString + + +class SphinxJSONEncoder(json.JSONEncoder): """JSONEncoder subclass that forces translation proxies.""" def default(self, obj): - if isinstance(obj, UserString.UserString): - return unicode(obj) - return JSONEncoder.default(self, obj) + if isinstance(obj, UserString): + return text_type(obj) + return json.JSONEncoder.default(self, obj) def dump(obj, fp, *args, **kwds): |