summaryrefslogtreecommitdiff
path: root/django/utils/simplejson.py
diff options
context:
space:
mode:
authorAymeric Augustin <aymeric.augustin@m4x.org>2012-04-29 19:58:00 +0200
committerAymeric Augustin <aymeric.augustin@m4x.org>2012-04-29 19:58:00 +0200
commitcec6bd5a59547dc97fe98975c570fc27a1e970be (patch)
treed084ff2008e4bba125c4b28297d6469992f2ec95 /django/utils/simplejson.py
parentee0a7c741e98214bac7eeb60b848cf099ff28836 (diff)
Fixed #18023 -- Removed bundled simplejson.
And started the deprecation path for django.utils.simplejson. Thanks Alex Ogier, Clueless, and other contributors for their work on the patch.
Diffstat (limited to 'django/utils/simplejson.py')
-rw-r--r--django/utils/simplejson.py31
1 files changed, 31 insertions, 0 deletions
diff --git a/django/utils/simplejson.py b/django/utils/simplejson.py
new file mode 100644
index 0000000000..a851a4f8ef
--- /dev/null
+++ b/django/utils/simplejson.py
@@ -0,0 +1,31 @@
+# Django 1.5 only supports Python >= 2.6, where the standard library includes
+# the json module. Previous version of Django shipped a copy for Python < 2.6.
+
+# For backwards compatibility, we're keeping an importable json module
+# at this location, with the same lookup sequence.
+
+# Avoid shadowing the simplejson module
+from __future__ import absolute_import
+
+import warnings
+warnings.warn("django.utils.simplejson is deprecated; use json instead.",
+ PendingDeprecationWarning)
+
+try:
+ import simplejson
+except ImportError:
+ use_simplejson = False
+else:
+ # The system-installed version has priority providing it is either not an
+ # earlier version or it contains the C speedups.
+ from json import __version__ as stdlib_json_version
+ use_simplejson = (hasattr(simplejson, '_speedups') or
+ simplejson.__version__.split('.') >= stdlib_json_version.split('.'))
+
+# Make sure we copy over the version. See #17071
+if use_simplejson:
+ from simplejson import *
+ from simplejson import __version__
+else:
+ from json import *
+ from json import __version__