[Python-checkins] commit of r41744 - in python/trunk: Doc/api/init.tex Doc/lib/libsys.tex Include/pythonrun.h Mac Makefile.pre.in Misc/NEWS Modules/getbuildinfo.c Python/sysmodule.c
Neal Norwitz
nnorwitz at gmail.com
Sun Dec 18 05:04:55 CET 2005
This change break test_platform. The problem is the
_sys_version_parser regex and _sys_version() can't handle a
non-number.
n
--
On 12/17/05, barry.warsaw <python-checkins at python.org> wrote:
> Author: barry.warsaw
> Date: Sun Dec 18 02:27:35 2005
> New Revision: 41744
>
> Modified:
> python/trunk/Doc/api/init.tex
> python/trunk/Doc/lib/libsys.tex
> python/trunk/Include/pythonrun.h
> python/trunk/Mac/ (props changed)
> python/trunk/Makefile.pre.in
> python/trunk/Misc/NEWS
> python/trunk/Modules/getbuildinfo.c
> python/trunk/Python/sysmodule.c
> Log:
> Expose Subversion revision number (calculated via "svnversion .") to Python.
> Add C API function Py_GetBuildNumber(), add it to the interactive prompt
> banner (i.e. Py_GetBuildInfo()), and add it as the sys.build_number
> attribute. The build number is a string instead of an int because it may
> contain a trailing 'M' if there are local modifications.
>
>
> Modified: python/trunk/Doc/api/init.tex
> ==============================================================================
> --- python/trunk/Doc/api/init.tex (original)
> +++ python/trunk/Doc/api/init.tex Sun Dec 18 02:27:35 2005
> @@ -272,6 +272,12 @@
> \withsubitem{(in module sys)}{\ttindex{version}}
> \end{cfuncdesc}
>
> +\begin{cfuncdesc}{const char*}{Py_GetBuildNumber}{}
> + Return a string representing the Subversion revision that this Python
> + executable was built from. This number is a string because it may contain a
> + trailing 'M' if Python was built from a mixed revision source tree.
> +\end{cfuncdesc}
> +
> \begin{cfuncdesc}{const char*}{Py_GetPlatform}{}
> Return the platform identifier for the current platform. On \UNIX,
> this is formed from the ``official'' name of the operating system,
>
> Modified: python/trunk/Doc/lib/libsys.tex
> ==============================================================================
> --- python/trunk/Doc/lib/libsys.tex (original)
> +++ python/trunk/Doc/lib/libsys.tex Sun Dec 18 02:27:35 2005
> @@ -27,6 +27,12 @@
> \versionadded{2.0}
> \end{datadesc}
>
> +\begin{datadesc}{build_number}
> + A string representing the Subversion revision that this Python executable
> + was built from. This number is a string because it may contain a trailing
> + 'M' if Python was built from a mixed revision source tree.
> +\end{datadesc}
> +
> \begin{datadesc}{builtin_module_names}
> A tuple of strings giving the names of all modules that are compiled
> into this Python interpreter. (This information is not available in
>
> Modified: python/trunk/Include/pythonrun.h
> ==============================================================================
> --- python/trunk/Include/pythonrun.h (original)
> +++ python/trunk/Include/pythonrun.h Sun Dec 18 02:27:35 2005
> @@ -108,6 +108,7 @@
> PyAPI_FUNC(const char *) Py_GetCopyright(void);
> PyAPI_FUNC(const char *) Py_GetCompiler(void);
> PyAPI_FUNC(const char *) Py_GetBuildInfo(void);
> +PyAPI_FUNC(const char *) Py_GetBuildNumber(void);
>
> /* Internal -- various one-time initializations */
> PyAPI_FUNC(PyObject *) _PyBuiltin_Init(void);
>
> Modified: python/trunk/Makefile.pre.in
> ==============================================================================
> --- python/trunk/Makefile.pre.in (original)
> +++ python/trunk/Makefile.pre.in Sun Dec 18 02:27:35 2005
> @@ -349,7 +349,9 @@
> $(SIGNAL_OBJS) \
> $(MODOBJS) \
> $(srcdir)/Modules/getbuildinfo.c
> - if test -f buildno; then \
> + if test -d .svn; then \
> + svnversion . >buildno; \
> + elif test -f buildno; then \
> expr `cat buildno` + 1 >buildno1; \
> mv -f buildno1 buildno; \
> else echo 1 >buildno; fi
> @@ -444,7 +446,7 @@
> # Special rules for object files
>
> Modules/getbuildinfo.o: $(srcdir)/Modules/getbuildinfo.c buildno
> - $(CC) -c $(PY_CFLAGS) -DBUILD=`cat buildno` -o $@ $(srcdir)/Modules/getbuildinfo.c
> + $(CC) -c $(PY_CFLAGS) -DBUILD=\"`cat buildno`\" -o $@ $(srcdir)/Modules/getbuildinfo.c
>
> Modules/getpath.o: $(srcdir)/Modules/getpath.c Makefile
> $(CC) -c $(PY_CFLAGS) -DPYTHONPATH='"$(PYTHONPATH)"' \
>
> Modified: python/trunk/Misc/NEWS
> ==============================================================================
> --- python/trunk/Misc/NEWS (original)
> +++ python/trunk/Misc/NEWS Sun Dec 18 02:27:35 2005
> @@ -12,6 +12,10 @@
> Core and builtins
> -----------------
>
> +- Patch #1382163: Expose Subversion revision number to Python. New C API
> + function Py_GetBuildNumber(). New attribute sys.build_number. Build number
> + is now displayed in interactive prompt banner.
> +
> - Implementation of PEP 341 - Unification of try/except and try/finally.
> "except" clauses can now be written together with a "finally" clause in
> one try statement instead of two nested ones. Patch #1355913.
>
> Modified: python/trunk/Modules/getbuildinfo.c
> ==============================================================================
> --- python/trunk/Modules/getbuildinfo.c (original)
> +++ python/trunk/Modules/getbuildinfo.c Sun Dec 18 02:27:35 2005
> @@ -21,7 +21,7 @@
> #endif
>
> #ifndef BUILD
> -#define BUILD 0
> +#define BUILD "0"
> #endif
>
> const char *
> @@ -29,6 +29,12 @@
> {
> static char buildinfo[50];
> PyOS_snprintf(buildinfo, sizeof(buildinfo),
> - "#%d, %.20s, %.9s", BUILD, DATE, TIME);
> + "%s, %.20s, %.9s", BUILD, DATE, TIME);
> return buildinfo;
> }
> +
> +const char *
> +Py_GetBuildNumber(void)
> +{
> + return BUILD;
> +}
>
> Modified: python/trunk/Python/sysmodule.c
> ==============================================================================
> --- python/trunk/Python/sysmodule.c (original)
> +++ python/trunk/Python/sysmodule.c Sun Dec 18 02:27:35 2005
> @@ -1003,6 +1003,9 @@
> PyDict_SetItemString(sysdict, "hexversion",
> v = PyInt_FromLong(PY_VERSION_HEX));
> Py_XDECREF(v);
> + PyDict_SetItemString(sysdict, "build_number",
> + v = PyString_FromString(Py_GetBuildNumber()));
> + Py_XDECREF(v);
> /*
> * These release level checks are mutually exclusive and cover
> * the field, so don't get too fancy with the pre-processor!
> _______________________________________________
> Python-checkins mailing list
> Python-checkins at python.org
> http://mail.python.org/mailman/listinfo/python-checkins
>
More information about the Python-checkins
mailing list