summaryrefslogtreecommitdiffstats
path: root/Doc/library/platform.rst
diff options
context:
space:
mode:
Diffstat (limited to 'Doc/library/platform.rst')
-rw-r--r--Doc/library/platform.rst256
1 files changed, 256 insertions, 0 deletions
diff --git a/Doc/library/platform.rst b/Doc/library/platform.rst
new file mode 100644
index 0000000..a4570d2
--- /dev/null
+++ b/Doc/library/platform.rst
@@ -0,0 +1,256 @@
+
+: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>
+
+
+.. versionadded:: 2.3
+
+.. 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.
+
+ .. versionadded:: 2.6
+
+
+.. function:: python_implementation()
+
+ Returns a string identifying the Python implementation. Possible return values
+ are: 'CPython', 'IronPython', 'Jython'
+
+ .. versionadded:: 2.6
+
+
+.. function:: python_revision()
+
+ Returns a string identifying the Python implementation SCM revision.
+
+ .. versionadded:: 2.6
+
+
+.. 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.
+
+ .. % This KnowledgeBase article appears to be missing...
+ .. % See also \ulink{MS KnowledgeBase article Q150956}{}.
+
+
+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.
+
+.. % Document linux_distribution()?
+
+
+.. 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
+ add symbols to the executable is probably only useable for executables compiled
+ using :program:`gcc`.
+
+ The file is read and scanned in chunks of *chunksize* bytes.
+