Документация Python неофициальный перевод

38.2. aetools – поддержка клиента OSAaetools – 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 для глагола с обозначением OSA code, subcode (обычные 4-символьные строки), упаковывает в него parameters и attributes, отправляет целевому приложению, ожидает ответа, распаковывает ответ с помощью unpackevent и возвращает ответное событие AppleEvent, распакованные возвращаемые значения в виде словаря и атрибуты ответа.