| \section{\module{platform} --- |
| Access to underlying platform's identifying data.} |
| |
| \declaremodule{standard}{platform} |
| \modulesynopsis{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} |
| |
| \begin{notice} |
| Specific platforms listed alphabetically, with Linux included in the |
| \UNIX{} section. |
| \end{notice} |
| |
| \subsection{Cross Platform} |
| |
| \begin{funcdesc}{architecture}{executable=sys.executable, bits='', linkage=''} |
| Queries the given executable (defaults to the Python interpreter |
| binary) for various architecture information. |
| |
| Returns a tuple \code{(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 \code{''}, the |
| \cfunction{sizeof(pointer)} |
| (or \cfunction{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. |
| \end{funcdesc} |
| |
| \begin{funcdesc}{machine}{} |
| Returns the machine type, e.g. \code{'i386'}. |
| An empty string is returned if the value cannot be determined. |
| \end{funcdesc} |
| |
| \begin{funcdesc}{node}{} |
| Returns the computer's network name (may not be fully qualified!). |
| An empty string is returned if the value cannot be determined. |
| \end{funcdesc} |
| |
| \begin{funcdesc}{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 \emph{human readable} rather than |
| machine parseable. It may look different on different platforms and |
| this is intended. |
| |
| If \var{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 |
| \function{system_alias()} function is used to implement this. |
| |
| Setting \var{terse} to true causes the function to return only the |
| absolute minimum information needed to identify the platform. |
| \end{funcdesc} |
| |
| \begin{funcdesc}{processor}{} |
| Returns the (real) processor name, e.g. \code{'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 \function{machine()}. NetBSD does this. |
| \end{funcdesc} |
| |
| \begin{funcdesc}{python_build}{} |
| Returns a tuple \code{(\var{buildno}, \var{builddate})} stating the |
| Python build number and date as strings. |
| \end{funcdesc} |
| |
| \begin{funcdesc}{python_compiler}{} |
| Returns a string identifying the compiler used for compiling Python. |
| \end{funcdesc} |
| |
| \begin{funcdesc}{python_version}{} |
| Returns the Python version as string \code{'major.minor.patchlevel'} |
| |
| Note that unlike the Python \code{sys.version}, the returned value |
| will always include the patchlevel (it defaults to 0). |
| \end{funcdesc} |
| |
| \begin{funcdesc}{python_version_tuple}{} |
| Returns the Python version as tuple \code{(\var{major}, \var{minor}, |
| \var{patchlevel})} of strings. |
| |
| Note that unlike the Python \code{sys.version}, the returned value |
| will always include the patchlevel (it defaults to \code{'0'}). |
| \end{funcdesc} |
| |
| \begin{funcdesc}{release}{} |
| Returns the system's release, e.g. \code{'2.2.0'} or \code{'NT'} |
| An empty string is returned if the value cannot be determined. |
| \end{funcdesc} |
| |
| \begin{funcdesc}{system}{} |
| Returns the system/OS name, e.g. \code{'Linux'}, \code{'Windows'}, |
| or \code{'Java'}. |
| An empty string is returned if the value cannot be determined. |
| \end{funcdesc} |
| |
| \begin{funcdesc}{system_alias}{system, release, version} |
| Returns \code{(\var{system}, \var{release}, \var{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. |
| \end{funcdesc} |
| |
| \begin{funcdesc}{version}{} |
| Returns the system's release version, e.g. \code{'\#3 on degas'}. |
| An empty string is returned if the value cannot be determined. |
| \end{funcdesc} |
| |
| \begin{funcdesc}{uname}{} |
| Fairly portable uname interface. Returns a tuple of strings |
| \code{(\var{system}, \var{node}, \var{release}, \var{version}, |
| \var{machine}, \var{processor})} identifying the underlying |
| platform. |
| |
| Note that unlike the \function{os.uname()} function this also returns |
| possible processor information as additional tuple entry. |
| |
| Entries which cannot be determined are set to \code{''}. |
| \end{funcdesc} |
| |
| |
| \subsection{Java Platform} |
| |
| \begin{funcdesc}{java_ver}{release='', vendor='', vminfo=('','',''), |
| osinfo=('','','')} |
| Version interface for JPython. |
| |
| Returns a tuple \code{(\var{release}, \var{vendor}, \var{vminfo}, |
| \var{osinfo})} with \var{vminfo} being a tuple \code{(\var{vm_name}, |
| \var{vm_release}, \var{vm_vendor})} and \var{osinfo} being a tuple |
| \code{(\var{os_name}, \var{os_version}, \var{os_arch})}. |
| Values which cannot be determined are set to the defaults |
| given as parameters (which all default to \code{''}). |
| \end{funcdesc} |
| |
| |
| \subsection{Windows Platform} |
| |
| \begin{funcdesc}{win32_ver}{release='', version='', csd='', ptype=''} |
| Get additional version information from the Windows Registry |
| and return a tuple \code{(\var{version}, \var{csd}, \var{ptype})} |
| referring to version number, CSD level and OS type (multi/single |
| processor). |
| |
| As a hint: \var{ptype} is \code{'Uniprocessor Free'} on single |
| processor NT machines and \code{'Multiprocessor Free'} on multi |
| processor machines. The \emph{'Free'} refers to the OS version being |
| free of debugging code. It could also state \emph{'Checked'} which |
| means the OS version uses debugging code, i.e. code that |
| checks arguments, ranges, etc. |
| |
| \begin{notice}[note] |
| This function only works if Mark Hammond's \module{win32all} |
| package is installed and (obviously) only runs on Win32 |
| compatible platforms. |
| \end{notice} |
| \end{funcdesc} |
| |
| \subsubsection{Win95/98 specific} |
| |
| \begin{funcdesc}{popen}{cmd, mode='r', bufsize=None} |
| Portable \function{popen()} interface. Find a working popen |
| implementation preferring \function{win32pipe.popen()}. On Windows |
| NT, \function{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}{}. |
| \end{funcdesc} |
| |
| |
| \subsection{Mac OS Platform} |
| |
| \begin{funcdesc}{mac_ver}{release='', versioninfo=('','',''), machine=''} |
| Get Mac OS version information and return it as tuple |
| \code{(\var{release}, \var{versioninfo}, \var{machine})} with |
| \var{versioninfo} being a tuple \code{(\var{version}, |
| \var{dev_stage}, \var{non_release_version})}. |
| |
| Entries which cannot be determined are set to \code{''}. All tuple |
| entries are strings. |
| |
| Documentation for the underlying \cfunction{gestalt()} API is |
| available online at \url{http://www.rgaros.nl/gestalt/}. |
| \end{funcdesc} |
| |
| |
| \subsection{\UNIX{} Platforms} |
| |
| \begin{funcdesc}{dist}{distname='', version='', id='', |
| supported_dists=('SuSE','debian','redhat','mandrake')} |
| Tries to determine the name of the OS distribution name |
| Returns a tuple \code{(\var{distname}, \var{version}, \var{id})} |
| which defaults to the args given as parameters. |
| \end{funcdesc} |
| |
| |
| \begin{funcdesc}{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 \code{(\var{lib}, \var{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 \var{chunksize} bytes. |
| \end{funcdesc} |