\section{\module{MacOS} ---
         Access to Mac OS interpreter features}

\declaremodule{builtin}{MacOS}
  \platform{Mac}
\modulesynopsis{Access to Mac OS-specific interpreter features.}


This module provides access to MacOS specific functionality in the
Python interpreter, such as how the interpreter eventloop functions
and the like. Use with care.

Note the capitalization of the module name; this is a historical
artifact.

\begin{datadesc}{runtimemodel}
Always \code{'macho'}, from Python 2.4 on.
In earlier versions of Python the value could
also be \code{'ppc'} for the classic Mac OS 8 runtime model or
\code{'carbon'} for the Mac OS 9 runtime model.
\end{datadesc}

\begin{datadesc}{linkmodel}
The way the interpreter has been linked. As extension modules may be
incompatible between linking models, packages could use this information to give
more decent error messages. The value is one of \code{'static'} for a
statically linked Python, \code{'framework'} for Python in a Mac OS X framework,
\code{'shared'} for Python in a standard \UNIX{} shared library.
Older Pythons could also have the value
\code{'cfm'} for Mac OS 9-compatible Python.
\end{datadesc}

\begin{excdesc}{Error}
This exception is raised on MacOS generated errors, either from
functions in this module or from other mac-specific modules like the
toolbox interfaces. The arguments are the integer error code (the
\cdata{OSErr} value) and a textual description of the error code.
Symbolic names for all known error codes are defined in the standard
module \refmodule{macerrors}.\refstmodindex{macerrors}
\end{excdesc}


\begin{funcdesc}{GetErrorString}{errno}
Return the textual description of MacOS error code \var{errno}.
\end{funcdesc}

\begin{funcdesc}{DebugStr}{message \optional{, object}}
On Mac OS X the string is simply printed to stderr (on older
Mac OS systems more elaborate functionality was available),
but it provides a convenient location to attach a breakpoint
in a low-level debugger like \program{gdb}.
\end{funcdesc}

\begin{funcdesc}{SysBeep}{}
Ring the bell.
\end{funcdesc}

\begin{funcdesc}{GetTicks}{}
Get the number of clock ticks (1/60th of a second) since system boot.
\end{funcdesc}

\begin{funcdesc}{GetCreatorAndType}{file}
Return the file creator and file type as two four-character strings.
The \var{file} parameter can be a pathname or an \code{FSSpec} or 
\code{FSRef} object.
\end{funcdesc}

\begin{funcdesc}{SetCreatorAndType}{file, creator, type}
Set the file creator and file type.
The \var{file} parameter can be a pathname or an \code{FSSpec} or 
\code{FSRef} object. \var{creator} and \var{type} must be four character
strings.
\end{funcdesc}

\begin{funcdesc}{openrf}{name \optional{, mode}}
Open the resource fork of a file. Arguments are the same as for the
built-in function \function{open()}. The object returned has file-like
semantics, but it is not a Python file object, so there may be subtle
differences.
\end{funcdesc}

\begin{funcdesc}{WMAvailable}{}
Checks whether the current process has access to the window manager.
The method will return \code{False} if the window manager is not available,
for instance when running on Mac OS X Server or when logged in via ssh,
or when the current interpreter is not running from a fullblown application
bundle. A script runs from an application bundle either when it has been
started with \program{pythonw} instead of \program{python} or when running 
as an applet.
\end{funcdesc}
