2007-08-15 11:28:22 -03:00
|
|
|
|
|
|
|
:mod:`platform` --- Access to underlying platform's identifying data.
|
|
|
|
======================================================================
|
|
|
|
|
|
|
|
.. module:: platform
|
|
|
|
:synopsis: Retrieves as much platform identifying data as possible.
|
|
|
|
.. moduleauthor:: Marc-Andre Lemburg <mal@egenix.com>
|
|
|
|
.. sectionauthor:: Bjorn Pettersen <bpettersen@corp.fairisaac.com>
|
|
|
|
|
|
|
|
|
|
|
|
.. note::
|
|
|
|
|
|
|
|
Specific platforms listed alphabetically, with Linux included in the Unix
|
|
|
|
section.
|
|
|
|
|
|
|
|
|
|
|
|
Cross Platform
|
|
|
|
--------------
|
|
|
|
|
|
|
|
|
|
|
|
.. function:: architecture(executable=sys.executable, bits='', linkage='')
|
|
|
|
|
|
|
|
Queries the given executable (defaults to the Python interpreter binary) for
|
|
|
|
various architecture information.
|
|
|
|
|
|
|
|
Returns a tuple ``(bits, linkage)`` which contain information about the bit
|
|
|
|
architecture and the linkage format used for the executable. Both values are
|
|
|
|
returned as strings.
|
|
|
|
|
|
|
|
Values that cannot be determined are returned as given by the parameter presets.
|
|
|
|
If bits is given as ``''``, the :cfunc:`sizeof(pointer)` (or
|
|
|
|
:cfunc:`sizeof(long)` on Python version < 1.5.2) is used as indicator for the
|
|
|
|
supported pointer size.
|
|
|
|
|
|
|
|
The function relies on the system's :file:`file` command to do the actual work.
|
|
|
|
This is available on most if not all Unix platforms and some non-Unix platforms
|
|
|
|
and then only if the executable points to the Python interpreter. Reasonable
|
|
|
|
defaults are used when the above needs are not met.
|
|
|
|
|
|
|
|
|
|
|
|
.. function:: machine()
|
|
|
|
|
|
|
|
Returns the machine type, e.g. ``'i386'``. An empty string is returned if the
|
|
|
|
value cannot be determined.
|
|
|
|
|
|
|
|
|
|
|
|
.. function:: node()
|
|
|
|
|
|
|
|
Returns the computer's network name (may not be fully qualified!). An empty
|
|
|
|
string is returned if the value cannot be determined.
|
|
|
|
|
|
|
|
|
|
|
|
.. function:: platform(aliased=0, terse=0)
|
|
|
|
|
|
|
|
Returns a single string identifying the underlying platform with as much useful
|
|
|
|
information as possible.
|
|
|
|
|
|
|
|
The output is intended to be *human readable* rather than machine parseable. It
|
|
|
|
may look different on different platforms and this is intended.
|
|
|
|
|
|
|
|
If *aliased* is true, the function will use aliases for various platforms that
|
|
|
|
report system names which differ from their common names, for example SunOS will
|
|
|
|
be reported as Solaris. The :func:`system_alias` function is used to implement
|
|
|
|
this.
|
|
|
|
|
|
|
|
Setting *terse* to true causes the function to return only the absolute minimum
|
|
|
|
information needed to identify the platform.
|
|
|
|
|
|
|
|
|
|
|
|
.. function:: processor()
|
|
|
|
|
|
|
|
Returns the (real) processor name, e.g. ``'amdk6'``.
|
|
|
|
|
|
|
|
An empty string is returned if the value cannot be determined. Note that many
|
|
|
|
platforms do not provide this information or simply return the same value as for
|
|
|
|
:func:`machine`. NetBSD does this.
|
|
|
|
|
|
|
|
|
|
|
|
.. function:: python_build()
|
|
|
|
|
|
|
|
Returns a tuple ``(buildno, builddate)`` stating the Python build number and
|
|
|
|
date as strings.
|
|
|
|
|
|
|
|
|
|
|
|
.. function:: python_compiler()
|
|
|
|
|
|
|
|
Returns a string identifying the compiler used for compiling Python.
|
|
|
|
|
|
|
|
|
|
|
|
.. function:: python_branch()
|
|
|
|
|
|
|
|
Returns a string identifying the Python implementation SCM branch.
|
|
|
|
|
|
|
|
|
|
|
|
.. function:: python_implementation()
|
|
|
|
|
|
|
|
Returns a string identifying the Python implementation. Possible return values
|
|
|
|
are: 'CPython', 'IronPython', 'Jython'
|
|
|
|
|
|
|
|
|
|
|
|
.. function:: python_revision()
|
|
|
|
|
|
|
|
Returns a string identifying the Python implementation SCM revision.
|
|
|
|
|
|
|
|
|
|
|
|
.. function:: python_version()
|
|
|
|
|
|
|
|
Returns the Python version as string ``'major.minor.patchlevel'``
|
|
|
|
|
|
|
|
Note that unlike the Python ``sys.version``, the returned value will always
|
|
|
|
include the patchlevel (it defaults to 0).
|
|
|
|
|
|
|
|
|
|
|
|
.. function:: python_version_tuple()
|
|
|
|
|
|
|
|
Returns the Python version as tuple ``(major, minor, patchlevel)`` of strings.
|
|
|
|
|
|
|
|
Note that unlike the Python ``sys.version``, the returned value will always
|
|
|
|
include the patchlevel (it defaults to ``'0'``).
|
|
|
|
|
|
|
|
|
|
|
|
.. function:: release()
|
|
|
|
|
|
|
|
Returns the system's release, e.g. ``'2.2.0'`` or ``'NT'`` An empty string is
|
|
|
|
returned if the value cannot be determined.
|
|
|
|
|
|
|
|
|
|
|
|
.. function:: system()
|
|
|
|
|
|
|
|
Returns the system/OS name, e.g. ``'Linux'``, ``'Windows'``, or ``'Java'``. An
|
|
|
|
empty string is returned if the value cannot be determined.
|
|
|
|
|
|
|
|
|
|
|
|
.. function:: system_alias(system, release, version)
|
|
|
|
|
|
|
|
Returns ``(system, release, version)`` aliased to common marketing names used
|
|
|
|
for some systems. It also does some reordering of the information in some cases
|
|
|
|
where it would otherwise cause confusion.
|
|
|
|
|
|
|
|
|
|
|
|
.. function:: version()
|
|
|
|
|
|
|
|
Returns the system's release version, e.g. ``'#3 on degas'``. An empty string is
|
|
|
|
returned if the value cannot be determined.
|
|
|
|
|
|
|
|
|
|
|
|
.. function:: uname()
|
|
|
|
|
|
|
|
Fairly portable uname interface. Returns a tuple of strings ``(system, node,
|
|
|
|
release, version, machine, processor)`` identifying the underlying platform.
|
|
|
|
|
|
|
|
Note that unlike the :func:`os.uname` function this also returns possible
|
|
|
|
processor information as additional tuple entry.
|
|
|
|
|
|
|
|
Entries which cannot be determined are set to ``''``.
|
|
|
|
|
|
|
|
|
|
|
|
Java Platform
|
|
|
|
-------------
|
|
|
|
|
|
|
|
|
|
|
|
.. function:: java_ver(release='', vendor='', vminfo=('','',''), osinfo=('','',''))
|
|
|
|
|
|
|
|
Version interface for JPython.
|
|
|
|
|
|
|
|
Returns a tuple ``(release, vendor, vminfo, osinfo)`` with *vminfo* being a
|
|
|
|
tuple ``(vm_name, vm_release, vm_vendor)`` and *osinfo* being a tuple
|
|
|
|
``(os_name, os_version, os_arch)``. Values which cannot be determined are set to
|
|
|
|
the defaults given as parameters (which all default to ``''``).
|
|
|
|
|
|
|
|
|
|
|
|
Windows Platform
|
|
|
|
----------------
|
|
|
|
|
|
|
|
|
|
|
|
.. function:: win32_ver(release='', version='', csd='', ptype='')
|
|
|
|
|
|
|
|
Get additional version information from the Windows Registry and return a tuple
|
|
|
|
``(version, csd, ptype)`` referring to version number, CSD level and OS type
|
|
|
|
(multi/single processor).
|
|
|
|
|
|
|
|
As a hint: *ptype* is ``'Uniprocessor Free'`` on single processor NT machines
|
|
|
|
and ``'Multiprocessor Free'`` on multi processor machines. The *'Free'* refers
|
|
|
|
to the OS version being free of debugging code. It could also state *'Checked'*
|
|
|
|
which means the OS version uses debugging code, i.e. code that checks arguments,
|
|
|
|
ranges, etc.
|
|
|
|
|
|
|
|
.. note::
|
|
|
|
|
|
|
|
This function only works if Mark Hammond's :mod:`win32all` package is installed
|
|
|
|
and (obviously) only runs on Win32 compatible platforms.
|
|
|
|
|
|
|
|
|
|
|
|
Win95/98 specific
|
|
|
|
^^^^^^^^^^^^^^^^^
|
|
|
|
|
|
|
|
.. function:: popen(cmd, mode='r', bufsize=None)
|
|
|
|
|
|
|
|
Portable :func:`popen` interface. Find a working popen implementation
|
|
|
|
preferring :func:`win32pipe.popen`. On Windows NT, :func:`win32pipe.popen`
|
|
|
|
should work; on Windows 9x it hangs due to bugs in the MS C library.
|
|
|
|
|
|
|
|
|
|
|
|
Mac OS Platform
|
|
|
|
---------------
|
|
|
|
|
|
|
|
|
|
|
|
.. function:: mac_ver(release='', versioninfo=('','',''), machine='')
|
|
|
|
|
|
|
|
Get Mac OS version information and return it as tuple ``(release, versioninfo,
|
|
|
|
machine)`` with *versioninfo* being a tuple ``(version, dev_stage,
|
|
|
|
non_release_version)``.
|
|
|
|
|
|
|
|
Entries which cannot be determined are set to ``''``. All tuple entries are
|
|
|
|
strings.
|
|
|
|
|
|
|
|
Documentation for the underlying :cfunc:`gestalt` API is available online at
|
|
|
|
http://www.rgaros.nl/gestalt/.
|
|
|
|
|
|
|
|
|
|
|
|
Unix Platforms
|
|
|
|
--------------
|
|
|
|
|
|
|
|
|
|
|
|
.. function:: dist(distname='', version='', id='', supported_dists=('SuSE','debian','redhat','mandrake'))
|
|
|
|
|
|
|
|
Tries to determine the name of the OS distribution name Returns a tuple
|
|
|
|
``(distname, version, id)`` which defaults to the args given as parameters.
|
|
|
|
|
Merged revisions 59605-59624 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk
........
r59606 | georg.brandl | 2007-12-29 11:57:00 +0100 (Sat, 29 Dec 2007) | 2 lines
Some cleanup in the docs.
........
r59611 | martin.v.loewis | 2007-12-29 19:49:21 +0100 (Sat, 29 Dec 2007) | 2 lines
Bug #1699: Define _BSD_SOURCE only on OpenBSD.
........
r59612 | raymond.hettinger | 2007-12-29 23:09:34 +0100 (Sat, 29 Dec 2007) | 1 line
Simpler documentation for itertools.tee(). Should be backported.
........
r59613 | raymond.hettinger | 2007-12-29 23:16:24 +0100 (Sat, 29 Dec 2007) | 1 line
Improve docs for itertools.groupby(). The use of xrange(0) to create a unique object is less obvious than object().
........
r59620 | christian.heimes | 2007-12-31 15:47:07 +0100 (Mon, 31 Dec 2007) | 3 lines
Added wininst-9.0.exe executable for VS 2008
Integrated bdist_wininst into PCBuild9 directory
........
r59621 | christian.heimes | 2007-12-31 15:51:18 +0100 (Mon, 31 Dec 2007) | 1 line
Moved PCbuild directory to PC/VS7.1
........
r59622 | christian.heimes | 2007-12-31 15:59:26 +0100 (Mon, 31 Dec 2007) | 1 line
Fix paths for build bot
........
r59623 | christian.heimes | 2007-12-31 16:02:41 +0100 (Mon, 31 Dec 2007) | 1 line
Fix paths for build bot, part 2
........
r59624 | christian.heimes | 2007-12-31 16:18:55 +0100 (Mon, 31 Dec 2007) | 1 line
Renamed PCBuild9 directory to PCBuild
........
2007-12-31 12:14:33 -04:00
|
|
|
.. XXX Document linux_distribution()?
|
2007-08-15 11:28:22 -03:00
|
|
|
|
|
|
|
|
|
|
|
.. function:: libc_ver(executable=sys.executable, lib='', version='', chunksize=2048)
|
|
|
|
|
|
|
|
Tries to determine the libc version against which the file executable (defaults
|
|
|
|
to the Python interpreter) is linked. Returns a tuple of strings ``(lib,
|
|
|
|
version)`` which default to the given parameters in case the lookup fails.
|
|
|
|
|
|
|
|
Note that this function has intimate knowledge of how different libc versions
|
Merged revisions 60481,60485,60489-60492,60494-60496,60498-60499,60501-60503,60505-60506,60508-60509,60523-60524,60532,60543,60545,60547-60548,60552,60554,60556-60559,60561-60562,60569,60571-60572,60574,60576-60583,60585-60586,60589,60591,60594-60595,60597-60598,60600-60601,60606-60612,60615,60617,60619-60621,60623-60625,60627-60629,60631,60633,60635,60647,60650,60652,60654,60656,60658-60659,60664-60666,60668-60670,60672,60676,60678,60680-60683,60685-60686,60688,60690,60692-60694,60697-60700,60705-60706,60708,60711,60714,60720,60724-60730,60732,60736,60742,60744,60746,60748,60750-60751,60753,60756-60757,60759-60761,60763-60764,60766,60769-60770,60774-60784,60787-60789,60793,60796,60799-60809,60812-60813,60815-60821,60823-60826,60828-60829,60831-60834,60836,60838-60839,60846-60849,60852-60854,60856-60859,60861-60870,60874-60875,60880-60881,60886,60888-60890,60892,60894-60898,60900-60931,60933-60958 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk
........
r60901 | eric.smith | 2008-02-19 14:21:56 +0100 (Tue, 19 Feb 2008) | 1 line
Added PEP 3101.
........
r60907 | georg.brandl | 2008-02-20 20:12:36 +0100 (Wed, 20 Feb 2008) | 2 lines
Fixes contributed by Ori Avtalion.
........
r60909 | eric.smith | 2008-02-21 00:34:22 +0100 (Thu, 21 Feb 2008) | 1 line
Trim leading zeros from a floating point exponent, per C99. See issue 1600. As far as I know, this only affects Windows. Add float type 'n' to PyOS_ascii_formatd (see PEP 3101 for 'n' description).
........
r60910 | eric.smith | 2008-02-21 00:39:28 +0100 (Thu, 21 Feb 2008) | 1 line
Now that PyOS_ascii_formatd supports the 'n' format, simplify the float formatting code to just call it.
........
r60918 | andrew.kuchling | 2008-02-21 15:23:38 +0100 (Thu, 21 Feb 2008) | 2 lines
Close manifest file.
This change doesn't make any difference to CPython, but is a necessary fix for Jython.
........
r60921 | guido.van.rossum | 2008-02-21 18:46:16 +0100 (Thu, 21 Feb 2008) | 2 lines
Remove news about float repr() -- issue 1580 is still in limbo.
........
r60923 | guido.van.rossum | 2008-02-21 19:18:37 +0100 (Thu, 21 Feb 2008) | 5 lines
Removed uses of dict.has_key() from distutils, and uses of
callable() from copy_reg.py, so the interpreter now starts up
without warnings when '-3' is given. More work like this needs to
be done in the rest of the stdlib.
........
r60924 | thomas.heller | 2008-02-21 19:28:48 +0100 (Thu, 21 Feb 2008) | 4 lines
configure.ac: Remove the configure check for _Bool, it is already done in the
top-level Python configure script.
configure, fficonfig.h.in: regenerated.
........
r60925 | thomas.heller | 2008-02-21 19:52:20 +0100 (Thu, 21 Feb 2008) | 3 lines
Replace 'has_key()' with 'in'.
Replace 'raise Error, stuff' with 'raise Error(stuff)'.
........
r60927 | raymond.hettinger | 2008-02-21 20:24:53 +0100 (Thu, 21 Feb 2008) | 1 line
Update more instances of has_key().
........
r60928 | guido.van.rossum | 2008-02-21 20:46:35 +0100 (Thu, 21 Feb 2008) | 3 lines
Fix a few typos and layout glitches (more work is needed).
Move 2.5 news to Misc/HISTORY.
........
r60936 | georg.brandl | 2008-02-21 21:33:38 +0100 (Thu, 21 Feb 2008) | 2 lines
#2079: typo in userdict docs.
........
r60938 | georg.brandl | 2008-02-21 21:38:13 +0100 (Thu, 21 Feb 2008) | 2 lines
Part of #2154: minimal syntax fixes in doc example snippets.
........
r60942 | raymond.hettinger | 2008-02-22 04:16:42 +0100 (Fri, 22 Feb 2008) | 1 line
First draft for itertools.product(). Docs and other updates forthcoming.
........
r60955 | nick.coghlan | 2008-02-22 11:54:06 +0100 (Fri, 22 Feb 2008) | 1 line
Try to make command line error messages from runpy easier to understand (and suppress traceback cruft from the implicitly invoked runpy machinery)
........
r60956 | georg.brandl | 2008-02-22 13:31:45 +0100 (Fri, 22 Feb 2008) | 2 lines
A lot more typo fixes by Ori Avtalion.
........
r60957 | georg.brandl | 2008-02-22 13:56:34 +0100 (Fri, 22 Feb 2008) | 2 lines
Don't reference pyshell.
........
r60958 | georg.brandl | 2008-02-22 13:57:05 +0100 (Fri, 22 Feb 2008) | 2 lines
Another fix.
........
2008-02-22 12:37:40 -04:00
|
|
|
add symbols to the executable is probably only usable for executables compiled
|
2007-08-15 11:28:22 -03:00
|
|
|
using :program:`gcc`.
|
|
|
|
|
|
|
|
The file is read and scanned in chunks of *chunksize* bytes.
|
|
|
|
|