diff options
author | Georg Brandl <georg@python.org> | 2007-08-15 14:28:22 (GMT) |
---|---|---|
committer | Georg Brandl <georg@python.org> | 2007-08-15 14:28:22 (GMT) |
commit | 116aa62bf54a39697e25f21d6cf6799f7faa1349 (patch) | |
tree | 8db5729518ed4ca88e26f1e26cc8695151ca3eb3 /Doc/library/aetools.rst | |
parent | 739c01d47b9118d04e5722333f0e6b4d0c8bdd9e (diff) | |
download | cpython-116aa62bf54a39697e25f21d6cf6799f7faa1349.zip cpython-116aa62bf54a39697e25f21d6cf6799f7faa1349.tar.gz cpython-116aa62bf54a39697e25f21d6cf6799f7faa1349.tar.bz2 |
Move the 3k reST doc tree in place.
Diffstat (limited to 'Doc/library/aetools.rst')
-rw-r--r-- | Doc/library/aetools.rst | 86 |
1 files changed, 86 insertions, 0 deletions
diff --git a/Doc/library/aetools.rst b/Doc/library/aetools.rst new file mode 100644 index 0000000..b5fd4ad --- /dev/null +++ b/Doc/library/aetools.rst @@ -0,0 +1,86 @@ + +:mod:`aetools` --- OSA client support +===================================== + +.. module:: aetools + :platform: Mac + :synopsis: Basic support for sending Apple Events +.. sectionauthor:: Jack Jansen <Jack.Jansen@cwi.nl> + + +.. % \moduleauthor{Jack Jansen?}{email} + +The :mod:`aetools` module contains the basic functionality on which Python +AppleScript client support is built. It also imports and re-exports the core +functionality of the :mod:`aetypes` and :mod:`aepack` modules. The stub packages +generated by :mod:`gensuitemodule` import the relevant portions of +:mod:`aetools`, so usually you do not need to import it yourself. The exception +to this is when you cannot use a generated suite package and need lower-level +access to scripting. + +The :mod:`aetools` module itself uses the AppleEvent support provided by the +:mod:`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 :mod:`aetools` module defines the following functions: + + +.. function:: packevent(ae, parameters, attributes) + + Stores parameters and attributes in a pre-created ``Carbon.AE.AEDesc`` object. + ``parameters`` and ``attributes`` are dictionaries mapping 4-character OSA + parameter keys to Python objects. The objects are packed using + ``aepack.pack()``. + + +.. function:: unpackevent(ae[, formodulename]) + + Recursively unpacks a ``Carbon.AE.AEDesc`` event to Python objects. The function + returns the parameter dictionary and the attribute dictionary. The + ``formodulename`` argument is used by generated stub packages to control where + AppleScript classes are looked up. + + +.. function:: keysubst(arguments, keydict) + + Converts a Python keyword argument dictionary ``arguments`` to the format + required by ``packevent`` by replacing the keys, which are Python identifiers, + by the four-character OSA keys according to the mapping specified in + ``keydict``. Used by the generated suite packages. + + +.. function:: enumsubst(arguments, key, edict) + + If the ``arguments`` dictionary contains an entry for ``key`` convert the value + for that entry according to dictionary ``edict``. This converts human-readable + Python enumeration names to the OSA 4-character codes. Used by the generated + suite packages. + +The :mod:`aetools` module defines the following class: + + +.. class:: TalkTo([signature=None, start=0, timeout=0]) + + Base class for the proxy used to talk to an application. ``signature`` overrides + the class attribute ``_signature`` (which is usually set by subclasses) and is + the 4-char creator code defining the application to talk to. ``start`` can be + set to true to enable running the application on class instantiation. + ``timeout`` can be specified to change the default timeout used while waiting + for an AppleEvent reply. + + +.. method:: TalkTo._start() + + Test whether the application is running, and attempt to start it if not. + + +.. method:: TalkTo.send(code, subcode[, parameters, attributes]) + + Create the AppleEvent ``Carbon.AE.AEDesc`` for the verb with the OSA designation + ``code, subcode`` (which are the usual 4-character strings), pack the + ``parameters`` and ``attributes`` into it, send it to the target application, + wait for the reply, unpack the reply with ``unpackevent`` and return the reply + appleevent, the unpacked return values as a dictionary and the return + attributes. + |