json-repair 0.28.1__py3-none-any.whl → 0.28.2__py3-none-any.whl

Sign up to get free protection for your applications and to get access to all the features.
@@ -24,7 +24,7 @@ All supported use cases are in the unit tests
24
24
 
25
25
  import os
26
26
  import json
27
- from typing import Any, Dict, List, Optional, Union, TextIO, Tuple, overload, Literal
27
+ from typing import Any, Dict, List, Optional, Union, TextIO, Tuple, Literal
28
28
 
29
29
 
30
30
  class StringFileWrapper:
@@ -33,7 +33,7 @@ class StringFileWrapper:
33
33
  self.fd = fd
34
34
  self.length: int = 0
35
35
 
36
- def __getitem__(self, index: int) -> str:
36
+ def __getitem__(self, index: int | slice) -> str:
37
37
  if isinstance(index, slice):
38
38
  self.fd.seek(index.start)
39
39
  value = self.fd.read(index.stop - index.start)
@@ -564,7 +564,7 @@ class JSONParser:
564
564
  # <boolean> is one of the literal strings 'true', 'false', or 'null' (unquoted)
565
565
  starting_index = self.index
566
566
  char = (self.get_char_at() or "").lower()
567
- value = None
567
+ value: Optional[Tuple[str, Optional[bool]]]
568
568
  if char == "t":
569
569
  value = ("true", True)
570
570
  elif char == "f":
@@ -632,57 +632,13 @@ class JSONParser:
632
632
  )
633
633
 
634
634
 
635
- @overload
636
635
  def repair_json(
637
636
  json_str: str = "",
638
- return_objects: Optional[Literal[False]] = False,
639
- skip_json_loads: Optional[bool] = False,
640
- logging: Optional[Literal[False]] = False, # None is treated as False
637
+ return_objects: bool = False,
638
+ skip_json_loads: bool = False,
639
+ logging: bool = False,
641
640
  json_fd: Optional[TextIO] = None,
642
- ensure_ascii: Optional[bool] = True,
643
- ) -> str: ...
644
-
645
-
646
- @overload
647
- def repair_json(
648
- json_str: str = "",
649
- return_objects: Literal[True] = True,
650
- skip_json_loads: Optional[bool] = False,
651
- logging: Optional[Literal[False]] = False, # None is treated as False
652
- json_fd: Optional[TextIO] = None,
653
- ensure_ascii: Optional[bool] = True,
654
- ) -> JSONReturnType: ...
655
-
656
-
657
- @overload
658
- def repair_json(
659
- json_str: str = "",
660
- return_objects: Optional[Literal[False]] = False, # None is treated as False
661
- skip_json_loads: Optional[bool] = False,
662
- logging: Literal[True] = True,
663
- json_fd: Optional[TextIO] = None,
664
- ensure_ascii: Optional[bool] = True,
665
- ) -> Tuple[str, List[Dict[str, str]]]: ...
666
-
667
-
668
- @overload
669
- def repair_json(
670
- json_str: str = "",
671
- return_objects: Literal[True] = True,
672
- skip_json_loads: Optional[bool] = False,
673
- logging: Literal[True] = True,
674
- json_fd: Optional[TextIO] = None,
675
- ensure_ascii: Optional[bool] = True,
676
- ) -> Tuple[JSONReturnType, List[Dict[str, str]]]: ...
677
-
678
-
679
- def repair_json(
680
- json_str: str = "",
681
- return_objects: Optional[bool] = False,
682
- skip_json_loads: Optional[bool] = False,
683
- logging: Optional[bool] = False,
684
- json_fd: Optional[TextIO] = None,
685
- ensure_ascii: Optional[bool] = True,
641
+ ensure_ascii: bool = True,
686
642
  ) -> Union[JSONReturnType, Tuple[JSONReturnType, List[Dict[str, str]]]]:
687
643
  """
688
644
  Given a json formatted string, it will try to decode it and, if it fails, it will try to fix it.
@@ -709,26 +665,10 @@ def repair_json(
709
665
  return json.dumps(parsed_json, ensure_ascii=ensure_ascii)
710
666
 
711
667
 
712
- @overload
713
- def loads(
714
- json_str: str,
715
- skip_json_loads: Optional[bool] = False,
716
- logging: Optional[Literal[False]] = False, # None is treated as False
717
- ) -> JSONReturnType: ...
718
-
719
-
720
- @overload
721
668
  def loads(
722
669
  json_str: str,
723
- skip_json_loads: Optional[bool] = False,
724
- logging: Literal[True] = True,
725
- ) -> Tuple[JSONReturnType, List[Dict[str, str]]]: ...
726
-
727
-
728
- def loads(
729
- json_str: str,
730
- skip_json_loads: Optional[bool] = False,
731
- logging: Optional[bool] = False,
670
+ skip_json_loads: bool = False,
671
+ logging: bool = False,
732
672
  ) -> Union[JSONReturnType, Tuple[JSONReturnType, List[Dict[str, str]]]]:
733
673
  """
734
674
  This function works like `json.loads()` except that it will fix your JSON in the process.
@@ -742,22 +682,8 @@ def loads(
742
682
  )
743
683
 
744
684
 
745
- @overload
746
685
  def load(
747
- fd: TextIO,
748
- skip_json_loads: Optional[bool] = False,
749
- logging: Optional[Literal[False]] = False,
750
- ) -> JSONReturnType: ...
751
-
752
-
753
- @overload
754
- def load(
755
- fd: TextIO, skip_json_loads: Optional[bool] = False, logging: Literal[True] = True
756
- ) -> Tuple[JSONReturnType, List[Dict[str, str]]]: ...
757
-
758
-
759
- def load(
760
- fd: TextIO, skip_json_loads: Optional[bool] = False, logging: Optional[bool] = False
686
+ fd: TextIO, skip_json_loads: bool = False, logging: bool = False
761
687
  ) -> Union[JSONReturnType, Tuple[JSONReturnType, List[Dict[str, str]]]]:
762
688
  """
763
689
  This function works like `json.load()` except that it will fix your JSON in the process.
@@ -771,26 +697,10 @@ def load(
771
697
  )
772
698
 
773
699
 
774
- @overload
775
- def from_file(
776
- filename: str,
777
- skip_json_loads: Optional[bool] = False,
778
- logging: Optional[Literal[False]] = False,
779
- ) -> JSONReturnType: ...
780
-
781
-
782
- @overload
783
- def from_file(
784
- filename: str,
785
- skip_json_loads: Optional[bool] = False,
786
- logging: Literal[True] = True,
787
- ) -> Tuple[JSONReturnType, List[Dict[str, str]]]: ...
788
-
789
-
790
700
  def from_file(
791
701
  filename: str,
792
- skip_json_loads: Optional[bool] = False,
793
- logging: Optional[bool] = False,
702
+ skip_json_loads: bool = False,
703
+ logging: bool = False,
794
704
  ) -> Union[JSONReturnType, Tuple[JSONReturnType, List[Dict[str, str]]]]:
795
705
  """
796
706
  This function is a wrapper around `load()` so you can pass the filename as string
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: json_repair
3
- Version: 0.28.1
3
+ Version: 0.28.2
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
@@ -0,0 +1,8 @@
1
+ json_repair/__init__.py,sha256=IIzSm1DsCRrr8seF3UeMZXwxcq-tE3j-8d1WBxvEJvE,178
2
+ json_repair/json_repair.py,sha256=v43na-l2g34pwTZH5FDljI_r5ArIaZfCeHW_LbB8puw,30123
3
+ json_repair/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
4
+ json_repair-0.28.2.dist-info/LICENSE,sha256=wrjQo8MhNrNCicXtMe3MHmS-fx8AmQk1ue8AQwiiFV8,1076
5
+ json_repair-0.28.2.dist-info/METADATA,sha256=llPJ1A8UePeGKbPSkC6-b2kE2somdgSMiq-wuPANGZ8,8043
6
+ json_repair-0.28.2.dist-info/WHEEL,sha256=HiCZjzuy6Dw0hdX5R3LCFPDmFS4BWl8H-8W39XfmgX4,91
7
+ json_repair-0.28.2.dist-info/top_level.txt,sha256=7-VZwZN2CgB_n0NlSLk-rEUFh8ug21lESbsblOYuZqw,12
8
+ json_repair-0.28.2.dist-info/RECORD,,
@@ -1,8 +0,0 @@
1
- json_repair/__init__.py,sha256=IIzSm1DsCRrr8seF3UeMZXwxcq-tE3j-8d1WBxvEJvE,178
2
- json_repair/json_repair.py,sha256=_NBAaY6iqIp1cB1W-lnQ3uS6nc5DjZZyf_HeklYmDyY,32502
3
- json_repair/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
4
- json_repair-0.28.1.dist-info/LICENSE,sha256=wrjQo8MhNrNCicXtMe3MHmS-fx8AmQk1ue8AQwiiFV8,1076
5
- json_repair-0.28.1.dist-info/METADATA,sha256=i9SaIoWFc7YjuQLLN1Rd8GsmVAy0rWJ9-fNwsVDR_KA,8043
6
- json_repair-0.28.1.dist-info/WHEEL,sha256=HiCZjzuy6Dw0hdX5R3LCFPDmFS4BWl8H-8W39XfmgX4,91
7
- json_repair-0.28.1.dist-info/top_level.txt,sha256=7-VZwZN2CgB_n0NlSLk-rEUFh8ug21lESbsblOYuZqw,12
8
- json_repair-0.28.1.dist-info/RECORD,,