Содержание страницы
38.5. MiniAEFrame – поддержка сервера Open Scripting Architecture¶MiniAEFrame – 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. Объекты AEServer¶AEServer Objects
-
AEServer.installaehandler(classe, type, callback)¶ Устанавливает обработчик AppleEvent. classe и type – это четырёхсимвольные обозначения класса и типа OSA, допускаются подстановочные знаки
'****'. Когда получено соответствующее AppleEvent, параметры декодируются и вызывается ваш колбэк.
-
AEServer.callback(_object, **kwargs)¶ Ваш колбэк вызывается с прямым объектом OSA в качестве первого позиционного параметра. Остальные параметры передаются как именованные аргументы, где имя – это четырёхсимвольное обозначение. Передаются три дополнительных именованных параметра:
_classи_type– это обозначения класса и типа, а_attributes– это словарь с атрибутами AppleEvent.Возвращаемое значение вашего метода упаковывается с помощью
aetools.packevent()и отправляется как ответ.
Обратите внимание, что в текущей реализации есть несколько серьёзных проблем. AppleEvents, в которых для аргументов используются неидентификаторные четырёхсимвольные обозначения, не могут быть реализованы, и невозможно вернуть ошибку отправителю. Это будет исправлено в будущем выпуске.