json-repair 0.36.1__py3-none-any.whl → 0.37.0__py3-none-any.whl

Sign up to get free protection for your applications and to get access to all the features.
@@ -438,7 +438,7 @@ class JSONParser:
438
438
  string_acc += char
439
439
  self.index += 1
440
440
  char = self.get_char_at()
441
- if char and len(string_acc) > 0 and string_acc[-1] == "\\":
441
+ if char and string_acc[-1] == "\\":
442
442
  # This is a special case, if people use real strings this might happen
443
443
  self.log("Found a stray escape sequence, normalizing it")
444
444
  if char in [rstring_delimiter, "t", "n", "r", "b", "\\"]:
@@ -646,10 +646,15 @@ class JSONParser:
646
646
  self.log(
647
647
  "While parsing a string, we missed the closing quote, ignoring",
648
648
  )
649
+ string_acc = string_acc.rstrip()
649
650
  else:
650
651
  self.index += 1
651
652
 
652
- return string_acc.rstrip()
653
+ if missing_quotes or (string_acc and string_acc[-1] == "\n"):
654
+ # Clean the whitespaces for some corner cases
655
+ string_acc = string_acc.rstrip()
656
+
657
+ return string_acc
653
658
 
654
659
  def parse_number(self) -> Union[float, int, str, JSONReturnType]:
655
660
  # <number> is a valid real number expressed in one of a number of given formats
@@ -661,7 +666,7 @@ class JSONParser:
661
666
  number_str += char
662
667
  self.index += 1
663
668
  char = self.get_char_at()
664
- if len(number_str) > 1 and number_str[-1] in "-eE/,":
669
+ if number_str and number_str[-1] in "-eE/,":
665
670
  # The number ends with a non valid character for a number/currency, rolling back one
666
671
  number_str = number_str[:-1]
667
672
  self.index -= 1
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.2
2
2
  Name: json_repair
3
- Version: 0.36.1
3
+ Version: 0.37.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=VPpOVHHQwFLzI5iX3lLWHrNos2MRJ7cSdjW-lRaI1MA,35771
4
+ json_repair/json_parser.py,sha256=XASjndsU8Q2NNXENoQJKCwZUxf0ezlsq538x7Y33T3A,35948
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.36.1.dist-info/LICENSE,sha256=wrjQo8MhNrNCicXtMe3MHmS-fx8AmQk1ue8AQwiiFV8,1076
9
- json_repair-0.36.1.dist-info/METADATA,sha256=VI-dvPj7yc3-Vq397F1nVCFxEaG6LzVu1t9zkQGloiE,11794
10
- json_repair-0.36.1.dist-info/WHEEL,sha256=In9FTNxeP60KnTkGw7wk6mJPYd_dQSjEZmXdBdMCI-8,91
11
- json_repair-0.36.1.dist-info/entry_points.txt,sha256=SNfge3zPSP-ASqriYU9r3NAPaXdseYr7ciPMKdV2uSw,57
12
- json_repair-0.36.1.dist-info/top_level.txt,sha256=7-VZwZN2CgB_n0NlSLk-rEUFh8ug21lESbsblOYuZqw,12
13
- json_repair-0.36.1.dist-info/RECORD,,
8
+ json_repair-0.37.0.dist-info/LICENSE,sha256=wrjQo8MhNrNCicXtMe3MHmS-fx8AmQk1ue8AQwiiFV8,1076
9
+ json_repair-0.37.0.dist-info/METADATA,sha256=GN2yJwIv5nrKgjKjocEdCbPioWmyghYqUPxj6ogvxfo,11794
10
+ json_repair-0.37.0.dist-info/WHEEL,sha256=In9FTNxeP60KnTkGw7wk6mJPYd_dQSjEZmXdBdMCI-8,91
11
+ json_repair-0.37.0.dist-info/entry_points.txt,sha256=SNfge3zPSP-ASqriYU9r3NAPaXdseYr7ciPMKdV2uSw,57
12
+ json_repair-0.37.0.dist-info/top_level.txt,sha256=7-VZwZN2CgB_n0NlSLk-rEUFh8ug21lESbsblOYuZqw,12
13
+ json_repair-0.37.0.dist-info/RECORD,,