From: Hervé Beraud Date: Tue, 14 May 2019 16:52:42 +0000 (+0200) Subject: json.tool: use stdin and stdout in default cmdlne arguments (GH-11992) X-Git-Tag: v3.8.0b1~366 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=4d45a3b1107977baba9dce868e80d1d95bce4085;p=thirdparty%2FPython%2Fcpython.git 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). --- 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: