remove ast.__version__ (closes #12273)
diff --git a/Doc/library/ast.rst b/Doc/library/ast.rst
index 85081be..16de3ca 100644
--- a/Doc/library/ast.rst
+++ b/Doc/library/ast.rst
@@ -96,9 +96,6 @@
Abstract Grammar
----------------
-The module defines a string constant ``__version__`` which is the Mercurial
-revision of the file shown below.
-
The abstract grammar is currently defined as follows:
.. literalinclude:: ../../Parser/Python.asdl
diff --git a/Lib/ast.py b/Lib/ast.py
index fb5adac..13f59f9 100644
--- a/Lib/ast.py
+++ b/Lib/ast.py
@@ -25,7 +25,6 @@
:license: Python License.
"""
from _ast import *
-from _ast import __version__
def parse(source, filename='<unknown>', mode='exec'):
diff --git a/Misc/NEWS b/Misc/NEWS
index e75de01..dd40d40 100644
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -10,6 +10,9 @@
Core and Builtins
-----------------
+- Issue #12273: Remove ast.__version__. AST changes can be accounted for by
+ checking sys.version_info or sys._mercurial.
+
- Issue #11627: Fix segfault when __new__ on a exception returns a non-exception
class.
diff --git a/Parser/asdl_c.py b/Parser/asdl_c.py
index cdce5a3..22ef3d0 100755
--- a/Parser/asdl_c.py
+++ b/Parser/asdl_c.py
@@ -900,10 +900,6 @@
self.emit('if (PyDict_SetItemString(d, "AST", (PyObject*)&AST_type) < 0) return NULL;', 1)
self.emit('if (PyModule_AddIntConstant(m, "PyCF_ONLY_AST", PyCF_ONLY_AST) < 0)', 1)
self.emit("return NULL;", 2)
- # Value of version: "$Revision$"
- self.emit('if (PyModule_AddStringConstant(m, "__version__", "%s") < 0)'
- % (mod.version,), 1)
- self.emit("return NULL;", 2)
for dfn in mod.dfns:
self.visit(dfn)
self.emit("return m;", 1)
@@ -1124,29 +1120,6 @@
common_msg = "/* File automatically generated by %s. */\n\n"
-c_file_msg = """
-/*
- __version__ %s.
-
- This module must be committed separately after each AST grammar change;
- The __version__ number is set to the revision number of the commit
- containing the grammar change.
-*/
-
-"""
-
-
-def get_file_revision(f):
- """Fish out the last change to a file in hg."""
- args = ["hg", "log", "--template", "{node|short}", "--limit", "1", f]
- p = subprocess.Popen(args, stdout=subprocess.PIPE)
- out = p.communicate()[0]
- if p.returncode:
- print >> sys.stderr, "error return code from hg"
- sys.exit(1)
- return out
-
-
def main(srcfile):
argv0 = sys.argv[0]
components = argv0.split(os.sep)
@@ -1155,7 +1128,6 @@
mod = asdl.parse(srcfile)
if not asdl.check(mod):
sys.exit(1)
- mod.version = get_file_revision(srcfile)
if INC_DIR:
p = "%s/%s-ast.h" % (INC_DIR, mod.name)
f = open(p, "w")
@@ -1175,7 +1147,6 @@
p = os.path.join(SRC_DIR, str(mod.name) + "-ast.c")
f = open(p, "w")
f.write(auto_gen_msg)
- f.write(c_file_msg % (mod.version,))
f.write('#include "Python.h"\n')
f.write('#include "%s-ast.h"\n' % mod.name)
f.write('\n')
diff --git a/Python/Python-ast.c b/Python/Python-ast.c
index b597626..96c6bf8 100644
--- a/Python/Python-ast.c
+++ b/Python/Python-ast.c
@@ -1,14 +1,5 @@
/* File automatically generated by Parser/asdl_c.py. */
-
-/*
- __version__ e0e663132363.
-
- This module must be committed separately after each AST grammar change;
- The __version__ number is set to the revision number of the commit
- containing the grammar change.
-*/
-
#include "Python.h"
#include "Python-ast.h"
@@ -6750,8 +6741,6 @@
NULL;
if (PyModule_AddIntConstant(m, "PyCF_ONLY_AST", PyCF_ONLY_AST) < 0)
return NULL;
- if (PyModule_AddStringConstant(m, "__version__", "e0e663132363") < 0)
- return NULL;
if (PyDict_SetItemString(d, "mod", (PyObject*)mod_type) < 0) return
NULL;
if (PyDict_SetItemString(d, "Module", (PyObject*)Module_type) < 0)