Fix too long floating point number parse problem

- Also include @dougthor42's diff to test the fix
    see: [his diff](https://github.com/pre-commit/pre-commit-hooks/compare/main...dougthor42:high-precision-numbers)
This commit is contained in:
SilverTux 2022-10-06 17:51:41 +02:00
parent 6b03546fc3
commit 629df55544
3 changed files with 7 additions and 2 deletions

View file

@ -1,7 +1,7 @@
from __future__ import annotations
import argparse
import json
import simplejson as json
import sys
from difflib import unified_diff
from typing import Mapping
@ -23,7 +23,7 @@ def _get_pretty_format(
after.sort()
return dict(before + after)
json_pretty = json.dumps(
json.loads(contents, object_pairs_hook=pairs_first),
json.loads(contents, object_pairs_hook=pairs_first, use_decimal=True),
indent=indent,
ensure_ascii=ensure_ascii,
)

View file

@ -0,0 +1,3 @@
{
"foo": 4.4257052820783003
}

View file

@ -23,6 +23,8 @@ def test_parse_num_to_int():
('unsorted_pretty_formatted_json.json', 1),
('non_ascii_pretty_formatted_json.json', 1),
('pretty_formatted_json.json', 0),
# numbers with high precision should not be modified.
('high_precision_numbers.json', 0),
),
)
def test_main(filename, expected_retval):