Fix for Python 3

This commit is contained in:
Andy Neff 2017-02-21 19:38:12 -05:00
parent fb0f9150b3
commit 8383e40216

View File

@ -7,7 +7,7 @@ import datetime
import decimal
import json
import uuid
from json.encoder import (FLOAT_REPR, INFINITY, _make_iterencode,
from json.encoder import (INFINITY, _make_iterencode,
encode_basestring, encode_basestring_ascii)
from django.db.models.query import QuerySet
@ -17,6 +17,11 @@ from django.utils.functional import Promise
from rest_framework.compat import coreapi, total_seconds
try:
from json.encoder import FLOAT_REPR
except:
FLOAT_REPR = float.__repr__
class JSONEncoder(json.JSONEncoder):
"""
@ -47,12 +52,6 @@ class JSONEncoder(json.JSONEncoder):
o = o.decode(_encoding)
return _orig_encoder(o)
if self.encoding != 'utf-8':
def _encoder(o, _orig_encoder=_encoder, _encoding=self.encoding):
if isinstance(o, str):
o = o.decode(_encoding)
return _orig_encoder(o)
def floatstr(o, allow_nan=self.allow_nan,
_repr=FLOAT_REPR, _inf=INFINITY, _neginf=-INFINITY):
# Check for specials. Note that this type of test is processor