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

38.5. MiniAEFrame – поддержка сервера Open Scripting ArchitectureMiniAEFrame – Open Scripting Architecture server support

Модуль MiniAEFrame предоставляет инфраструктуру для приложения, которое может функционировать как сервер Open Scripting Architecture (OSA), т.е. получать и обрабатывать AppleEvents. Его можно использовать вместе с FrameWork или автономно. Например, он используется в PythonCGISlave.

Модуль MiniAEFrame определяет следующие классы:

class MiniAEFrame.AEServer

Класс, который обрабатывает диспетчеризацию AppleEvent. Ваше приложение должно создать подкласс этого класса вместе с MiniApplication или FrameWork.Application. Ваш метод __init__() должен вызывать метод __init__() для обоих классов.

class MiniAEFrame.MiniApplication

Класс, который более или менее совместим с FrameWork.Application, но с меньшей функциональностью. Его цикл событий поддерживает меню «Apple», Command-точку и AppleEvents; другие события передаются интерпретатору Python и/или Sioux. Полезен, если ваше приложение хочет использовать AEServer, но не предоставляет собственных окон и т.д.

38.5.1. Объекты AEServerAEServer Objects

AEServer.installaehandler(classe, type, callback)

Устанавливает обработчик AppleEvent. classe и type – это четырёхсимвольные обозначения класса и типа OSA, допускаются подстановочные знаки '****'. Когда получено соответствующее AppleEvent, параметры декодируются и вызывается ваш колбэк.

AEServer.callback(_object, **kwargs)

Ваш колбэк вызывается с прямым объектом OSA в качестве первого позиционного параметра. Остальные параметры передаются как именованные аргументы, где имя – это четырёхсимвольное обозначение. Передаются три дополнительных именованных параметра: _class и _type – это обозначения класса и типа, а _attributes – это словарь с атрибутами AppleEvent.

Возвращаемое значение вашего метода упаковывается с помощью aetools.packevent() и отправляется как ответ.

Обратите внимание, что в текущей реализации есть несколько серьёзных проблем. AppleEvents, в которых для аргументов используются неидентификаторные четырёхсимвольные обозначения, не могут быть реализованы, и невозможно вернуть ошибку отправителю. Это будет исправлено в будущем выпуске.