> **Источник:** https://python-all.ru/2.7/library/miniaeframe.html
>
> «Документация Python на русском» – неофициальный перевод официальной документации Python: версии от 2.6 до 3.16, полнотекстовый поиск, английский оригинал рядом с переводом. Эта Markdown-версия страницы предназначена для работы с LLM: вставьте её в ChatGPT, Claude или Cursor.

---

# 38.5. [`MiniAEFrame`](https://python-all.ru/2.7/library/miniaeframe.html#module-MiniAEFrame) – поддержка сервера Open Scripting Architecture

Модуль [`MiniAEFrame`](https://python-all.ru/2.7/library/miniaeframe.html#module-MiniAEFrame) предоставляет инфраструктуру для приложения, которое может функционировать как сервер Open Scripting Architecture (OSA), т.е. получать и обрабатывать AppleEvents. Его можно использовать вместе с [`FrameWork`](https://python-all.ru/2.7/library/framework.html#module-FrameWork) или автономно. Например, он используется в **PythonCGISlave**.

Модуль [`MiniAEFrame`](https://python-all.ru/2.7/library/miniaeframe.html#module-MiniAEFrame) определяет следующие классы:

#### `class MiniAEFrame.AEServer`

Класс, который обрабатывает диспетчеризацию AppleEvent. Ваше приложение должно создать подкласс этого класса вместе с [`MiniApplication`](https://python-all.ru/2.7/library/miniaeframe.html#MiniAEFrame.MiniApplication) или [`FrameWork.Application`](https://python-all.ru/2.7/library/framework.html#FrameWork.Application). Ваш метод [`__init__()`](https://python-all.ru/2.7/reference/datamodel.html#object.__init__) должен вызывать метод [`__init__()`](https://python-all.ru/2.7/reference/datamodel.html#object.__init__) для обоих классов.

#### `class MiniAEFrame.MiniApplication`

Класс, который более или менее совместим с [`FrameWork.Application`](https://python-all.ru/2.7/library/framework.html#FrameWork.Application), но с меньшей функциональностью. Его цикл событий поддерживает меню «Apple», Command-точку и AppleEvents; другие события передаются интерпретатору Python и/или Sioux. Полезен, если ваше приложение хочет использовать [`AEServer`](https://python-all.ru/2.7/library/miniaeframe.html#MiniAEFrame.AEServer), но не предоставляет собственных окон и т.д.

## 38.5.1. Объекты AEServer

#### `AEServer.installaehandler(classe, type, callback)`

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

#### `AEServer.callback(_object, **kwargs)`

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

Возвращаемое значение вашего метода упаковывается с помощью [`aetools.packevent()`](https://python-all.ru/2.7/library/aetools.html#aetools.packevent) и отправляется как ответ.

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