summaryrefslogtreecommitdiff
path: root/kombu
diff options
context:
space:
mode:
authorAsk Solem <ask@celeryproject.org>2016-10-21 17:49:07 -0700
committerAsk Solem <ask@celeryproject.org>2016-10-21 17:49:07 -0700
commitdac81908fd5b46791944a76f48f093a652363b97 (patch)
treed2067709921d1f31037f580353665455ec0601a1 /kombu
parent974fa0200b0adefa51bb26fdcd222f661deb0290 (diff)
downloadkombu-dac81908fd5b46791944a76f48f093a652363b97.tar.gz
Json: Adds ability to override default encoder
Diffstat (limited to 'kombu')
-rw-r--r--kombu/utils/json.py7
1 files changed, 5 insertions, 2 deletions
diff --git a/kombu/utils/json.py b/kombu/utils/json.py
index c9801705..7f983c7c 100644
--- a/kombu/utils/json.py
+++ b/kombu/utils/json.py
@@ -31,6 +31,7 @@ else:
IS_PY3 = sys.version_info[0] == 3
_encoder_cls = type(json._default_encoder)
+_default_encoder = None # ... set to JSONEncoder below.
class JSONEncoder(_encoder_cls):
@@ -59,12 +60,14 @@ class JSONEncoder(_encoder_cls):
elif isinstance(o, textual):
return text_t(o)
return super(JSONEncoder, self).default(o)
+_default_encoder = JSONEncoder
-def dumps(s, _dumps=json.dumps, cls=JSONEncoder,
+def dumps(s, _dumps=json.dumps, cls=None,
default_kwargs=_json_extra_kwargs, **kwargs):
"""Serialize object to json string."""
- return _dumps(s, cls=cls, **dict(default_kwargs, **kwargs))
+ return _dumps(s, cls=cls or _default_encoder,
+ **dict(default_kwargs, **kwargs))
def loads(s, _loads=json.loads, decode_bytes=IS_PY3):