37.2. aetools – поддержка клиента OSA¶aetools – OSA client support
Платформы: Mac
Модуль aetools содержит базовую функциональность, на которой построена поддержка клиента AppleScript в Python. Он также импортирует и реэкспортирует основную функциональность модулей 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 ответа, распакованные возвращаемые значения в виде словаря и атрибуты ответа.