json-repair 0.29.0__py3-none-any.whl → 0.29.1__py3-none-any.whl
Sign up to get free protection for your applications and to get access to all the features.
- json_repair/json_repair.py +25 -7
- {json_repair-0.29.0.dist-info → json_repair-0.29.1.dist-info}/METADATA +10 -10
- json_repair-0.29.1.dist-info/RECORD +10 -0
- {json_repair-0.29.0.dist-info → json_repair-0.29.1.dist-info}/WHEEL +1 -1
- json_repair-0.29.0.dist-info/RECORD +0 -10
- {json_repair-0.29.0.dist-info → json_repair-0.29.1.dist-info}/LICENSE +0 -0
- {json_repair-0.29.0.dist-info → json_repair-0.29.1.dist-info}/entry_points.txt +0 -0
- {json_repair-0.29.0.dist-info → json_repair-0.29.1.dist-info}/top_level.txt +0 -0
json_repair/json_repair.py
CHANGED
@@ -760,7 +760,7 @@ def from_file(
|
|
760
760
|
return jsonobj
|
761
761
|
|
762
762
|
|
763
|
-
def cli(
|
763
|
+
def cli(inline_args: Optional[List[str]] = None) -> int:
|
764
764
|
parser = argparse.ArgumentParser(description="Repair and parse JSON files.")
|
765
765
|
parser.add_argument("filename", help="The JSON file to repair")
|
766
766
|
parser.add_argument(
|
@@ -769,10 +769,16 @@ def cli(): # pragma: no cover
|
|
769
769
|
action="store_true",
|
770
770
|
help="Replace the file inline instead of returning the output to stdout",
|
771
771
|
)
|
772
|
+
parser.add_argument(
|
773
|
+
"-o",
|
774
|
+
"--output",
|
775
|
+
metavar="TARGET",
|
776
|
+
help="If specified, the output will be written to TARGET filename instead of stdout",
|
777
|
+
)
|
772
778
|
parser.add_argument(
|
773
779
|
"--ensure_ascii",
|
774
780
|
action="store_true",
|
775
|
-
help="Pass
|
781
|
+
help="Pass ensure_ascii=True to json.dumps()",
|
776
782
|
)
|
777
783
|
parser.add_argument(
|
778
784
|
"--indent",
|
@@ -781,24 +787,36 @@ def cli(): # pragma: no cover
|
|
781
787
|
help="Number of spaces for indentation (Default 2)",
|
782
788
|
)
|
783
789
|
|
784
|
-
|
790
|
+
if inline_args is None: # pragma: no cover
|
791
|
+
args = parser.parse_args()
|
792
|
+
else:
|
793
|
+
args = parser.parse_args(
|
794
|
+
inline_args
|
795
|
+
) # This is needed so this function is testable
|
796
|
+
|
797
|
+
if args.inline and args.output: # pragma: no cover
|
798
|
+
print("Error: You cannot pass both --inline and --output", file=sys.stderr)
|
799
|
+
sys.exit(1)
|
785
800
|
|
786
801
|
ensure_ascii = False
|
787
802
|
if args.ensure_ascii:
|
788
803
|
ensure_ascii = True
|
804
|
+
|
789
805
|
try:
|
790
806
|
result = from_file(args.filename)
|
791
807
|
|
792
|
-
if args.inline:
|
793
|
-
fd = open(args.filename, mode="w")
|
808
|
+
if args.inline or args.output:
|
809
|
+
fd = open(args.output or args.filename, mode="w")
|
794
810
|
json.dump(result, fd, indent=args.indent, ensure_ascii=ensure_ascii)
|
795
811
|
fd.close()
|
796
812
|
else:
|
797
813
|
print(json.dumps(result, indent=args.indent, ensure_ascii=ensure_ascii))
|
798
|
-
except Exception as e:
|
814
|
+
except Exception as e: # pragma: no cover
|
799
815
|
print(f"Error: {str(e)}", file=sys.stderr)
|
800
816
|
sys.exit(1)
|
801
817
|
|
818
|
+
return 0 # Success
|
819
|
+
|
802
820
|
|
803
821
|
if __name__ == "__main__": # pragma: no cover
|
804
|
-
cli()
|
822
|
+
sys.exit(cli())
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: json_repair
|
3
|
-
Version: 0.29.
|
3
|
+
Version: 0.29.1
|
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
|
@@ -156,24 +156,24 @@ Install the library for command-line with:
|
|
156
156
|
```
|
157
157
|
pipx install json-repair
|
158
158
|
```
|
159
|
-
|
159
|
+
to know all options available:
|
160
160
|
```
|
161
161
|
$ json_repair -h
|
162
|
-
|
163
|
-
usage: json_repair [-h] [-i] [--ensure_ascii] [--indent INDENT] filename
|
162
|
+
usage: json_repair [-h] [-i] [-o TARGET] [--ensure_ascii] [--indent INDENT] filename
|
164
163
|
|
165
164
|
Repair and parse JSON files.
|
166
165
|
|
167
166
|
positional arguments:
|
168
|
-
filename
|
167
|
+
filename The JSON file to repair
|
169
168
|
|
170
169
|
options:
|
171
|
-
-h, --help
|
172
|
-
-i, --inline
|
173
|
-
|
174
|
-
|
170
|
+
-h, --help show this help message and exit
|
171
|
+
-i, --inline Replace the file inline instead of returning the output to stdout
|
172
|
+
-o TARGET, --output TARGET
|
173
|
+
If specified, the output will be written to TARGET filename instead of stdout
|
174
|
+
--ensure_ascii Pass ensure_ascii=True to json.dumps()
|
175
|
+
--indent INDENT Number of spaces for indentation (Default 2)
|
175
176
|
```
|
176
|
-
to learn how to use it
|
177
177
|
|
178
178
|
## Adding to requirements
|
179
179
|
**Please pin this library only on the major version!**
|
@@ -0,0 +1,10 @@
|
|
1
|
+
json_repair/__init__.py,sha256=IIzSm1DsCRrr8seF3UeMZXwxcq-tE3j-8d1WBxvEJvE,178
|
2
|
+
json_repair/__main__.py,sha256=EsJb-y89uZEvGQQg1GdIDWzfDwfOMvVekKEtdguQXCM,67
|
3
|
+
json_repair/json_repair.py,sha256=amzSIOX_wR22QCheozEzsPLA09RRc8AybBUaiIIJagI,34164
|
4
|
+
json_repair/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
5
|
+
json_repair-0.29.1.dist-info/LICENSE,sha256=wrjQo8MhNrNCicXtMe3MHmS-fx8AmQk1ue8AQwiiFV8,1076
|
6
|
+
json_repair-0.29.1.dist-info/METADATA,sha256=q2kI12fNuayrEkqqDtVWKmagimcSgAKPHdanuQwMAtI,9787
|
7
|
+
json_repair-0.29.1.dist-info/WHEEL,sha256=cVxcB9AmuTcXqmwrtPhNK88dr7IR_b6qagTj0UvIEbY,91
|
8
|
+
json_repair-0.29.1.dist-info/entry_points.txt,sha256=SNfge3zPSP-ASqriYU9r3NAPaXdseYr7ciPMKdV2uSw,57
|
9
|
+
json_repair-0.29.1.dist-info/top_level.txt,sha256=7-VZwZN2CgB_n0NlSLk-rEUFh8ug21lESbsblOYuZqw,12
|
10
|
+
json_repair-0.29.1.dist-info/RECORD,,
|
@@ -1,10 +0,0 @@
|
|
1
|
-
json_repair/__init__.py,sha256=IIzSm1DsCRrr8seF3UeMZXwxcq-tE3j-8d1WBxvEJvE,178
|
2
|
-
json_repair/__main__.py,sha256=EsJb-y89uZEvGQQg1GdIDWzfDwfOMvVekKEtdguQXCM,67
|
3
|
-
json_repair/json_repair.py,sha256=hltJ3Qa4qFbUD3mVKkYvFWksnCcIZqx8zamKfBpjeNs,33538
|
4
|
-
json_repair/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
5
|
-
json_repair-0.29.0.dist-info/LICENSE,sha256=wrjQo8MhNrNCicXtMe3MHmS-fx8AmQk1ue8AQwiiFV8,1076
|
6
|
-
json_repair-0.29.0.dist-info/METADATA,sha256=yh0EJo-I1u0R6X-Gq9ETz0WbgmuGIhzR7Icw9W4Kee0,9630
|
7
|
-
json_repair-0.29.0.dist-info/WHEEL,sha256=uCRv0ZEik_232NlR4YDw4Pv3Ajt5bKvMH13NUU7hFuI,91
|
8
|
-
json_repair-0.29.0.dist-info/entry_points.txt,sha256=SNfge3zPSP-ASqriYU9r3NAPaXdseYr7ciPMKdV2uSw,57
|
9
|
-
json_repair-0.29.0.dist-info/top_level.txt,sha256=7-VZwZN2CgB_n0NlSLk-rEUFh8ug21lESbsblOYuZqw,12
|
10
|
-
json_repair-0.29.0.dist-info/RECORD,,
|
File without changes
|
File without changes
|
File without changes
|