json-repair 0.34.0__py3-none-any.whl → 0.36.0__py3-none-any.whl

Sign up to get free protection for your applications and to get access to all the features.
@@ -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()
@@ -443,6 +447,38 @@ class JSONParser:
443
447
  string_acc += escape_seqs.get(char, char) or char
444
448
  self.index += 1
445
449
  char = self.get_char_at()
450
+ # If we are in object key context and we find a colon, it could be a missing right quote
451
+ if (
452
+ char == ":"
453
+ and not missing_quotes
454
+ and self.context.current == ContextValues.OBJECT_KEY
455
+ ):
456
+ # Ok now we need to check if this is followed by a value like "..."
457
+ i = self.skip_to_character(character=lstring_delimiter, idx=1)
458
+ next_c = self.get_char_at(i)
459
+ if next_c:
460
+ i += 1
461
+ # found the first delimiter
462
+ i = self.skip_to_character(character=rstring_delimiter, idx=i)
463
+ next_c = self.get_char_at(i)
464
+ if next_c:
465
+ # found a second delimiter
466
+ i += 1
467
+ # Skip spaces
468
+ i = self.skip_whitespaces_at(idx=i, move_main_index=False)
469
+ next_c = self.get_char_at(i)
470
+ if next_c and next_c in [",", "}"]:
471
+ # Ok then this is a missing right quote
472
+ self.log(
473
+ "While parsing a string missing the right delimiter in object key context, we found a :, stopping here",
474
+ )
475
+ break
476
+ else:
477
+ # The string ended without finding a lstring_delimiter, I will assume this is a missing right quote
478
+ self.log(
479
+ "While parsing a string missing the right delimiter in object key context, we found a :, stopping here",
480
+ )
481
+ break
446
482
  # ChatGPT sometimes forget to quote stuff in html tags or markdown, so we do this whole thing here
447
483
  if char == rstring_delimiter:
448
484
  # Special case here, in case of double quotes one after another
@@ -1,6 +1,6 @@
1
- Metadata-Version: 2.1
1
+ Metadata-Version: 2.2
2
2
  Name: json_repair
3
- Version: 0.34.0
3
+ Version: 0.36.0
4
4
  Summary: A package to repair broken json strings
5
5
  Author-email: Stefano Baccianella <4247706+mangiucugna@users.noreply.github.com>
6
6
  License: MIT License
@@ -1,13 +1,13 @@
1
1
  json_repair/__init__.py,sha256=c4L2kZrHvWEKfj_ODU2naliNuvU6FlFVxtF0hbLe6s8,178
2
2
  json_repair/__main__.py,sha256=EsJb-y89uZEvGQQg1GdIDWzfDwfOMvVekKEtdguQXCM,67
3
3
  json_repair/json_context.py,sha256=mm6dOyrPJ1sDskTORZSXCW7W9-5veMlUKqXQ3Hw3EG4,971
4
- json_repair/json_parser.py,sha256=wGRN7RqY-LVcvaExZuwf4MdWCEK0rksrnQveS4nxuB0,33867
4
+ json_repair/json_parser.py,sha256=yYNqYR67rsYTJJySranMMAZ6_VMRRfX0-VzYV1gMXYE,35759
5
5
  json_repair/json_repair.py,sha256=LINLSJBs3cJMfs1YRDaIpfWR5PJLs87Oe06G5yQjY18,9729
6
6
  json_repair/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
7
7
  json_repair/string_file_wrapper.py,sha256=koZmdq2-Z5K7XF1bDqX6dEbNaVMJYcMTjq-aGe6NQvA,4526
8
- json_repair-0.34.0.dist-info/LICENSE,sha256=wrjQo8MhNrNCicXtMe3MHmS-fx8AmQk1ue8AQwiiFV8,1076
9
- json_repair-0.34.0.dist-info/METADATA,sha256=rzdTjUIhmniryioqyVocdm-Abd0btnHRM4sOZRDqKxE,11794
10
- json_repair-0.34.0.dist-info/WHEEL,sha256=PZUExdf71Ui_so67QXpySuHtCi3-J3wvF4ORK6k_S8U,91
11
- json_repair-0.34.0.dist-info/entry_points.txt,sha256=SNfge3zPSP-ASqriYU9r3NAPaXdseYr7ciPMKdV2uSw,57
12
- json_repair-0.34.0.dist-info/top_level.txt,sha256=7-VZwZN2CgB_n0NlSLk-rEUFh8ug21lESbsblOYuZqw,12
13
- json_repair-0.34.0.dist-info/RECORD,,
8
+ json_repair-0.36.0.dist-info/LICENSE,sha256=wrjQo8MhNrNCicXtMe3MHmS-fx8AmQk1ue8AQwiiFV8,1076
9
+ json_repair-0.36.0.dist-info/METADATA,sha256=5Hx3m-y1Ay7nOmhAsgYR-WH-a7NHMrpg4EJoRCCy49c,11794
10
+ json_repair-0.36.0.dist-info/WHEEL,sha256=In9FTNxeP60KnTkGw7wk6mJPYd_dQSjEZmXdBdMCI-8,91
11
+ json_repair-0.36.0.dist-info/entry_points.txt,sha256=SNfge3zPSP-ASqriYU9r3NAPaXdseYr7ciPMKdV2uSw,57
12
+ json_repair-0.36.0.dist-info/top_level.txt,sha256=7-VZwZN2CgB_n0NlSLk-rEUFh8ug21lESbsblOYuZqw,12
13
+ json_repair-0.36.0.dist-info/RECORD,,
@@ -1,5 +1,5 @@
1
1
  Wheel-Version: 1.0
2
- Generator: setuptools (75.6.0)
2
+ Generator: setuptools (75.8.0)
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any
5
5