cinap_lenrekadd hg and python4bb9e2215 years agoHistory
83 lines · 3.5 KB · TeX
RawDownload
\section{\module{aetools} ---         OSA client support} \declaremodule{standard}{aetools}  \platform{Mac}%\moduleauthor{Jack Jansen?}{email}\modulesynopsis{Basic support for sending Apple Events}\sectionauthor{Jack Jansen}{Jack.Jansen@cwi.nl}  The \module{aetools} module contains the basic functionalityon which Python AppleScript client support is built. It alsoimports and re-exports the core functionality of the\module{aetypes} and \module{aepack} modules. The stub packagesgenerated by \module{gensuitemodule} import the relevantportions of \module{aetools}, so usually you do not need toimport it yourself. The exception to this is when youcannot use a generated suite package and need lower-levelaccess to scripting. The \module{aetools} module itself uses the AppleEvent supportprovided by the \module{Carbon.AE} module. This has one drawback:you need access to the window manager, see section \ref{osx-gui-scripts}for details. This restriction may be lifted in future releases.  The \module{aetools} module defines the following functions: \begin{funcdesc}{packevent}{ae, parameters, attributes}Stores parameters and attributes in a pre-created \code{Carbon.AE.AEDesc}object. \code{parameters} and \code{attributes} are dictionaries mapping 4-character OSA parameter keys to Python objects. Theobjects are packed using \code{aepack.pack()}.\end{funcdesc} \begin{funcdesc}{unpackevent}{ae\optional{, formodulename}}Recursively unpacks a \code{Carbon.AE.AEDesc} event to Python objects.The function returns the parameter dictionary and the attribute dictionary.The \code{formodulename} argument is used by generated stub packages tocontrol where AppleScript classes are looked up.\end{funcdesc} \begin{funcdesc}{keysubst}{arguments, keydict}Converts a Python keyword argument dictionary \code{arguments} tothe format required by \code{packevent} by replacing the keys,which are Python identifiers, by the four-character OSA keys accordingto the mapping specified in \code{keydict}. Used by the generated suitepackages.\end{funcdesc} \begin{funcdesc}{enumsubst}{arguments, key, edict}If the \code{arguments} dictionary contains an entry for \code{key}convert the value for that entry according to dictionary \code{edict}.This converts human-readable Python enumeration names to the OSA 4-charactercodes.Used by the generated suitepackages.\end{funcdesc} The \module{aetools} module defines the following class: \begin{classdesc}{TalkTo}{\optional{signature=None, start=0, timeout=0}} Base class for the proxy used to talk to an application. \code{signature}overrides the class attribute \code{_signature} (which is usually set by subclasses)and is the 4-char creator code defining the application to talk to.\code{start} can be set to true to enable running the application onclass instantiation. \code{timeout} can be specified to change thedefault timeout used while waiting for an AppleEvent reply.\end{classdesc} \begin{methoddesc}{_start}{}Test whether the application is running, and attempt to start it if not.\end{methoddesc} \begin{methoddesc}{send}{code, subcode\optional{, parameters, attributes}}Create the AppleEvent \code{Carbon.AE.AEDesc} for the verb withthe OSA designation \code{code, subcode} (which are the usual 4-characterstrings), pack the \code{parameters} and \code{attributes} into it, send itto the target application, wait for the reply, unpack the reply with\code{unpackevent} and return the reply appleevent, the unpacked return valuesas a dictionary and the return attributes.\end{methoddesc}