diff Python/sysmodule.c @ 12394:60dd95c75999 legacy-trunk

Define version_info to be a tuple (major, minor, micro, level); level is a string "a2", "b1", "c1", or '' for a final release. Added version_info and hexversion to the module docstring.
author Fred Drake <fdrake@acm.org>
date Thu, 13 Apr 2000 15:29:10 +0000
parents 9b9abde032b3
children f82b2577fa0c
line wrap: on
line diff
--- a/Python/sysmodule.c	Thu Apr 13 15:20:40 2000 +0000
+++ b/Python/sysmodule.c	Thu Apr 13 15:29:10 2000 +0000
@@ -352,7 +352,9 @@
 \n\
 maxint -- the largest supported integer (the smallest is -maxint-1)\n\
 builtin_module_names -- tuple of module names built into this intepreter\n\
-version -- the version of this interpreter\n\
+version -- the version of this interpreter as a string\n\
+version_info -- version information as a tuple\n\
+hexversion -- version information encoded as a single integer\n\
 copyright -- copyright notice pertaining to this interpreter\n\
 platform -- platform identifier\n\
 executable -- pathname of this Python interpreter\n\
@@ -406,6 +408,22 @@
 	PyDict_SetItemString(sysdict, "hexversion",
 			     v = PyInt_FromLong(PY_VERSION_HEX));
 	Py_XDECREF(v);
+#if PY_RELEASE_LEVEL == PY_RELEASE_LEVEL_FINAL
+	v = PyString_FromStringAndSize(NULL, 0);
+#else
+	{
+	    char buff[3];
+	    buff[0] = PY_RELEASE_LEVEL - PY_RELEASE_LEVEL_ALPHA + 'a';
+	    buff[1] = PY_RELEASE_SERIAL + '0';
+	    buff[2] = '\0';
+	    v = PyString_FromString(buff);
+	}
+#endif /* PY_RELEASE_LEVEL == PY_RELEASE_LEVEL_FINAL */
+	PyDict_SetItemString(sysdict, "version_info",
+			     v = Py_BuildValue("iiiN", PY_MAJOR_VERSION,
+					       PY_MINOR_VERSION,
+					       PY_MICRO_VERSION, v));
+	Py_XDECREF(v);
 	PyDict_SetItemString(sysdict, "copyright",
 			     v = PyString_FromString(Py_GetCopyright()));
 	Py_XDECREF(v);