From 11c7a5d0448a4022ff45092580ce8aa6def6de04 Mon Sep 17 00:00:00 2001 From: Kurt McKee Date: Sat, 29 Jun 2024 10:30:13 -0500 Subject: [PATCH] Lazy-open output files, and ensure they are always closed --- readme_renderer/__main__.py | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/readme_renderer/__main__.py b/readme_renderer/__main__.py index e7c1187..a370fab 100644 --- a/readme_renderer/__main__.py +++ b/readme_renderer/__main__.py @@ -18,7 +18,7 @@ def main(cli_args: Optional[List[str]] = None) -> None: help="README format (inferred from input file name or package)") parser.add_argument('input', help="Input README file or package name") parser.add_argument('-o', '--output', help="Output file (default: stdout)", - type=argparse.FileType('w'), default='-') + default='-') args = parser.parse_args(cli_args) content_format = args.format @@ -55,7 +55,11 @@ def main(cli_args: Optional[List[str]] = None) -> None: "`rst`, or `txt`)") if rendered is None: sys.exit(1) - print(rendered, file=args.output) + if args.output == "-": + print(rendered, file=sys.stdout) + else: + with open(args.output, "w") as fp: + print(rendered, file=fp) if __name__ == '__main__':