diff options
-rw-r--r-- | Lib/dis.py | 27 | ||||
-rw-r--r-- | Misc/NEWS | 3 |
2 files changed, 11 insertions, 19 deletions
@@ -436,25 +436,14 @@ class Bytecode: def _test(): """Simple test program to disassemble a file.""" - if sys.argv[1:]: - if sys.argv[2:]: - sys.stderr.write("usage: python dis.py [-|file]\n") - sys.exit(2) - fn = sys.argv[1] - if not fn or fn == "-": - fn = None - else: - fn = None - if fn is None: - f = sys.stdin - else: - f = open(fn) - source = f.read() - if fn is not None: - f.close() - else: - fn = "<stdin>" - code = compile(source, fn, "exec") + import argparse + + parser = argparse.ArgumentParser() + parser.add_argument('infile', type=argparse.FileType(), nargs='?', default='-') + args = parser.parse_args() + with args.infile as infile: + source = infile.read() + code = compile(source, args.infile.name, "exec") dis(code) if __name__ == "__main__": @@ -40,6 +40,9 @@ Core and Builtins Library ------- +- Issue #18538: ``python -m dis`` now uses argparse for argument processing. + Patch by Michele OrrĂ¹. + - Issue #18394: Close cgi.FieldStorage's optional file. - Issue #17702: On error, os.environb now removes suppress the except context |