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

38.1. gensuitemodule – Генерация пакетов-заглушек OSAgensuitemodule – Generate OSA stub packages

Модуль gensuitemodule создаёт пакет Python, реализующий код-заглушку для наборов AppleScript, реализованных в конкретном приложении, в соответствии с его словарём AppleScript.

Обычно он вызывается пользователем через PythonIDE, но также может быть запущен как скрипт из командной строки (передайте --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".