From 4d45a3b1107977baba9dce868e80d1d95bce4085 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Herv=C3=A9=20Beraud?= Date: Tue, 14 May 2019 18:52:42 +0200 Subject: 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). --- Lib/json/tool.py | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/Lib/json/tool.py b/Lib/json/tool.py index 1d82bc8..b3ef992 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: -- cgit v0.12