Kaydet (Commit) 7aeba45b authored tarafından Jack Jansen's avatar Jack Jansen

Updated the Mac documentation to the current state of affairs.

üst 90975f1f
...@@ -12,7 +12,7 @@ ...@@ -12,7 +12,7 @@
The \module{aepack} module defines functions for converting (packing) The \module{aepack} module defines functions for converting (packing)
Python variables to AppleEvent descriptors and back (unpacking). Python variables to AppleEvent descriptors and back (unpacking).
Within Python the AppleEvent descriptor is handled by Python objects Within Python the AppleEvent descriptor is handled by Python objects
of built-in type \pytype{AEDesc}, defined in module \refmodule{AE}. of built-in type \class{AEDesc}, defined in module \refmodule{AE}.
The \module{aepack} module defines the following functions: The \module{aepack} module defines the following functions:
...@@ -25,21 +25,20 @@ Apple Event descriptor types is used, as follows: ...@@ -25,21 +25,20 @@ Apple Event descriptor types is used, as follows:
\begin{tableii}{l|l}{textrm}{Python type}{descriptor type} \begin{tableii}{l|l}{textrm}{Python type}{descriptor type}
\lineii{\class{FSSpec}}{typeFSS} \lineii{\class{FSSpec}}{typeFSS}
\lineii{\class{FSRef}}{typeFSRef}
\lineii{\class{Alias}}{typeAlias} \lineii{\class{Alias}}{typeAlias}
\lineii{integer}{typeLong (32 bit integer)} \lineii{integer}{typeLong (32 bit integer)}
\lineii{float}{typeFloat (64 bit floating point)} \lineii{float}{typeFloat (64 bit floating point)}
\lineii{string}{typeText} \lineii{string}{typeText}
\lineii{unicode}{typeUnicodeText}
\lineii{list}{typeAEList} \lineii{list}{typeAEList}
\lineii{dictionary}{typeAERecord} \lineii{dictionary}{typeAERecord}
\lineii{instance}{\emph{see below}} \lineii{instance}{\emph{see below}}
\end{tableii} \end{tableii}
\pytype{FSSpec} and \pytype{Alias} are built-in object types defined
in the module \refmodule{macfs}.
If \var{x} is a Python instance then this function attempts to call an If \var{x} is a Python instance then this function attempts to call an
\method{__aepack__()} method. This method should return an \method{__aepack__()} method. This method should return an
\pytype{AE.AEDesc} object. \class{AE.AEDesc} object.
If the conversion \var{x} is not defined above, this function returns If the conversion \var{x} is not defined above, this function returns
the Python string representation of a value (the repr() function) the Python string representation of a value (the repr() function)
......
\section{\module{ctb} ---
Interface to the Communications Tool Box}
\declaremodule{builtin}{ctb}
\platform{Mac}
\modulesynopsis{Interfaces to the Communications Tool Box. Only the
Connection Manager is supported.}
This module provides a partial interface to the Macintosh
Communications Toolbox. Currently, only Connection Manager tools are
supported.
This module is only available under MacOS9 or earlier, in classic PPC
MacPython.
\index{Communications Toolbox, Macintosh}
\index{Macintosh Communications Toolbox}
\index{Connection Manager}
\begin{datadesc}{error}
The exception raised on errors.
\end{datadesc}
\begin{datadesc}{cmData}
\dataline{cmCntl}
\dataline{cmAttn}
Flags for the \var{channel} argument of the \method{Read()} and
\method{Write()} methods.
\end{datadesc}
\begin{datadesc}{cmFlagsEOM}
End-of-message flag for \method{Read()} and \method{Write()}.
\end{datadesc}
\begin{datadesc}{choose*}
Values returned by \method{Choose()}.
\end{datadesc}
\begin{datadesc}{cmStatus*}
Bits in the status as returned by \method{Status()}.
\end{datadesc}
\begin{funcdesc}{available}{}
Return \code{1} if the Communication Toolbox is available, zero otherwise.
\end{funcdesc}
\begin{funcdesc}{CMNew}{name, sizes}
Create a connection object using the connection tool named
\var{name}. \var{sizes} is a 6-tuple given buffer sizes for data in,
data out, control in, control out, attention in and attention out.
Alternatively, passing \code{None} for \var{sizes} will result in
default buffer sizes.
\end{funcdesc}
\subsection{Connection Objects \label{connection-object}}
For all connection methods that take a \var{timeout} argument, a value
of \code{-1} is indefinite, meaning that the command runs to completion.
\begin{memberdesc}[connection]{callback}
If this member is set to a value other than \code{None} it should point
to a function accepting a single argument (the connection
object). This will make all connection object methods work
asynchronously, with the callback routine being called upon
completion.
\note{For reasons beyond my understanding, the callback routine
is currently never called. You are advised against using asynchronous
calls for the time being.}
\end{memberdesc}
\begin{methoddesc}[connection]{Open}{timeout}
Open an outgoing connection, waiting at most \var{timeout} seconds for
the connection to be established.
\end{methoddesc}
\begin{methoddesc}[connection]{Listen}{timeout}
Wait for an incoming connection. Stop waiting after \var{timeout}
seconds. This call is only meaningful to some tools.
\end{methoddesc}
\begin{methoddesc}[connection]{accept}{yesno}
Accept (when \var{yesno} is non-zero) or reject an incoming call after
\method{Listen()} returned.
\end{methoddesc}
\begin{methoddesc}[connection]{Close}{timeout, now}
Close a connection. When \var{now} is zero, the close is orderly
(outstanding output is flushed, etc.)\ with a timeout of
\var{timeout} seconds. When \var{now} is non-zero the close is
immediate, discarding output.
\end{methoddesc}
\begin{methoddesc}[connection]{Read}{len, chan, timeout}
Read \var{len} bytes, or until \var{timeout} seconds have passed, from
the channel \var{chan} (which is one of \constant{cmData},
\constant{cmCntl} or \constant{cmAttn}). Return a 2-tuple:\ the data
read and the end-of-message flag, \constant{cmFlagsEOM}.
\end{methoddesc}
\begin{methoddesc}[connection]{Write}{buf, chan, timeout, eom}
Write \var{buf} to channel \var{chan}, aborting after \var{timeout}
seconds. When \var{eom} has the value \constant{cmFlagsEOM}, an
end-of-message indicator will be written after the data (if this
concept has a meaning for this communication tool). The method returns
the number of bytes written.
\end{methoddesc}
\begin{methoddesc}[connection]{Status}{}
Return connection status as the 2-tuple \code{(\var{sizes},
\var{flags})}. \var{sizes} is a 6-tuple giving the actual buffer sizes used
(see \function{CMNew()}), \var{flags} is a set of bits describing the state
of the connection.
\end{methoddesc}
\begin{methoddesc}[connection]{GetConfig}{}
Return the configuration string of the communication tool. These
configuration strings are tool-dependent, but usually easily parsed
and modified.
\end{methoddesc}
\begin{methoddesc}[connection]{SetConfig}{str}
Set the configuration string for the tool. The strings are parsed
left-to-right, with later values taking precedence. This means
individual configuration parameters can be modified by simply appending
something like \code{'baud 4800'} to the end of the string returned by
\method{GetConfig()} and passing that to this method. The method returns
the number of characters actually parsed by the tool before it
encountered an error (or completed successfully).
\end{methoddesc}
\begin{methoddesc}[connection]{Choose}{}
Present the user with a dialog to choose a communication tool and
configure it. If there is an outstanding connection some choices (like
selecting a different tool) may cause the connection to be
aborted. The return value (one of the \constant{choose*} constants) will
indicate this.
\end{methoddesc}
\begin{methoddesc}[connection]{Idle}{}
Give the tool a chance to use the processor. You should call this
method regularly.
\end{methoddesc}
\begin{methoddesc}[connection]{Abort}{}
Abort an outstanding asynchronous \method{Open()} or \method{Listen()}.
\end{methoddesc}
\begin{methoddesc}[connection]{Reset}{}
Reset a connection. Exact meaning depends on the tool.
\end{methoddesc}
\begin{methoddesc}[connection]{Break}{length}
Send a break. Whether this means anything, what it means and
interpretation of the \var{length} parameter depends on the tool in
use.
\end{methoddesc}
...@@ -6,9 +6,10 @@ ...@@ -6,9 +6,10 @@
\modulesynopsis{Implementations for the \module{os} module.} \modulesynopsis{Implementations for the \module{os} module.}
This module implements the operating system dependent functionality This module implements the Mac OS 9 operating system dependent functionality
provided by the standard module \module{os}\refstmodindex{os}. It is provided by the standard module \module{os}\refstmodindex{os}. It is
best accessed through the \module{os} module. best accessed through the \module{os} module. This module is only available in
MacPython-OS9, on MacPython-OSX \module{posix} is used.
The following functions are available in this module: The following functions are available in this module:
\function{chdir()}, \function{chdir()},
...@@ -29,23 +30,7 @@ The following functions are available in this module: ...@@ -29,23 +30,7 @@ The following functions are available in this module:
\function{write()}, \function{write()},
as well as the exception \exception{error}. Note that the times as well as the exception \exception{error}. Note that the times
returned by \function{stat()} are floating-point values, like all time returned by \function{stat()} are floating-point values, like all time
values in MacPython. values in MacPython-OS9.
One additional function is available, but only under Classic MacPython,
not under Carbon MacPython:
\begin{funcdesc}{xstat}{path}
This function returns the same information as \function{stat()}, but
with three additional values appended: the size of the resource fork
of the file and its 4-character creator and type.
Availability: Classic MacPython only.
\deprecated{2.3}{Use the \function{\refmodule{macfs}.FSSpec()}
function to get an FSSpec object for the file, then
use the \method{GetCreatorType()} method to get the
creator and type information. It will no longer be
possible to get the size of the resource fork.}
\end{funcdesc}
\section{\module{macpath} --- \section{\module{macpath} ---
MacOS path manipulation functions} MacOS path manipulation functions}
......
\section{\module{macfs} --- \section{\module{macfs} ---
Various file system services} Various file system services}
\declaremodule{builtin}{macfs} \declaremodule{standard}{macfs}
\platform{Mac} \platform{Mac}
\modulesynopsis{Support for FSSpec, the Alias Manager, \modulesynopsis{Support for FSSpec, the Alias Manager,
\program{finder} aliases, and the Standard File package.} \program{finder} aliases, and the Standard File package.}
\deprecated{2.3}{The macfs module should be considered obsolete. For
\class{FSSpec}, \class{FSRef} and \class{Alias} handling use the
Carbon.File or Carbon.Folder module. For file dialogs use the
\module{EasyDialogs} module.}
This module provides access to Macintosh FSSpec handling, the Alias This module provides access to Macintosh FSSpec handling, the Alias
Manager, \program{finder} aliases and the Standard File package. Manager, \program{finder} aliases and the Standard File package.
...@@ -15,9 +19,9 @@ Manager, \program{finder} aliases and the Standard File package. ...@@ -15,9 +19,9 @@ Manager, \program{finder} aliases and the Standard File package.
Whenever a function or method expects a \var{file} argument, this Whenever a function or method expects a \var{file} argument, this
argument can be one of three things:\ (1) a full or partial Macintosh argument can be one of three things:\ (1) a full or partial Macintosh
pathname, (2) an \pytype{FSSpec} object or (3) a 3-tuple pathname, (2) an \class{FSSpec} object or (3) a 3-tuple
\code{(\var{wdRefNum}, \var{parID}, \var{name})} as described in \code{(\var{wdRefNum}, \var{parID}, \var{name})} as described in
\citetitle{Inside Macintosh:\ Files}. An \pytype{FSSpec} can point to \citetitle{Inside Macintosh:\ Files}. An \class{FSSpec} can point to
a non-existing file, as long as the folder containing the file exists. a non-existing file, as long as the folder containing the file exists.
Under MacPython the same is true for a pathname, but not under unix-Pyton Under MacPython the same is true for a pathname, but not under unix-Pyton
because of the way pathnames and FSRefs works. See Apple's documentation because of the way pathnames and FSRefs works. See Apple's documentation
...@@ -26,42 +30,39 @@ for details. ...@@ -26,42 +30,39 @@ for details.
A description of aliases and the A description of aliases and the
Standard File package can also be found there. Standard File package can also be found there.
\note{A module, \refmodule{macfsn}, is auto-imported to replace
StandardFile calls in \module{macfs} with NavServices calls.}
\begin{funcdesc}{FSSpec}{file} \begin{funcdesc}{FSSpec}{file}
Create an \pytype{FSSpec} object for the specified file. Create an \class{FSSpec} object for the specified file.
\end{funcdesc} \end{funcdesc}
\begin{funcdesc}{RawFSSpec}{data} \begin{funcdesc}{RawFSSpec}{data}
Create an \pytype{FSSpec} object given the raw data for the \C{} Create an \class{FSSpec} object given the raw data for the \C{}
structure for the \pytype{FSSpec} as a string. This is mainly useful structure for the \class{FSSpec} as a string. This is mainly useful
if you have obtained an \pytype{FSSpec} structure over a network. if you have obtained an \class{FSSpec} structure over a network.
\end{funcdesc} \end{funcdesc}
\begin{funcdesc}{RawAlias}{data} \begin{funcdesc}{RawAlias}{data}
Create an \pytype{Alias} object given the raw data for the \C{} Create an \class{Alias} object given the raw data for the \C{}
structure for the alias as a string. This is mainly useful if you structure for the alias as a string. This is mainly useful if you
have obtained an \pytype{FSSpec} structure over a network. have obtained an \class{FSSpec} structure over a network.
\end{funcdesc} \end{funcdesc}
\begin{funcdesc}{FInfo}{} \begin{funcdesc}{FInfo}{}
Create a zero-filled \pytype{FInfo} object. Create a zero-filled \class{FInfo} object.
\end{funcdesc} \end{funcdesc}
\begin{funcdesc}{ResolveAliasFile}{file} \begin{funcdesc}{ResolveAliasFile}{file}
Resolve an alias file. Returns a 3-tuple \code{(\var{fsspec}, Resolve an alias file. Returns a 3-tuple \code{(\var{fsspec},
\var{isfolder}, \var{aliased})} where \var{fsspec} is the resulting \var{isfolder}, \var{aliased})} where \var{fsspec} is the resulting
\pytype{FSSpec} object, \var{isfolder} is true if \var{fsspec} points \class{FSSpec} object, \var{isfolder} is true if \var{fsspec} points
to a folder and \var{aliased} is true if the file was an alias in the to a folder and \var{aliased} is true if the file was an alias in the
first place (otherwise the \pytype{FSSpec} object for the file itself first place (otherwise the \class{FSSpec} object for the file itself
is returned). is returned).
\end{funcdesc} \end{funcdesc}
\begin{funcdesc}{StandardGetFile}{\optional{type, \moreargs}} \begin{funcdesc}{StandardGetFile}{\optional{type, \moreargs}}
Present the user with a standard ``open input file'' Present the user with a standard ``open input file''
dialog. Optionally, you can pass up to four 4-character file types to limit dialog. Optionally, you can pass up to four 4-character file types to limit
the files the user can choose from. The function returns an \pytype{FSSpec} the files the user can choose from. The function returns an \class{FSSpec}
object and a flag indicating that the user completed the dialog object and a flag indicating that the user completed the dialog
without cancelling. without cancelling.
\end{funcdesc} \end{funcdesc}
...@@ -75,7 +76,7 @@ prompt which will be displayed at the top of the dialog. ...@@ -75,7 +76,7 @@ prompt which will be displayed at the top of the dialog.
Present the user with a standard ``open output file'' Present the user with a standard ``open output file''
dialog. \var{prompt} is the prompt string, and the optional dialog. \var{prompt} is the prompt string, and the optional
\var{default} argument initializes the output file name. The function \var{default} argument initializes the output file name. The function
returns an \pytype{FSSpec} object and a flag indicating that the user returns an \class{FSSpec} object and a flag indicating that the user
completed the dialog without cancelling. completed the dialog without cancelling.
\end{funcdesc} \end{funcdesc}
...@@ -83,7 +84,7 @@ completed the dialog without cancelling. ...@@ -83,7 +84,7 @@ completed the dialog without cancelling.
Present the user with a non-standard ``select a directory'' dialog. You Present the user with a non-standard ``select a directory'' dialog. You
have to first open the directory before clicking on the ``select current have to first open the directory before clicking on the ``select current
directory'' button. \var{prompt} is the prompt string which will be directory'' button. \var{prompt} is the prompt string which will be
displayed at the top of the dialog. Return an \pytype{FSSpec} object and displayed at the top of the dialog. Return an \class{FSSpec} object and
a success-indicator. a success-indicator.
\end{funcdesc} \end{funcdesc}
...@@ -105,20 +106,21 @@ the trash or the Preferences folder. \var{where} is the disk to ...@@ -105,20 +106,21 @@ the trash or the Preferences folder. \var{where} is the disk to
search, \var{which} is the 4-character string specifying which folder to search, \var{which} is the 4-character string specifying which folder to
locate. Setting \var{create} causes the folder to be created if it locate. Setting \var{create} causes the folder to be created if it
does not exist. Returns a \code{(\var{vrefnum}, \var{dirid})} tuple. does not exist. Returns a \code{(\var{vrefnum}, \var{dirid})} tuple.
The constants for \var{where} and \var{which} can be obtained from the
standard module \var{Carbon.Folders}.
\end{funcdesc} \end{funcdesc}
\begin{funcdesc}{NewAliasMinimalFromFullPath}{pathname} \begin{funcdesc}{NewAliasMinimalFromFullPath}{pathname}
Return a minimal \pytype{alias} object that points to the given file, which Return a minimal \class{alias} object that points to the given file, which
must be specified as a full pathname. This is the only way to create an must be specified as a full pathname. This is the only way to create an
\pytype{Alias} pointing to a non-existing file. \class{Alias} pointing to a non-existing file.
The constants for \var{where} and \var{which} can be obtained from the
standard module \var{MACFS}.
\end{funcdesc} \end{funcdesc}
\begin{funcdesc}{FindApplication}{creator} \begin{funcdesc}{FindApplication}{creator}
Locate the application with 4-character creator code \var{creator}. The Locate the application with 4-character creator code \var{creator}. The
function returns an \pytype{FSSpec} object pointing to the application. function returns an \class{FSSpec} object pointing to the application.
\end{funcdesc} \end{funcdesc}
...@@ -130,13 +132,13 @@ to other applications, for instance. ...@@ -130,13 +132,13 @@ to other applications, for instance.
\end{memberdesc} \end{memberdesc}
\begin{methoddesc}[FSSpec]{as_pathname}{} \begin{methoddesc}[FSSpec]{as_pathname}{}
Return the full pathname of the file described by the \pytype{FSSpec} Return the full pathname of the file described by the \class{FSSpec}
object. object.
\end{methoddesc} \end{methoddesc}
\begin{methoddesc}[FSSpec]{as_tuple}{} \begin{methoddesc}[FSSpec]{as_tuple}{}
Return the \code{(\var{wdRefNum}, \var{parID}, \var{name})} tuple of Return the \code{(\var{wdRefNum}, \var{parID}, \var{name})} tuple of
the file described by the \pytype{FSSpec} object. the file described by the \class{FSSpec} object.
\end{methoddesc} \end{methoddesc}
\begin{methoddesc}[FSSpec]{NewAlias}{\optional{file}} \begin{methoddesc}[FSSpec]{NewAlias}{\optional{file}}
...@@ -158,12 +160,12 @@ Set the 4-character creator and type of the file. ...@@ -158,12 +160,12 @@ Set the 4-character creator and type of the file.
\end{methoddesc} \end{methoddesc}
\begin{methoddesc}[FSSpec]{GetFInfo}{} \begin{methoddesc}[FSSpec]{GetFInfo}{}
Return a \pytype{FInfo} object describing the finder info for the file. Return a \class{FInfo} object describing the finder info for the file.
\end{methoddesc} \end{methoddesc}
\begin{methoddesc}[FSSpec]{SetFInfo}{finfo} \begin{methoddesc}[FSSpec]{SetFInfo}{finfo}
Set the finder info for the file to the values given as \var{finfo} Set the finder info for the file to the values given as \var{finfo}
(an \pytype{FInfo} object). (an \class{FInfo} object).
\end{methoddesc} \end{methoddesc}
\begin{methoddesc}[FSSpec]{GetDates}{} \begin{methoddesc}[FSSpec]{GetDates}{}
...@@ -188,7 +190,7 @@ or transmitting to other programs. ...@@ -188,7 +190,7 @@ or transmitting to other programs.
\begin{methoddesc}[Alias]{Resolve}{\optional{file}} \begin{methoddesc}[Alias]{Resolve}{\optional{file}}
Resolve the alias. If the alias was created as a relative alias you Resolve the alias. If the alias was created as a relative alias you
should pass the file relative to which it is. Return the FSSpec for should pass the file relative to which it is. Return the FSSpec for
the file pointed to and a flag indicating whether the \pytype{Alias} object the file pointed to and a flag indicating whether the \class{Alias} object
itself was modified during the search process. If the file does itself was modified during the search process. If the file does
not exist but the path leading up to it does exist a valid fsspec not exist but the path leading up to it does exist a valid fsspec
is returned. is returned.
...@@ -204,10 +206,10 @@ present a relative alias will be created. ...@@ -204,10 +206,10 @@ present a relative alias will be created.
\end{methoddesc} \end{methoddesc}
Note that it is currently not possible to directly manipulate a Note that it is currently not possible to directly manipulate a
resource as an \pytype{Alias} object. Hence, after calling resource as an \class{Alias} object. Hence, after calling
\method{Update()} or after \method{Resolve()} indicates that the alias \method{Update()} or after \method{Resolve()} indicates that the alias
has changed the Python program is responsible for getting the has changed the Python program is responsible for getting the
\member{data} value from the \pytype{Alias} object and modifying the \member{data} value from the \class{Alias} object and modifying the
resource. resource.
......
...@@ -40,6 +40,8 @@ continues (by passing the event to the console window package, for instance). ...@@ -40,6 +40,8 @@ continues (by passing the event to the console window package, for instance).
Call \function{SetEventHandler()} without a parameter to clear the Call \function{SetEventHandler()} without a parameter to clear the
event handler. Setting an event handler while one is already set is an event handler. Setting an event handler while one is already set is an
error. error.
Availability: MacPython-OS9.
\end{funcdesc} \end{funcdesc}
\begin{funcdesc}{SchedParams}{\optional{doint\optional{, evtmask\optional{, \begin{funcdesc}{SchedParams}{\optional{doint\optional{, evtmask\optional{,
...@@ -63,6 +65,8 @@ background. ...@@ -63,6 +65,8 @@ background.
The most common use case is to call \code{SchedParams(0, 0)} to completely disable The most common use case is to call \code{SchedParams(0, 0)} to completely disable
event handling in the interpreter mainloop. event handling in the interpreter mainloop.
Availability: MacPython-OS9.
\end{funcdesc} \end{funcdesc}
\begin{funcdesc}{HandleEvent}{ev} \begin{funcdesc}{HandleEvent}{ev}
...@@ -74,6 +78,8 @@ window-switching capability. ...@@ -74,6 +78,8 @@ window-switching capability.
If you attempt to call this function from an event handler set through If you attempt to call this function from an event handler set through
\function{SetEventHandler()} you will get an exception. \function{SetEventHandler()} you will get an exception.
Availability: MacPython-OS9.
\end{funcdesc} \end{funcdesc}
\begin{funcdesc}{GetErrorString}{errno} \begin{funcdesc}{GetErrorString}{errno}
...@@ -87,12 +93,15 @@ on-screen, with the contents of the DLOG resource specified by ...@@ -87,12 +93,15 @@ on-screen, with the contents of the DLOG resource specified by
screen. This function is useful if you want an applet to post a splash screen screen. This function is useful if you want an applet to post a splash screen
early in initialization without first having to load numerous early in initialization without first having to load numerous
extension modules. extension modules.
Availability: MacPython-OS9.
\end{funcdesc} \end{funcdesc}
\begin{funcdesc}{DebugStr}{message \optional{, object}} \begin{funcdesc}{DebugStr}{message \optional{, object}}
Drop to the low-level debugger with message \var{message}. The On Mac OS 9, drop to the low-level debugger with message \var{message}. The
optional \var{object} argument is not used, but can easily be optional \var{object} argument is not used, but can easily be
inspected from the debugger. inspected from the debugger. On Mac OS X the string is simply printed
to stderr.
Note that you should use this function with extreme care: if no Note that you should use this function with extreme care: if no
low-level debugger like MacsBug is installed this call will crash your low-level debugger like MacsBug is installed this call will crash your
...@@ -100,6 +109,27 @@ system. It is intended mainly for developers of Python extension ...@@ -100,6 +109,27 @@ system. It is intended mainly for developers of Python extension
modules. modules.
\end{funcdesc} \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}} \begin{funcdesc}{openrf}{name \optional{, mode}}
Open the resource fork of a file. Arguments are the same as for the 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 built-in function \function{open()}. The object returned has file-like
......
...@@ -7,14 +7,14 @@ ...@@ -7,14 +7,14 @@
This module contains some convenience routines for file-manipulation This module contains some convenience routines for file-manipulation
on the Macintosh. on the Macintosh. All file parameters can be specified as
pathnames, \class{FSRef} or \class{FSSpec} objects.
The \module{macostools} module defines the following functions: The \module{macostools} module defines the following functions:
\begin{funcdesc}{copy}{src, dst\optional{, createpath\optional{, copytimes}}} \begin{funcdesc}{copy}{src, dst\optional{, createpath\optional{, copytimes}}}
Copy file \var{src} to \var{dst}. The files can be specified as Copy file \var{src} to \var{dst}. If \var{createpath} is non-zero
pathnames or \pytype{FSSpec} objects. If \var{createpath} is non-zero
the folders leading to \var{dst} are created if necessary. the folders leading to \var{dst} are created if necessary.
The method copies data and The method copies data and
resource fork and some finder information (creator, type, flags) and resource fork and some finder information (creator, type, flags) and
...@@ -29,8 +29,7 @@ pathnames. ...@@ -29,8 +29,7 @@ pathnames.
\end{funcdesc} \end{funcdesc}
\begin{funcdesc}{mkalias}{src, dst} \begin{funcdesc}{mkalias}{src, dst}
Create a finder alias \var{dst} pointing to \var{src}. Both may be Create a finder alias \var{dst} pointing to \var{src}.
specified as pathnames or \pytype{FSSpec} objects.
\end{funcdesc} \end{funcdesc}
\begin{funcdesc}{touched}{dst} \begin{funcdesc}{touched}{dst}
...@@ -62,7 +61,7 @@ functionality provided by the finder. They are implemented as wrappers ...@@ -62,7 +61,7 @@ functionality provided by the finder. They are implemented as wrappers
around the AppleEvent\index{AppleEvents} interface to the finder. around the AppleEvent\index{AppleEvents} interface to the finder.
All file and folder parameters can be specified either as full All file and folder parameters can be specified either as full
pathnames or as \pytype{FSSpec} objects. pathnames, or as \class{FSRef} or \class{FSSpec} objects.
The \module{findertools} module defines the following functions: The \module{findertools} module defines the following functions:
...@@ -74,20 +73,19 @@ in the correct application. ...@@ -74,20 +73,19 @@ in the correct application.
\end{funcdesc} \end{funcdesc}
\begin{funcdesc}{Print}{file} \begin{funcdesc}{Print}{file}
Tell the finder to print a file (again specified by full pathname or Tell the finder to print a file. The behaviour is identical to selecting the file and using
\pytype{FSSpec}). The behaviour is identical to selecting the file and using
the print command in the finder's file menu. the print command in the finder's file menu.
\end{funcdesc} \end{funcdesc}
\begin{funcdesc}{copy}{file, destdir} \begin{funcdesc}{copy}{file, destdir}
Tell the finder to copy a file or folder \var{file} to folder Tell the finder to copy a file or folder \var{file} to folder
\var{destdir}. The function returns an \pytype{Alias} object pointing to \var{destdir}. The function returns an \class{Alias} object pointing to
the new file. the new file.
\end{funcdesc} \end{funcdesc}
\begin{funcdesc}{move}{file, destdir} \begin{funcdesc}{move}{file, destdir}
Tell the finder to move a file or folder \var{file} to folder Tell the finder to move a file or folder \var{file} to folder
\var{destdir}. The function returns an \pytype{Alias} object pointing to \var{destdir}. The function returns an \class{Alias} object pointing to
the new file. the new file.
\end{funcdesc} \end{funcdesc}
......
\section{\module{macspeech} ---
Interface to the Macintosh Speech Manager}
\declaremodule{builtin}{macspeech}
\platform{Mac}
\modulesynopsis{Interface to the Macintosh Speech Manager.}
This module provides an interface to the Macintosh Speech Manager,
\index{Macintosh Speech Manager}
\index{Speech Manager, Macintosh}
allowing you to let the Macintosh utter phrases. You need a version of
the Speech Manager extension (version 1 and 2 have been tested) in
your \file{Extensions} folder for this to work. The module does not
provide full access to all features of the Speech Manager.
This module is only available on MacOS9 and earlier in classic PPC
MacPython.
\begin{funcdesc}{Available}{}
Test availability of the Speech Manager extension (and, on the
PowerPC, the Speech Manager shared library). Return \code{0} or
\code{1}.
\end{funcdesc}
\begin{funcdesc}{Version}{}
Return the (integer) version number of the Speech Manager.
\end{funcdesc}
\begin{funcdesc}{SpeakString}{str}
Utter the string \var{str} using the default voice,
asynchronously. This aborts any speech that may still be active from
prior \function{SpeakString()} invocations.
\end{funcdesc}
\begin{funcdesc}{Busy}{}
Return the number of speech channels busy, system-wide.
\end{funcdesc}
\begin{funcdesc}{CountVoices}{}
Return the number of different voices available.
\end{funcdesc}
\begin{funcdesc}{GetIndVoice}{num}
Return a \pytype{Voice} object for voice number \var{num}.
\end{funcdesc}
\subsection{Voice Objects}
\label{voice-objects}
Voice objects contain the description of a voice. It is currently not
yet possible to access the parameters of a voice.
\setindexsubitem{(voice object method)}
\begin{methoddesc}[Voice]{GetGender}{}
Return the gender of the voice: \code{0} for male, \code{1} for female
and \code{-1} for neuter.
\end{methoddesc}
\begin{methoddesc}[Voice]{NewChannel}{}
Return a new Speech Channel object using this voice.
\end{methoddesc}
\subsection{Speech Channel Objects}
\label{speech-channel-objects}
A Speech Channel object allows you to speak strings with slightly more
control than \function{SpeakString()}, and allows you to use multiple
speakers at the same time. Please note that channel pitch and rate are
interrelated in some way, so that to make your Macintosh sing you will
have to adjust both.
\begin{methoddesc}[Speech Channel]{SpeakText}{str}
Start uttering the given string.
\end{methoddesc}
\begin{methoddesc}[Speech Channel]{Stop}{}
Stop babbling.
\end{methoddesc}
\begin{methoddesc}[Speech Channel]{GetPitch}{}
Return the current pitch of the channel, as a floating-point number.
\end{methoddesc}
\begin{methoddesc}[Speech Channel]{SetPitch}{pitch}
Set the pitch of the channel.
\end{methoddesc}
\begin{methoddesc}[Speech Channel]{GetRate}{}
Get the speech rate (utterances per minute) of the channel as a
floating point number.
\end{methoddesc}
\begin{methoddesc}[Speech Channel]{SetRate}{rate}
Set the speech rate of the channel.
\end{methoddesc}
...@@ -110,7 +110,85 @@ off. ...@@ -110,7 +110,85 @@ off.
\versionadded{2.0} \versionadded{2.0}
\end{funcdesc} \end{funcdesc}
\begin{funcdesc}{AskFileForOpen}{
\optional{message}
\optional{, typeList}
\optional{, defaultLocation}
\optional{, defaultOptionFlags}
\optional{, location}
\optional{, clientName}
\optional{, windowTitle}
\optional{, actionButtonLabel}
\optional{, cancelButtonLabel}
\optional{, preferenceKey}
\optional{, popupExtension}
\optional{, eventProc}
\optional{, previewProc}
\optional{, filterProc}
\optional{, wanted}
}
Post a dialog asking the user for a file to open, and return the file
selected or \var{None} if the user cancelled.
\var{message} is a text message to display,
\var{typeList} is a list of 4-char filetypes allowable,
\var{defaultLocation} is the pathname, FSSpec or FSRef of the folder
to show initially,
\var{location} is the \code{(x, y)} position on the screen where the
dialog is shown,
\var{actionButtonLabel} is a string to show in stead of ``Open'' in the
OK button,
\var{cancelButtonLabel} is a string to show in stead of ``Cancel'' in the
cancel button,
\var{wanted} is the type of value wanted as a return: \class{string},
\class{unicode}, \class{FSSpec}, \class{FSRef} and subtypes thereof are
acceptable.
For a description of the other arguments please see the Apple Navigation
Services documentation and the EasyDialogs sourcecode.
\end{funcdesc}
\begin{funcdesc}{AskFileForSave}{
\optional{message}
\optional{, savedFileName}
\optional{, defaultLocation}
\optional{, defaultOptionFlags}
\optional{, location}
\optional{, clientName}
\optional{, windowTitle}
\optional{, actionButtonLabel}
\optional{, cancelButtonLabel}
\optional{, preferenceKey}
\optional{, popupExtension}
\optional{, fileType}
\optional{, fileCreator}
\optional{, eventProc}
\optional{, wanted}
}
Post a dialog asking the user for a file to save to, and return the file
selected or \var{None} if the user cancelled. \var{savedFileName} is the
default for the file name to save to (the return value). See AskFileForOpen
for a description of the other arguments.
\end{funcdesc}
\begin{funcdesc}{AskFolder}{
\optional{message}
\optional{, defaultLocation}
\optional{, defaultOptionFlags}
\optional{, location}
\optional{, clientName}
\optional{, windowTitle}
\optional{, actionButtonLabel}
\optional{, cancelButtonLabel}
\optional{, preferenceKey}
\optional{, popupExtension}
\optional{, eventProc}
\optional{, filterProc}
\optional{, wanted}
}
Post a dialog asking the user to select a folder, and return the folder
selected or \var{None} if the user cancelled. See AskFileForOpen
for a description of the arguments.
\end{funcdesc}
\subsection{ProgressBar Objects \label{progressbar-objects}} \subsection{ProgressBar Objects \label{progressbar-objects}}
......
...@@ -51,12 +51,10 @@ documented here: ...@@ -51,12 +51,10 @@ documented here:
\localmoduletable \localmoduletable
\input{libmac} \input{libmac}
\input{libctb}
\input{libmacfs} \input{libmacfs}
\input{libmacic} \input{libmacic}
\input{libmacos} \input{libmacos}
\input{libmacostools} \input{libmacostools}
\input{libmacspeech}
\input{libmacui} \input{libmacui}
\input{libframework} \input{libframework}
\input{libminiae} \input{libminiae}
......
...@@ -13,8 +13,9 @@ and return values, and for additional description you are referred to ...@@ -13,8 +13,9 @@ and return values, and for additional description you are referred to
\citetitle[http://developer.apple.com/techpubs/macos8/mac8.html]{Inside \citetitle[http://developer.apple.com/techpubs/macos8/mac8.html]{Inside
Macintosh} or similar works. Macintosh} or similar works.
These modules all live in a package called \module{Carbon}. Despite the These modules all live in a package called \module{Carbon}. Despite that name
name Carbon they are also available under classic PPC MacPython. they are not all part of the Carbon framework: CF is really in the CoreFoundation
framework and Qt is in the QuickTime framework.
The normal use pattern is The normal use pattern is
\begin{verbatim} \begin{verbatim}
...@@ -36,6 +37,11 @@ in touch with \email{python-docs@python.org}. ...@@ -36,6 +37,11 @@ in touch with \email{python-docs@python.org}.
\platform{Mac} \platform{Mac}
\modulesynopsis{Interface to the Apple Events toolbox.} \modulesynopsis{Interface to the Apple Events toolbox.}
\section{\module{Carbon.AH} --- Apple Help}
\declaremodule{standard}{Carbon.AH}
\platform{Mac}
\modulesynopsis{Interface to the Apple Help manager.}
\section{\module{Carbon.App} --- Appearance Manager} \section{\module{Carbon.App} --- Appearance Manager}
\declaremodule{standard}{Carbon.App} \declaremodule{standard}{Carbon.App}
...@@ -48,11 +54,21 @@ in touch with \email{python-docs@python.org}. ...@@ -48,11 +54,21 @@ in touch with \email{python-docs@python.org}.
\platform{Mac} \platform{Mac}
\modulesynopsis{Interface to the Core Foundation.} \modulesynopsis{Interface to the Core Foundation.}
This module is only available under Carbon MacPython. The The
\code{CFBase}, \code{CFArray}, \code{CFData}, \code{CFDictionary}, \code{CFBase}, \code{CFArray}, \code{CFData}, \code{CFDictionary},
\code{CFString} and \code{CFURL} objects are supported, some \code{CFString} and \code{CFURL} objects are supported, some
only partially. only partially.
\section{\module{Carbon.CG} --- Core Graphics}
\declaremodule{standard}{Carbon.CG}
\platform{Mac}
\modulesynopsis{Interface to the Component Manager.}
\section{\module{Carbon.CarbonEvt} --- Carbon Event Manager}
\declaremodule{standard}{Carbon.CaronEvt}
\platform{Mac}
\modulesynopsis{Interface to the Carbon Event Manager.}
\section{\module{Carbon.Cm} --- Component Manager} \section{\module{Carbon.Cm} --- Component Manager}
\declaremodule{standard}{Carbon.Cm} \declaremodule{standard}{Carbon.Cm}
\platform{Mac} \platform{Mac}
...@@ -74,7 +90,7 @@ only partially. ...@@ -74,7 +90,7 @@ only partially.
\section{\module{Carbon.Evt} --- Event Manager} \section{\module{Carbon.Evt} --- Event Manager}
\declaremodule{standard}{Carbon.Evt} \declaremodule{standard}{Carbon.Evt}
\platform{Mac} \platform{Mac}
\modulesynopsis{Interface to the Event Manager.} \modulesynopsis{Interface to the classic Event Manager.}
\section{\module{Carbon.Fm} --- Font Manager} \section{\module{Carbon.Fm} --- Font Manager}
...@@ -82,14 +98,16 @@ only partially. ...@@ -82,14 +98,16 @@ only partially.
\platform{Mac} \platform{Mac}
\modulesynopsis{Interface to the Font Manager.} \modulesynopsis{Interface to the Font Manager.}
\section{\module{Carbon.Folder} --- Folder Manager}
\declaremodule{standard}{Carbon.Folder}
\platform{Mac}
\modulesynopsis{Interface to the Folder Manager.}
\section{\module{Carbon.Help} --- Help Manager} \section{\module{Carbon.Help} --- Help Manager}
\declaremodule{standard}{Carbon.Help} \declaremodule{standard}{Carbon.Help}
\platform{Mac} \platform{Mac}
\modulesynopsis{Interface to the Balloon Help Manager.} \modulesynopsis{Interface to the Carbon Help Manager.}
This module is only available under MacOS9 and earlier in
classic PPC MacPython.
\section{\module{Carbon.List} --- List Manager} \section{\module{Carbon.List} --- List Manager}
\declaremodule{standard}{Carbon.List} \declaremodule{standard}{Carbon.List}
...@@ -132,9 +150,10 @@ classic PPC MacPython. ...@@ -132,9 +150,10 @@ classic PPC MacPython.
\platform{Mac} \platform{Mac}
\modulesynopsis{Interface to the Resource Manager and Handles.} \modulesynopsis{Interface to the Resource Manager and Handles.}
\section{\module{Carbon.Scrap} --- Scrap Manager}
\input{libscrap} \declaremodule{standard}{Carbon.Scrap}
\platform{Mac}
\modulesynopsis{Interface to the Carbon Scrap Manager.}
\section{\module{Carbon.Snd} --- Sound Manager} \section{\module{Carbon.Snd} --- Sound Manager}
\declaremodule{standard}{Carbon.Snd} \declaremodule{standard}{Carbon.Snd}
......
...@@ -63,20 +63,6 @@ for new files. ...@@ -63,20 +63,6 @@ for new files.
codes. codes.
\section{\module{macfsn} --- NavServices calls}
\declaremodule{standard}{macfsn}
\platform{Mac}
\modulesynopsis{NavServices versions of StandardFile calls.}
\module{macfsn} contains wrapper functions that have the same API as
the \refmodule{macfs} StandardFile calls, but are implemented with
Navigation Services through the
\refmodule{Nav}\refbimodindex{Nav} module. Importing it will replace
the methods in \refmodule{macfs}\refbimodindex{macfs} with these, if
Navigation Services is available on your machine.
\section{\module{macresource} --- Locate script resources} \section{\module{macresource} --- Locate script resources}
\declaremodule{standard}{macresource} \declaremodule{standard}{macresource}
\platform{Mac} \platform{Mac}
...@@ -93,15 +79,6 @@ script is run under MacPython, as a MacPython applet or under OSX Python. ...@@ -93,15 +79,6 @@ script is run under MacPython, as a MacPython applet or under OSX Python.
A low-level interface to Navigation Services. A low-level interface to Navigation Services.
\section{\module{mactty} --- Serial line connections}
\declaremodule{standard}{mactty}
\platform{Mac}
\modulesynopsis{Easy access serial to line connections.}
This module is only available under Mac OS 9 or earlier in classic PPC
MacPython.
\section{\module{mkcwproject} --- Create CodeWarrior projects} \section{\module{mkcwproject} --- Create CodeWarrior projects}
\declaremodule{standard}{mkcwproject} \declaremodule{standard}{mkcwproject}
\platform{Mac} \platform{Mac}
......
\chapter{Using Python on the Macintosh \label{using}} \chapter{Using Python on a Mac OS 9 Macintosh \label{using}}
\sectionauthor{Bob Savage}{bobsavage@mac.com} \sectionauthor{Bob Savage}{bobsavage@mac.com}
Using Python on the Macintosh can seem like something completely Using Python on a Mac OS 9 Macintosh can seem like something completely
different than using it on a \UNIX-like or Windows system. Most of the different than using it on a \UNIX-like or Windows system. Most of the
Python documentation, both the ``official'' documentation and Python documentation, both the ``official'' documentation and
published books, describe only how Python is used on these systems, published books, describe only how Python is used on these systems,
causing confusion for the new user of MacPython. This chapter gives a causing confusion for the new user of MacPython-OS9. This chapter gives a
brief introduction to the specifics of using Python on a Macintosh. brief introduction to the specifics of using Python on a Macintosh.
Note that this chapter is mainly relevant to Mac OS 9: MacPython-OSX
is a superset of a normal unix Python. While MacPython-OS9 runs fine
on Mac OS X it is a better choice to use MacPython-OSX there.
\section{Getting and Installing MacPython \label{getting}} The section on the IDE (see Section \ref{IDE}) is relevant to MacPython-OSX
too.
\section{Getting and Installing MacPython-OS9 \label{getting}}
The most recent release version as well as possible newer experimental The most recent release version as well as possible newer experimental
versions are best found at the MacPython page maintained by Jack versions are best found at the MacPython page maintained by Jack
...@@ -59,16 +65,6 @@ immediately upon completion, but your script assumes that if it prints ...@@ -59,16 +65,6 @@ immediately upon completion, but your script assumes that if it prints
something that text will stick around for a while. To fix this, see something that text will stick around for a while. To fix this, see
section \ref{defaults}. section \ref{defaults}.
\item
After dropping the script onto the \program{PythonInterpreter}, a
window appeared which said: ``File contains \code{\e r} characters
(incorrect line endings?)''. That script probably originated on a
\UNIX{} or Windows machine. You will need to change the line endings
to the standard Mac usage. One way to do this is to open the file in
\program{BBedit}
(\url{http://www.barebones.com/products/bbedit_lite.html}) which can
easily change the line endings between Mac, DOS, and \UNIX\ styles.
\item \item
When you waved the script icon over the \program{PythonInterpreter}, When you waved the script icon over the \program{PythonInterpreter},
the \program{PythonInterpreter} icon did not hilight. Most likely the the \program{PythonInterpreter} icon did not hilight. Most likely the
...@@ -118,7 +114,7 @@ Navigate into the folder of files you want to fix, and press the ...@@ -118,7 +114,7 @@ Navigate into the folder of files you want to fix, and press the
\section{Simulating command line arguments \section{Simulating command line arguments
\label{argv}} \label{argv}}
There are two ways to simulate command-line arguments with MacPython. There are two ways to simulate command-line arguments with MacPython-OS9.
\begin{enumerate} \begin{enumerate}
\item via Interpreter options \item via Interpreter options
...@@ -362,13 +358,3 @@ want to examine the objects that were created during your script. ...@@ -362,13 +358,3 @@ want to examine the objects that were created during your script.
%\section{CGI on the Mac with Python \label{CGI}} %\section{CGI on the Mac with Python \label{CGI}}
%**NEED INFO HERE** %**NEED INFO HERE**
\section{Mac OS X}
At the time of this writing Mac OS X had just been released as a
Public Beta. Efforts are under way to bring MacPython to Mac OS X. The
MacPython release \version{1.5.2c1} runs quite well within the
``Classic'' environment. A ``Carbon'' port of the MacPython code is
being prepared for release, and several people have made a command
line version available to the ``Darwin'' layer (which is accessible
via Terminal.app).
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment