json-repair 0.35.0__tar.gz → 0.36.1__tar.gz
Sign up to get free protection for your applications and to get access to all the features.
- {json_repair-0.35.0/src/json_repair.egg-info → json_repair-0.36.1}/PKG-INFO +2 -2
- {json_repair-0.35.0 → json_repair-0.36.1}/pyproject.toml +1 -1
- {json_repair-0.35.0 → json_repair-0.36.1}/src/json_repair/json_parser.py +5 -1
- {json_repair-0.35.0 → json_repair-0.36.1/src/json_repair.egg-info}/PKG-INFO +2 -2
- {json_repair-0.35.0 → json_repair-0.36.1}/tests/test_json_repair.py +3 -1
- {json_repair-0.35.0 → json_repair-0.36.1}/LICENSE +0 -0
- {json_repair-0.35.0 → json_repair-0.36.1}/README.md +0 -0
- {json_repair-0.35.0 → json_repair-0.36.1}/setup.cfg +0 -0
- {json_repair-0.35.0 → json_repair-0.36.1}/src/json_repair/__init__.py +0 -0
- {json_repair-0.35.0 → json_repair-0.36.1}/src/json_repair/__main__.py +0 -0
- {json_repair-0.35.0 → json_repair-0.36.1}/src/json_repair/json_context.py +0 -0
- {json_repair-0.35.0 → json_repair-0.36.1}/src/json_repair/json_repair.py +0 -0
- {json_repair-0.35.0 → json_repair-0.36.1}/src/json_repair/py.typed +0 -0
- {json_repair-0.35.0 → json_repair-0.36.1}/src/json_repair/string_file_wrapper.py +0 -0
- {json_repair-0.35.0 → json_repair-0.36.1}/src/json_repair.egg-info/SOURCES.txt +0 -0
- {json_repair-0.35.0 → json_repair-0.36.1}/src/json_repair.egg-info/dependency_links.txt +0 -0
- {json_repair-0.35.0 → json_repair-0.36.1}/src/json_repair.egg-info/entry_points.txt +0 -0
- {json_repair-0.35.0 → json_repair-0.36.1}/src/json_repair.egg-info/top_level.txt +0 -0
- {json_repair-0.35.0 → json_repair-0.36.1}/tests/test_coverage.py +0 -0
- {json_repair-0.35.0 → json_repair-0.36.1}/tests/test_performance.py +0 -0
@@ -3,7 +3,7 @@ requires = ["setuptools>=61.0"]
|
|
3
3
|
build-backend = "setuptools.build_meta"
|
4
4
|
[project]
|
5
5
|
name = "json_repair"
|
6
|
-
version = "0.
|
6
|
+
version = "0.36.1"
|
7
7
|
license = {file = "LICENSE"}
|
8
8
|
authors = [
|
9
9
|
{ name="Stefano Baccianella", email="4247706+mangiucugna@users.noreply.github.com" },
|
@@ -223,6 +223,10 @@ class JSONParser:
|
|
223
223
|
"While parsing an array we missed the closing ], adding it back",
|
224
224
|
)
|
225
225
|
self.index -= 1
|
226
|
+
# Add the missing closing bracket
|
227
|
+
self.json_str = (
|
228
|
+
self.json_str[: self.index + 1] + "]" + self.json_str[self.index + 1 :]
|
229
|
+
)
|
226
230
|
|
227
231
|
self.index += 1
|
228
232
|
self.context.reset()
|
@@ -585,7 +589,7 @@ class JSONParser:
|
|
585
589
|
i += 1
|
586
590
|
next_c = self.get_char_at(i)
|
587
591
|
while next_c and next_c != ":":
|
588
|
-
if next_c
|
592
|
+
if next_c in [",", "]", "}"] or (
|
589
593
|
next_c == rstring_delimiter
|
590
594
|
and self.get_char_at(i - 1) != "\\"
|
591
595
|
):
|
@@ -109,6 +109,7 @@ def test_missing_and_mixed_quotes():
|
|
109
109
|
assert repair_json('{"key": "lorem ipsum ... "sic " tamet. ...}') == '{"key": "lorem ipsum ... \\"sic \\" tamet. ..."}'
|
110
110
|
assert repair_json('{"key": value , }') == '{"key": "value"}'
|
111
111
|
assert repair_json('{"comment": "lorem, "ipsum" sic "tamet". To improve"}') == '{"comment": "lorem, \\"ipsum\\" sic \\"tamet\\". To improve"}'
|
112
|
+
assert repair_json('{"key": "v\"alu\"e"} key:') == '{"key": "v\\"alu\\"e"}'
|
112
113
|
|
113
114
|
def test_array_edge_cases():
|
114
115
|
assert repair_json("[1, 2, 3,") == "[1, 2, 3]"
|
@@ -122,7 +123,8 @@ def test_array_edge_cases():
|
|
122
123
|
assert repair_json('{"key1": {"key2": [1, 2, 3') == '{"key1": {"key2": [1, 2, 3]}}'
|
123
124
|
assert repair_json('{"key": ["value]}') == '{"key": ["value"]}'
|
124
125
|
assert repair_json('["lorem "ipsum" sic"]') == '["lorem \\"ipsum\\" sic"]'
|
125
|
-
|
126
|
+
assert repair_json('{"key1": ["value1", "value2"}, "key2": ["value3", "value4"]}') == '{"key1": ["value1", "value2"], "key2": ["value3", "value4"]}'
|
127
|
+
|
126
128
|
def test_escaping():
|
127
129
|
assert repair_json("'\"'") == '""'
|
128
130
|
assert repair_json("{\"key\": 'string\"\n\t\le'") == '{"key": "string\\"\\n\\t\\\\le"}'
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|