cinap_lenrekadd hg and python4bb9e2215 years agoHistory
82 lines · 3.5 KB · TeX
RawDownload
\section{\module{aepack} ---         Conversion between Python variables and AppleEvent data containers} \declaremodule{standard}{aepack}  \platform{Mac}%\moduleauthor{Jack Jansen?}{email}\modulesynopsis{Conversion between Python variables and AppleEvent                data containers.}\sectionauthor{Vincent Marchetti}{vincem@en.com}  The \module{aepack} module defines functions for converting (packing)Python variables to AppleEvent descriptors and back (unpacking).Within Python the AppleEvent descriptor is handled by Python objectsof built-in type \class{AEDesc}, defined in module \refmodule{Carbon.AE}. The \module{aepack} module defines the following functions:  \begin{funcdesc}{pack}{x\optional{, forcetype}}Returns an \class{AEDesc} object  containing a conversion of Pythonvalue x. If \var{forcetype} is provided it specifies the descriptortype of the result. Otherwise, a default mapping of Python types toApple Event descriptor types is used, as follows: \begin{tableii}{l|l}{textrm}{Python type}{descriptor type}  \lineii{\class{FSSpec}}{typeFSS}  \lineii{\class{FSRef}}{typeFSRef}  \lineii{\class{Alias}}{typeAlias}  \lineii{integer}{typeLong (32 bit integer)}  \lineii{float}{typeFloat (64 bit floating point)}  \lineii{string}{typeText}  \lineii{unicode}{typeUnicodeText}  \lineii{list}{typeAEList}  \lineii{dictionary}{typeAERecord}  \lineii{instance}{\emph{see below}}\end{tableii}   If \var{x} is a Python instance then this function attempts to call an\method{__aepack__()} method.  This method should return an\class{AEDesc} object. If the conversion \var{x} is not defined above, this function returnsthe Python string representation of a value (the repr() function)encoded as a text descriptor.\end{funcdesc} \begin{funcdesc}{unpack}{x\optional{, formodulename}}  \var{x} must be an object of type \class{AEDesc}. This function  returns a Python object representation of the data in the Apple  Event descriptor \var{x}. Simple AppleEvent data types (integer,  text, float) are returned as their obvious Python counterparts.  Apple Event lists are returned as Python lists, and the list  elements are recursively unpacked.  Object references  (ex. \code{line 3 of document 1}) are returned as instances of  \class{aetypes.ObjectSpecifier}, unless \code{formodulename}  is specified.  AppleEvent descriptors with  descriptor type typeFSS are returned as \class{FSSpec}  objects.  AppleEvent record descriptors are returned as Python  dictionaries, with 4-character string keys and elements recursively  unpacked.    The optional \code{formodulename} argument is used by the stub packages  generated by \module{gensuitemodule}, and ensures that the OSA classes  for object specifiers are looked up in the correct module. This ensures  that if, say, the Finder returns an object specifier for a window  you get an instance of \code{Finder.Window} and not a generic  \code{aetypes.Window}. The former knows about all the properties  and elements a window has in the Finder, while the latter knows  no such things.\end{funcdesc}  \begin{seealso}  \seemodule{Carbon.AE}{Built-in access to Apple Event Manager routines.}  \seemodule{aetypes}{Python definitions of codes for Apple Event                      descriptor types.}  \seetitle[http://developer.apple.com/techpubs/mac/IAC/IAC-2.html]{            Inside Macintosh: Interapplication            Communication}{Information about inter-process            communications on the Macintosh.}\end{seealso}