summaryrefslogtreecommitdiffstats
path: root/scripts/external_libs/pyzmq-14.5.0/python2/cel59/32bit/zmq/utils/jsonapi.py
diff options
context:
space:
mode:
authorimarom <imarom@cisco.com>2016-03-20 16:29:23 +0200
committerimarom <imarom@cisco.com>2016-03-21 14:49:06 +0200
commit7e7cc8a3f9cfa4b0bda18b50ea79145c6bc2a045 (patch)
treec74b87de7ba812f1d0ace7d834bcefae73528c0c /scripts/external_libs/pyzmq-14.5.0/python2/cel59/32bit/zmq/utils/jsonapi.py
parent14b94326315f1fa46187868dac16503b3f454b9e (diff)
python 3 - rearrange
Diffstat (limited to 'scripts/external_libs/pyzmq-14.5.0/python2/cel59/32bit/zmq/utils/jsonapi.py')
-rw-r--r--scripts/external_libs/pyzmq-14.5.0/python2/cel59/32bit/zmq/utils/jsonapi.py59
1 files changed, 59 insertions, 0 deletions
diff --git a/scripts/external_libs/pyzmq-14.5.0/python2/cel59/32bit/zmq/utils/jsonapi.py b/scripts/external_libs/pyzmq-14.5.0/python2/cel59/32bit/zmq/utils/jsonapi.py
new file mode 100644
index 00000000..865ca6d5
--- /dev/null
+++ b/scripts/external_libs/pyzmq-14.5.0/python2/cel59/32bit/zmq/utils/jsonapi.py
@@ -0,0 +1,59 @@
+"""Priority based json library imports.
+
+Always serializes to bytes instead of unicode for zeromq compatibility
+on Python 2 and 3.
+
+Use ``jsonapi.loads()`` and ``jsonapi.dumps()`` for guaranteed symmetry.
+
+Priority: ``simplejson`` > ``jsonlib2`` > stdlib ``json``
+
+``jsonapi.loads/dumps`` provide kwarg-compatibility with stdlib json.
+
+``jsonapi.jsonmod`` will be the module of the actual underlying implementation.
+"""
+
+# Copyright (C) PyZMQ Developers
+# Distributed under the terms of the Modified BSD License.
+
+from zmq.utils.strtypes import bytes, unicode
+
+jsonmod = None
+
+priority = ['simplejson', 'jsonlib2', 'json']
+for mod in priority:
+ try:
+ jsonmod = __import__(mod)
+ except ImportError:
+ pass
+ else:
+ break
+
+def dumps(o, **kwargs):
+ """Serialize object to JSON bytes (utf-8).
+
+ See jsonapi.jsonmod.dumps for details on kwargs.
+ """
+
+ if 'separators' not in kwargs:
+ kwargs['separators'] = (',', ':')
+
+ s = jsonmod.dumps(o, **kwargs)
+
+ if isinstance(s, unicode):
+ s = s.encode('utf8')
+
+ return s
+
+def loads(s, **kwargs):
+ """Load object from JSON bytes (utf-8).
+
+ See jsonapi.jsonmod.loads for details on kwargs.
+ """
+
+ if str is unicode and isinstance(s, bytes):
+ s = s.decode('utf8')
+
+ return jsonmod.loads(s, **kwargs)
+
+__all__ = ['jsonmod', 'dumps', 'loads']
+