]> granicus.if.org Git - python/commitdiff
Close #18538: ``python -m dis`` now uses argparse.
authorNick Coghlan <ncoghlan@gmail.com>
Sat, 24 Aug 2013 14:48:17 +0000 (00:48 +1000)
committerNick Coghlan <ncoghlan@gmail.com>
Sat, 24 Aug 2013 14:48:17 +0000 (00:48 +1000)
Patch by Michele OrrĂ¹.

Lib/dis.py
Misc/NEWS

index 0d62c0828ccf67fd3520943590f09e4805be9ab6..2631f460912020c29a1a407ca407b2dfad065bec 100644 (file)
@@ -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__":
index 53255250e6328c4b0486ce55969efdc3a846e0e6..55aca6491705357c0349ae2f52444ecb86c0a9a7 100644 (file)
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -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