MiniAEFrame — Поддержка сервера архитектуры открытого сценария
Модуль MiniAEFrame предоставляет фреймворк для приложения, которое может работать как сервер архитектуры открытого сценария (OSA), т.е. принимать и обрабатывать AppleEvents. Он может использоваться в сочетании с FrameWork или как автономное приложение. В качестве примера используется PythonCGISlave.
Модуль MiniAEFrame определяет следующие классы:
-
class MiniAEFrame.AEServer -
Класс, который обрабатывает отправку AppleEvent. Ваше приложение должно быть подклассом этого класса вместе с
MiniApplicationилиFrameWork.Application. Ваш метод__init__()должен вызывать метод__init__()для обоих классов.
-
class MiniAEFrame.MiniApplication -
Класс, в большей или меньшей степени совместимый с
FrameWork.Application, но с меньшим функционалом. Его цикл событий поддерживает меню Apple, команду "точка" и AppleEvents; другие события передаются интерпретатору Python и/или Sioux. Полезно, если ваше приложение хочет использоватьAEServer, но не предоставляет собственные окна и т.д.
1. Объекты AEServer
-
AEServer.installaehandler(classe, type, callback) -
Устанавливает обработчик AppleEvent. classe и type — четырехсимвольные обозначения класса и типа OSA, разрешены
'****'подстановочные знаки. При получении соответствующего AppleEvent параметры декодируются, и вызывается ваш обработчик.
-
AEServer.callback(_object, **kwargs) -
Ваш обработчик вызывается с объектом OSA Direct Object в качестве первого позиционного параметра. Другие параметры передаются в качестве именованных аргументов, с четырехсимвольным обозначением в качестве имени. Передаются три дополнительных именованных параметра:
_classи_type— обозначения класса и типа, а_attributes— словарь с атрибутами AppleEvent.Результат работы вашего метода упаковывается с помощью
aetools.packevent()и отправляется в качестве ответа.
Обратите внимание, что в текущем дизайне есть некоторые серьезные проблемы. AppleEvents с неидентификаторными четырехсимвольными обозначениями аргументов не реализуемы, и невозможно вернуть ошибку отправителю. Это будет исправлено в будущих релизах.
© 2001–2020 Python Software Foundation
Licensed under the PSF License.
https://docs.python.org/2.7/library/miniaeframe.html