diff options
author | 2016-03-20 16:29:23 +0200 | |
---|---|---|
committer | 2016-03-21 14:49:06 +0200 | |
commit | 7e7cc8a3f9cfa4b0bda18b50ea79145c6bc2a045 (patch) | |
tree | c74b87de7ba812f1d0ace7d834bcefae73528c0c /scripts/external_libs/pyzmq-14.5.0/python3/cel59/64bit/zmq/utils/jsonapi.py | |
parent | 14b94326315f1fa46187868dac16503b3f454b9e (diff) |
python 3 - rearrange
Diffstat (limited to 'scripts/external_libs/pyzmq-14.5.0/python3/cel59/64bit/zmq/utils/jsonapi.py')
-rw-r--r-- | scripts/external_libs/pyzmq-14.5.0/python3/cel59/64bit/zmq/utils/jsonapi.py | 59 |
1 files changed, 59 insertions, 0 deletions
diff --git a/scripts/external_libs/pyzmq-14.5.0/python3/cel59/64bit/zmq/utils/jsonapi.py b/scripts/external_libs/pyzmq-14.5.0/python3/cel59/64bit/zmq/utils/jsonapi.py new file mode 100644 index 00000000..865ca6d5 --- /dev/null +++ b/scripts/external_libs/pyzmq-14.5.0/python3/cel59/64bit/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'] + |