diff options
author | Hanoh Haim <hhaim@cisco.com> | 2016-03-21 12:55:37 +0200 |
---|---|---|
committer | Hanoh Haim <hhaim@cisco.com> | 2016-03-21 12:55:37 +0200 |
commit | 14b94326315f1fa46187868dac16503b3f454b9e (patch) | |
tree | b1fa98d5d8ebabd3256d691d47944b763684fae9 /scripts/external_libs/pyzmq-14.5.0/cel59/python3/64bit/zmq/utils/jsonapi.py | |
parent | 1831e9bbc03484b078dbd604dfec0e025cea8eca (diff) | |
parent | bd933929deb40243e4fb218ec2c5b33a12a6e02a (diff) |
Merge Scapy 3.0
Diffstat (limited to 'scripts/external_libs/pyzmq-14.5.0/cel59/python3/64bit/zmq/utils/jsonapi.py')
-rw-r--r-- | scripts/external_libs/pyzmq-14.5.0/cel59/python3/64bit/zmq/utils/jsonapi.py | 59 |
1 files changed, 59 insertions, 0 deletions
diff --git a/scripts/external_libs/pyzmq-14.5.0/cel59/python3/64bit/zmq/utils/jsonapi.py b/scripts/external_libs/pyzmq-14.5.0/cel59/python3/64bit/zmq/utils/jsonapi.py new file mode 100644 index 00000000..865ca6d5 --- /dev/null +++ b/scripts/external_libs/pyzmq-14.5.0/cel59/python3/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'] + |