Marc-Andre Lemburg <m...@egenix.com> added the comment: STINNER Victor wrote: > > New submission from STINNER Victor <victor.stin...@haypocalc.com>: > > #12326 proposes to remove the major version from sys.platform. If we remove > it, we will need another easy way to get this information. I don't think that > we need the version used to build Python, but the version at runtime. That's > why the platform is a good candidate to add such information. > > I propose to add platform.major(): major version of the system, or 0 if we > cannot get it. I chose 0 instead of None or raising an error to be consistent > with the other functions. Platform functions don't raise error and always > return the same type. For example, platform.release() returns an empty string > if the release string cannot be read. > > Each system formats its full version (e.g. (2, 6, 28) for Linux 2.6.28) > differently. It is easier and more reliable to only provide the major version. > > If you would like to get more information (e.g. minor minor), you have to > test the system name. See for example platform.mac_ver(), platform.win_ver(), > and also test.support.requires_linux_version(). > > Attached patch implements platform.major().
I'm not sure I understand why platform.release() isn't sufficient for this purpose. Note that some systems return alphanumeric values for platform.release(), e.g. for Windows you get 'NT' or 'XP'. What we could do is add a function that tries to find out the true version number of the OS, e.g. for Windows 7 that would be (6, 1, 7601) instead of the marketing name '7' returned by platform.release(). Still, this won't help with the OS version used for the Python build. When Tarek was working on separating sysconfig from distutils, we briefly discussed parsing the Makefile and pyconfig.h files into a Python module. This would work around the issues with the parsing overhead of using sysconfig and also prevent the problems you currently find on some platforms that choose to place the needed Makefile and pyconfig.h into a Python development package. However, even with those generated modules, access to the build platform version would have to be provided through the sysconfig module, not the platform module, since that's the more appropriate module for such information. That would be the full solution to the problem, but it would have to go on a separate ticket. ---------- title: platform: add a major function to get the system major version -> platform: add a major function to get the system major version _______________________________________ Python tracker <rep...@bugs.python.org> <http://bugs.python.org/issue12794> _______________________________________ _______________________________________________ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com