diff options
| author | Michael Williamson <mike@zwobble.org> | 2023-01-06 22:30:21 +0000 |
|---|---|---|
| committer | Michael Williamson <mike@zwobble.org> | 2023-01-06 22:33:26 +0000 |
| commit | 073ea85a376fc8f0253a6d0160ad3bd7b1c3c83d (patch) | |
| tree | 169c4c84a157df83b5409247ddc00e9a0420b2a1 /jq.pyx | |
| parent | cccaea76bfc67624c6ccb5d8d8990629b79e0bf8 (diff) | |
Update handling of non-finite numbers to match jq 1.6
Diffstat (limited to 'jq.pyx')
| -rw-r--r-- | jq.pyx | 11 |
1 files changed, 9 insertions, 2 deletions
@@ -2,7 +2,8 @@ import json import threading from cpython.bytes cimport PyBytes_AsString -from libc.math cimport modf +from libc.float cimport DBL_MAX +from libc.math cimport INFINITY, modf cdef extern from "jv.h": @@ -83,7 +84,13 @@ cdef object _jv_to_python(jv value): python_value = True elif kind == JV_KIND_NUMBER: number_value = jv_number_value(value) - if _is_integer(number_value): + if number_value == INFINITY: + python_value = DBL_MAX + elif number_value == -INFINITY: + python_value = -DBL_MAX + elif number_value != number_value: + python_value = None + elif _is_integer(number_value): python_value = int(number_value) else: python_value = number_value |
