[Python-checkins] json.tool: use stdin and stdout in default cmdlne arguments (GH-11992)

Victor Stinner webhook-mailer at python.org
Tue May 14 12:52:50 EDT 2019


https://github.com/python/cpython/commit/4d45a3b1107977baba9dce868e80d1d95bce4085
commit: 4d45a3b1107977baba9dce868e80d1d95bce4085
branch: master
author: Hervé Beraud <herveberaud.pro at gmail.com>
committer: Victor Stinner <vstinner at redhat.com>
date: 2019-05-14T18:52:42+02:00
summary:

json.tool: use stdin and stdout in default cmdlne arguments (GH-11992)

Argparse can handle default value as stdin and stdout for parameters
as file type (infile, outfile).

files:
M Lib/json/tool.py

diff --git a/Lib/json/tool.py b/Lib/json/tool.py
index 1d82bc824236..b3ef9923e314 100644
--- a/Lib/json/tool.py
+++ b/Lib/json/tool.py
@@ -21,17 +21,19 @@ def main():
                    'to validate and pretty-print JSON objects.')
     parser = argparse.ArgumentParser(prog=prog, description=description)
     parser.add_argument('infile', nargs='?', type=argparse.FileType(),
-                        help='a JSON file to be validated or pretty-printed')
+                        help='a JSON file to be validated or pretty-printed',
+                        default=sys.stdin)
     parser.add_argument('outfile', nargs='?', type=argparse.FileType('w'),
-                        help='write the output of infile to outfile')
+                        help='write the output of infile to outfile',
+                        default=sys.stdout)
     parser.add_argument('--sort-keys', action='store_true', default=False,
                         help='sort the output of dictionaries alphabetically by key')
     parser.add_argument('--json-lines', action='store_true', default=False,
                         help='parse input using the jsonlines format')
     options = parser.parse_args()
 
-    infile = options.infile or sys.stdin
-    outfile = options.outfile or sys.stdout
+    infile = options.infile
+    outfile = options.outfile
     sort_keys = options.sort_keys
     json_lines = options.json_lines
     with infile, outfile:



More information about the Python-checkins mailing list