[Python-checkins] cpython (3.2): Update sys.platform doc for #12326.

georg.brandl python-checkins at python.org
Sun Sep 4 08:42:39 CEST 2011


http://hg.python.org/cpython/rev/e11b4c945f7e
changeset:   72251:e11b4c945f7e
branch:      3.2
user:        Georg Brandl <georg at python.org>
date:        Sat Sep 03 09:26:09 2011 +0200
summary:
  Update sys.platform doc for #12326.

files:
  Doc/library/sys.rst |  40 ++++++++++++++++++++------------
  1 files changed, 25 insertions(+), 15 deletions(-)


diff --git a/Doc/library/sys.rst b/Doc/library/sys.rst
--- a/Doc/library/sys.rst
+++ b/Doc/library/sys.rst
@@ -699,26 +699,36 @@
    This string contains a platform identifier that can be used to append
    platform-specific components to :data:`sys.path`, for instance.
 
-   For Unix systems, this is the lowercased OS name as returned by ``uname -s``
-   with the first part of the version as returned by ``uname -r`` appended,
-   e.g. ``'sunos5'`` or ``'linux2'``, *at the time when Python was built*.
-   Unless you want to test for a specific system version, it is therefore
-   recommended to use the following idiom::
+   For most Unix systems, this is the lowercased OS name as returned by ``uname
+   -s`` with the first part of the version as returned by ``uname -r`` appended,
+   e.g. ``'sunos5'``, *at the time when Python was built*.  Unless you want to
+   test for a specific system version, it is therefore recommended to use the
+   following idiom::
 
-      if sys.platform.startswith('linux'):
+      if sys.platform.startswith('freebsd'):
+          # FreeBSD-specific code here...
+      elif sys.platform.startswith('linux'):
           # Linux-specific code here...
 
+   .. versionchanged:: 3.2.2
+      Since lots of code check for ``sys.platform == 'linux2'``, and there is
+      no essential change between Linux 2.x and 3.x, ``sys.platform`` is always
+      set to ``'linux2'``, even on Linux 3.x.  In Python 3.3 and later, the
+      value will always be set to ``'linux'``, so it is recommended to always
+      use the ``startswith`` idiom presented above.
+
    For other systems, the values are:
 
-   ================ ===========================
-   System           :data:`platform` value
-   ================ ===========================
-   Windows          ``'win32'``
-   Windows/Cygwin   ``'cygwin'``
-   Mac OS X         ``'darwin'``
-   OS/2             ``'os2'``
-   OS/2 EMX         ``'os2emx'``
-   ================ ===========================
+   ====================== ===========================
+   System                 :data:`platform` value
+   ====================== ===========================
+   Linux (2.x *and* 3.x)  ``'linux2'``
+   Windows                ``'win32'``
+   Windows/Cygwin         ``'cygwin'``
+   Mac OS X               ``'darwin'``
+   OS/2                   ``'os2'``
+   OS/2 EMX               ``'os2emx'``
+   ====================== ===========================
 
    .. seealso::
       :attr:`os.name` has a coarser granularity.  :func:`os.uname` gives

-- 
Repository URL: http://hg.python.org/cpython


More information about the Python-checkins mailing list