libmacos.tex 3.98 KB
Newer Older
Jack Jansen's avatar
Jack Jansen committed
1
\section{Built-in Module \sectcode{MacOS}}
Guido van Rossum's avatar
Guido van Rossum committed
2
\label{module-MacOS}
Jack Jansen's avatar
Jack Jansen committed
3 4
\bimodindex{MacOS}

5
\setindexsubitem{(in module MacOS)}
Jack Jansen's avatar
Jack Jansen committed
6 7 8 9 10 11 12 13 14 15 16 17 18

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 capitalisation of the module name, this is a historical
artefact.

\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
\var{OSErr} value) and a textual description of the error code.
19 20
Symbolic names for all known error codes are defined in the standard
module \var{macerrors}.
Jack Jansen's avatar
Jack Jansen committed
21 22
\end{excdesc}

23 24 25 26 27 28 29
\begin{funcdesc}{SetEventHandler}{handler}
In the inner interpreter loop Python will occasionally check for events,
unless disabled with \var{ScheduleParams}. With this function you
can pass a Python event-handler function that will be called if an event
is available. The event is passed as parameter and the function should return
non-zero if the event has been fully processed, otherwise event processing
continues (by passing the event to the console window package, for instance).
Jack Jansen's avatar
Jack Jansen committed
30

31 32
Call SetEventHandler without parameter to clear the event handler. Setting
an eventhandler while one is already set is an error.
Jack Jansen's avatar
Jack Jansen committed
33 34
\end{funcdesc}

35
\begin{funcdesc}{SchedParams}{\optional{doint, evtmask, besocial, interval, bgyield}}
36 37 38 39 40
Influence the interpreter inner loop event handling. \var{Interval}
specifies how often (in seconds, floating point) the interpreter
should enter the event processing code. When true, \var{doint} causes
interrupt (command-dot) checking to be done. \var{Evtmask} tells the
interpreter to do event processing for events in the mask (redraws,
41 42
mouseclicks to switch to other applications, etc). The \var{besocial}
flag gives other processes a chance to run. They are granted minimal
43 44
runtime when Python is in the foreground and \var{bgyield} seconds per
\var{interval} when Python runs in the background.
Jack Jansen's avatar
Jack Jansen committed
45

46 47 48 49 50
All parameters are optional, and default to the current value. The return
value of this function is a tuple with the old values of these options.
Initial defaults are that all processing is enabled, checking is done every
quarter second and the CPU is given up for a quarter second when in the
background.
Jack Jansen's avatar
Jack Jansen committed
51 52 53 54 55 56 57 58
\end{funcdesc}

\begin{funcdesc}{HandleEvent}{ev}
Pass the event record \code{ev} back to the python event loop, or
possibly to the handler for the \code{sys.stdout} window (based on the
compiler used to build python). This allows python programs that do
their own event handling to still have some command-period and
window-switching capability.
59 60 61

If you attempt to call this function from an event handler set through
\code{SetEventHandler} you will get an exception.
Jack Jansen's avatar
Jack Jansen committed
62 63 64 65 66
\end{funcdesc}

\begin{funcdesc}{GetErrorString}{errno}
Return the textual description of MacOS error code \var{errno}.
\end{funcdesc}
67 68 69 70 71

\begin{funcdesc}{splash}{resid}
This function will put a splash window
on-screen, with the contents of the DLOG resource specified by
\code{resid}. Calling with a zero argument will remove the splash
72
screen. This function is useful if you want an applet to post a splash screen
73 74 75 76
early in initialization without first having to load numerous
extension modules.
\end{funcdesc}

77
\begin{funcdesc}{DebugStr}{message \optional{, object}}
78 79 80 81 82 83 84 85 86 87
Drop to the low-level debugger with message \var{message}. The
optional \var{object} argument is not used, but can easily be
inspected from the debugger.

Note that you should use this function with extreme care: if no
low-level debugger like MacsBug is installed this call will crash your
system. It is intended mainly for developers of Python extension
modules.
\end{funcdesc}

88
\begin{funcdesc}{openrf}{name \optional{, mode}}
89 90 91 92 93
Open the resource fork of a file. Arguments are the same as for the
builtin function \code{open}. The object returned has file-like
semantics, but it is not a python file object, so there may be subtle
differences.
\end{funcdesc}