38.1. gensuitemodule – Генерация пакетов-заглушек OSA¶gensuitemodule – 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".