| \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 objects |
| of 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 Python |
| value x. If \var{forcetype} is provided it specifies the descriptor |
| type of the result. Otherwise, a default mapping of Python types to |
| Apple 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 returns |
| the 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} |