]> granicus.if.org Git - python/commitdiff
Reintroduce Python2 support in generate_opcode_h.py
authorVictor Stinner <victor.stinner@gmail.com>
Mon, 28 Nov 2016 17:13:52 +0000 (18:13 +0100)
committerVictor Stinner <victor.stinner@gmail.com>
Mon, 28 Nov 2016 17:13:52 +0000 (18:13 +0100)
Issue #28821.

Add also a message to show that the command did something :-)

Tools/scripts/generate_opcode_h.py

index bbc3aab5535419be7ecb84d586db2c339d5b5e47..6622a3c8155bcb37fe7c14af48956c2abbfa21cf 100644 (file)
@@ -1,6 +1,8 @@
 # This script generates the opcode.h header file.
 
 import sys
+import tokenize
+
 header = """/* Auto-generated by Tools/scripts/generate_opcode_h.py */
 #ifndef Py_OPCODE_H
 #define Py_OPCODE_H
@@ -32,12 +34,14 @@ enum cmp_op {PyCmp_LT=Py_LT, PyCmp_LE=Py_LE, PyCmp_EQ=Py_EQ, PyCmp_NE=Py_NE,
 #endif /* !Py_OPCODE_H */
 """
 
-import tokenize
-
 
 def main(opcode_py, outfile='Include/opcode.h'):
     opcode = {}
-    with tokenize.open(opcode_py) as fp:
+    if hasattr(tokenize, 'open'):
+        fp = tokenize.open(opcode_py)   # Python 3.2+
+    else:
+        fp = open(opcode_py)            # Python 2.7
+    with fp:
         code = fp.read()
     exec(code, opcode)
     opmap = opcode['opmap']
@@ -51,6 +55,8 @@ def main(opcode_py, outfile='Include/opcode.h'):
                             ('HAVE_ARGUMENT', opcode['HAVE_ARGUMENT']))
         fobj.write(footer)
 
+    print("%s regenerated from %s" % (outfile, opcode_py))
+
 
 if __name__ == '__main__':
     main(sys.argv[1], sys.argv[2])