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

---

# 38.1. [`gensuitemodule`](https://python-all.ru/2.7/library/gensuitemodule.html#module-gensuitemodule) – Генерация пакетов-заглушек OSA

Модуль [`gensuitemodule`](https://python-all.ru/2.7/library/gensuitemodule.html#module-gensuitemodule) создаёт пакет Python, реализующий код-заглушку для наборов AppleScript, реализованных в конкретном приложении, в соответствии с его словарём AppleScript.

Обычно он вызывается пользователем через **PythonIDE**, но также может быть запущен как скрипт из командной строки (передайте [`--help`](https://python-all.ru/2.7/using/cmdline.html#cmdoption-help) для справки по параметрам) или импортирован из кода Python. Пример использования см. в `Mac/scripts/genallsuites.py` в дистрибутиве исходных кодов, который генерирует пакеты-заглушки, входящие в стандартную библиотеку.

Он определяет следующие открытые функции:

#### `gensuitemodule.is_scriptable(application)`

Возвращает true, если `application` (передаётся как путь к файлу) предположительно является скриптуемым. К возвращаемому значению стоит относиться с осторожностью: **Internet Explorer** не считается скриптуемым, но на самом деле это так.

#### `gensuitemodule.processfile(application[, output, basepkgname, edit_modnames, creatorsignature, dump, verbose])`

Создаёт пакет-заглушку для `application`, который должен быть передан как полный путь. Для пакета `.app` это путь к самому пакету, а не к исполняемому файлу внутри него; для приложения CFM без пакета передаётся имя файла двоичного кода приложения.

Эта функция запрашивает у приложения его ресурсы терминологии OSA, декодирует эти ресурсы и использует полученные данные для создания кода Python для пакета, реализующего клиентские заглушки.

`output` – это путь, по которому сохраняется результирующий пакет; если он не указан, пользователю отображается стандартный диалог «Сохранить файл как». `basepkgname` – это базовый пакет, на основе которого будет строиться данный пакет; по умолчанию равен `StdSuites`. Указывать его нужно только при генерации самого `StdSuites`. `edit_modnames` – это словарь, который можно использовать для изменения имён модулей, слишком некрасивых после name mangling. `creator_signature` используется для переопределения 4-символьного кода создателя, который обычно берётся из файла `PkgInfo` в пакете или из сигнатуры создателя файла CFM. Если указан `dump`, он должен ссылаться на файловый объект; `processfile` остановится после декодирования ресурсов и выгрузит Python-представление терминологических ресурсов в этот файл. `verbose` также должен быть файловым объектом; его указание заставит `processfile` сообщать о своих действиях.

#### `gensuitemodule.processfile_fromresource(application[, output, basepkgname, edit_modnames, creatorsignature, dump, verbose])`

Эта функция делает то же самое, что и `processfile`, но использует другой способ получения ресурсов терминологии. Она открывает `application` как файл ресурсов и читает из этого файла все ресурсы `"aete"` и `"aeut"`.
