38.2. aetools – поддержка клиента OSA¶aetools – OSA client support
Модуль aetools содержит базовую функциональность, на которой строится поддержка клиента Python AppleScript. Он также импортирует и реэкспортирует основную функциональность модулей aetypes и aepack. Пакеты-заглушки, созданные gensuitemodule, импортируют соответствующие части aetools, поэтому обычно нет необходимости импортировать его вручную. Исключение составляет случай, когда нельзя использовать сгенерированный пакет набора и нужен доступ к скриптингу более низкого уровня.
Сам модуль aetools использует поддержку AppleEvent, предоставляемую модулем Carbon.AE. У этого есть один недостаток: требуется доступ к оконному менеджеру; подробности см. в разделе Запуск скриптов с графическим интерфейсом. В будущих версиях это ограничение может быть снято.
Примечание
Этот модуль был удалён в Python 3.x.
Модуль aetools определяет следующие функции:
-
aetools.packevent(ae, parameters, attributes)¶ Сохраняет параметры и атрибуты в предварительно созданном объекте
Carbon.AE.AEDesc.parametersиattributes– это словари, сопоставляющие 4-символьные ключи параметров OSA объектам Python. Объекты упаковываются с помощьюaepack.pack().
-
aetools.unpackevent(ae[, formodulename])¶ Рекурсивно распаковывает событие
Carbon.AE.AEDescв объекты Python. Функция возвращает словарь параметров и словарь атрибутов. Аргументformodulenameиспользуется сгенерированными пакетами-заглушками для управления тем, где ищутся классы AppleScript.
-
aetools.keysubst(arguments, keydict)¶ Преобразует словарь ключевых аргументов Python
argumentsв формат, требуемыйpackevent, заменяя ключи (идентификаторы Python) на четырёхсимвольные ключи OSA в соответствии с отображением, заданным вkeydict. Используется сгенерированными пакетами набора.
-
aetools.enumsubst(arguments, key, edict)¶ Если словарь
argumentsсодержит запись дляkey, преобразует значение этой записи в соответствии со словарёмedict. Это преобразует читаемые человеком имена перечислений Python в четырёхсимвольные коды OSA. Используется сгенерированными пакетами набора.
Модуль aetools определяет следующий класс:
-
class
aetools.TalkTo([signature=None, start=0, timeout=0])¶ Базовый класс для прокси, используемого для общения с приложением.
signatureпереопределяет атрибут класса_signature(который обычно задаётся подклассами) и является 4-символьным кодом создателя, определяющим приложение, с которым нужно общаться.startможет быть установлено в true, чтобы запускать приложение при создании экземпляра класса.timeoutможно указать для изменения таймаута по умолчанию, используемого при ожидании ответа AppleEvent.
-
TalkTo._start()¶ Проверяет, запущено ли приложение, и пытается запустить его, если нет.
-
TalkTo.send(code, subcode[, parameters, attributes])¶ Создаёт AppleEvent
Carbon.AE.AEDescдля глагола с обозначением OSAcode, subcode(обычные 4-символьные строки), упаковывает в негоparametersиattributes, отправляет целевому приложению, ожидает ответа, распаковывает ответ с помощьюunpackeventи возвращает ответное событие AppleEvent, распакованные возвращаемые значения в виде словаря и атрибуты ответа.