aetools— OSA client support
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
aepack modules. The stub packages
gensuitemodule import the relevant portions of
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.
aetools module itself uses the AppleEvent support provided by the
Carbon.AE module. This has one drawback: you need access to the window
manager, see section Running scripts with a GUI for details. This restriction may be
lifted in future releases.
This module has been removed in Python 3.x.
aetools module defines the following functions:
packevent(ae, parameters, attributes)
attributesare dictionaries mapping 4-character OSA parameter keys to Python objects. The objects are packed using
Carbon.AE.AEDescevent to Python objects. The function returns the parameter dictionary and the attribute dictionary. The
formodulenameargument is used by generated stub packages to control where AppleScript classes are looked up.
argumentsto the format required by
packeventby 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.
enumsubst(arguments, key, edict)
argumentsdictionary contains an entry for
keyconvert 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.
aetools module defines the following class:
TalkTo([signature=None, start=0, timeout=0])
signatureoverrides the class attribute
_signature(which is usually set by subclasses) and is the 4-char creator code defining the application to talk to.
startcan be set to true to enable running the application on class instantiation.
timeoutcan be specified to change the default timeout used while waiting for an AppleEvent reply.
send(code, subcode[, parameters, attributes])
Carbon.AE.AEDescfor the verb with the OSA designation
code, subcode(which are the usual 4-character strings), pack the
attributesinto it, send it to the target application, wait for the reply, unpack the reply with
unpackeventand return the reply appleevent, the unpacked return values as a dictionary and the return attributes.