Cleanup json decoder: float() has builtin support of nan, +inf, -inf since Python 2.6

This commit is contained in:
Victor Stinner 2012-11-29 00:12:40 +01:00
parent 9f94b6dc4b
commit d7fed37059
1 changed files with 3 additions and 11 deletions

View File

@ -1,9 +1,6 @@
"""Implementation of JSONDecoder """Implementation of JSONDecoder
""" """
import binascii
import re import re
import sys
import struct
from json import scanner from json import scanner
try: try:
@ -15,14 +12,9 @@ __all__ = ['JSONDecoder']
FLAGS = re.VERBOSE | re.MULTILINE | re.DOTALL FLAGS = re.VERBOSE | re.MULTILINE | re.DOTALL
def _floatconstants(): NaN = float('nan')
_BYTES = binascii.unhexlify(b'7FF80000000000007FF0000000000000') PosInf = float('inf')
if sys.byteorder != 'big': NegInf = float('-inf')
_BYTES = _BYTES[:8][::-1] + _BYTES[8:][::-1]
nan, inf = struct.unpack('dd', _BYTES)
return nan, inf, -inf
NaN, PosInf, NegInf = _floatconstants()
def linecol(doc, pos): def linecol(doc, pos):