Georg Brandl | 8ec7f65 | 2007-08-15 14:28:01 +0000 | [diff] [blame] | 1 | |
| 2 | :mod:`aepack` --- Conversion between Python variables and AppleEvent data containers |
| 3 | ==================================================================================== |
| 4 | |
| 5 | .. module:: aepack |
| 6 | :platform: Mac |
| 7 | :synopsis: Conversion between Python variables and AppleEvent data containers. |
Benjamin Peterson | 2368193 | 2008-05-12 21:42:13 +0000 | [diff] [blame] | 8 | :deprecated: |
Georg Brandl | 8ec7f65 | 2007-08-15 14:28:01 +0000 | [diff] [blame] | 9 | .. sectionauthor:: Vincent Marchetti <vincem@en.com> |
Georg Brandl | b19be57 | 2007-12-29 10:57:00 +0000 | [diff] [blame] | 10 | .. moduleauthor:: Jack Jansen |
Georg Brandl | 8ec7f65 | 2007-08-15 14:28:01 +0000 | [diff] [blame] | 11 | |
| 12 | The :mod:`aepack` module defines functions for converting (packing) Python |
| 13 | variables to AppleEvent descriptors and back (unpacking). Within Python the |
| 14 | AppleEvent descriptor is handled by Python objects of built-in type |
| 15 | :class:`AEDesc`, defined in module :mod:`Carbon.AE`. |
| 16 | |
Georg Brandl | b44c9f3 | 2009-04-27 15:29:26 +0000 | [diff] [blame] | 17 | .. note:: |
Benjamin Peterson | 2368193 | 2008-05-12 21:42:13 +0000 | [diff] [blame] | 18 | |
Georg Brandl | b44c9f3 | 2009-04-27 15:29:26 +0000 | [diff] [blame] | 19 | This module has been removed in Python 3.x. |
Benjamin Peterson | 2368193 | 2008-05-12 21:42:13 +0000 | [diff] [blame] | 20 | |
| 21 | |
Georg Brandl | 8ec7f65 | 2007-08-15 14:28:01 +0000 | [diff] [blame] | 22 | The :mod:`aepack` module defines the following functions: |
| 23 | |
| 24 | |
| 25 | .. function:: pack(x[, forcetype]) |
| 26 | |
| 27 | Returns an :class:`AEDesc` object containing a conversion of Python value x. If |
| 28 | *forcetype* is provided it specifies the descriptor type of the result. |
| 29 | Otherwise, a default mapping of Python types to Apple Event descriptor types is |
| 30 | used, as follows: |
| 31 | |
| 32 | +-----------------+-----------------------------------+ |
| 33 | | Python type | descriptor type | |
| 34 | +=================+===================================+ |
| 35 | | :class:`FSSpec` | typeFSS | |
| 36 | +-----------------+-----------------------------------+ |
| 37 | | :class:`FSRef` | typeFSRef | |
| 38 | +-----------------+-----------------------------------+ |
| 39 | | :class:`Alias` | typeAlias | |
| 40 | +-----------------+-----------------------------------+ |
| 41 | | integer | typeLong (32 bit integer) | |
| 42 | +-----------------+-----------------------------------+ |
| 43 | | float | typeFloat (64 bit floating point) | |
| 44 | +-----------------+-----------------------------------+ |
| 45 | | string | typeText | |
| 46 | +-----------------+-----------------------------------+ |
| 47 | | unicode | typeUnicodeText | |
| 48 | +-----------------+-----------------------------------+ |
| 49 | | list | typeAEList | |
| 50 | +-----------------+-----------------------------------+ |
| 51 | | dictionary | typeAERecord | |
| 52 | +-----------------+-----------------------------------+ |
| 53 | | instance | *see below* | |
| 54 | +-----------------+-----------------------------------+ |
| 55 | |
| 56 | If *x* is a Python instance then this function attempts to call an |
| 57 | :meth:`__aepack__` method. This method should return an :class:`AEDesc` object. |
| 58 | |
| 59 | If the conversion *x* is not defined above, this function returns the Python |
| 60 | string representation of a value (the repr() function) encoded as a text |
| 61 | descriptor. |
| 62 | |
| 63 | |
| 64 | .. function:: unpack(x[, formodulename]) |
| 65 | |
| 66 | *x* must be an object of type :class:`AEDesc`. This function returns a Python |
| 67 | object representation of the data in the Apple Event descriptor *x*. Simple |
| 68 | AppleEvent data types (integer, text, float) are returned as their obvious |
| 69 | Python counterparts. Apple Event lists are returned as Python lists, and the |
| 70 | list elements are recursively unpacked. Object references (ex. ``line 3 of |
| 71 | document 1``) are returned as instances of :class:`aetypes.ObjectSpecifier`, |
| 72 | unless ``formodulename`` is specified. AppleEvent descriptors with descriptor |
| 73 | type typeFSS are returned as :class:`FSSpec` objects. AppleEvent record |
| 74 | descriptors are returned as Python dictionaries, with 4-character string keys |
| 75 | and elements recursively unpacked. |
| 76 | |
| 77 | The optional ``formodulename`` argument is used by the stub packages generated |
| 78 | by :mod:`gensuitemodule`, and ensures that the OSA classes for object specifiers |
| 79 | are looked up in the correct module. This ensures that if, say, the Finder |
| 80 | returns an object specifier for a window you get an instance of |
| 81 | ``Finder.Window`` and not a generic ``aetypes.Window``. The former knows about |
| 82 | all the properties and elements a window has in the Finder, while the latter |
| 83 | knows no such things. |
| 84 | |
| 85 | |
| 86 | .. seealso:: |
| 87 | |
| 88 | Module :mod:`Carbon.AE` |
| 89 | Built-in access to Apple Event Manager routines. |
| 90 | |
| 91 | Module :mod:`aetypes` |
| 92 | Python definitions of codes for Apple Event descriptor types. |