Coverage for /var/srv/projects/api.amasfac.comuna18.com/tmp/venv/lib/python3.9/site-packages/rest_framework/utils/json.py: 75%
20 statements
« prev ^ index » next coverage.py v6.4.4, created at 2023-07-17 14:22 -0600
« prev ^ index » next coverage.py v6.4.4, created at 2023-07-17 14:22 -0600
1"""
2Wrapper for the builtin json module that ensures compliance with the JSON spec.
4REST framework should always import this wrapper module in order to maintain
5spec-compliant encoding/decoding. Support for non-standard features should be
6handled by users at the renderer and parser layer.
7"""
8import functools
9import json # noqa
12def strict_constant(o):
13 raise ValueError('Out of range float values are not JSON compliant: ' + repr(o))
16@functools.wraps(json.dump)
17def dump(*args, **kwargs):
18 kwargs.setdefault('allow_nan', False)
19 return json.dump(*args, **kwargs)
22@functools.wraps(json.dumps)
23def dumps(*args, **kwargs):
24 kwargs.setdefault('allow_nan', False)
25 return json.dumps(*args, **kwargs)
28@functools.wraps(json.load)
29def load(*args, **kwargs):
30 kwargs.setdefault('parse_constant', strict_constant)
31 return json.load(*args, **kwargs)
34@functools.wraps(json.loads)
35def loads(*args, **kwargs):
36 kwargs.setdefault('parse_constant', strict_constant)
37 return json.loads(*args, **kwargs)