diff --git a/Lib/shlex.py b/Lib/shlex.py index 69f3b456af1..4672553f1cc 100644 --- a/Lib/shlex.py +++ b/Lib/shlex.py @@ -290,15 +290,17 @@ def quote(s): return "'" + s.replace("'", "'\"'\"'") + "'" -if __name__ == '__main__': - if len(sys.argv) == 1: - lexer = shlex() - else: - file = sys.argv[1] - lexer = shlex(open(file), file) +def _print_tokens(lexer): while 1: tt = lexer.get_token() - if tt: - print("Token: " + repr(tt)) - else: + if not tt: break + print("Token: " + repr(tt)) + +if __name__ == '__main__': + if len(sys.argv) == 1: + _print_tokens(shlex()) + else: + fn = sys.argv[1] + with open(fn) as f: + _print_tokens(shlex(f, fn)) diff --git a/Misc/NEWS b/Misc/NEWS index 20ff5d65127..f1045cae1e1 100644 --- a/Misc/NEWS +++ b/Misc/NEWS @@ -181,6 +181,8 @@ Core and Builtins Library ------- +- Issue #18853: Fixed ResourceWarning in shlex.__nain__. + - Issue #9351: Defaults set with set_defaults on an argparse subparser are no longer ignored when also set on the parent parser.