37.3. aepack – Преобразование между переменными Python и контейнерами данных AppleEvent¶aepack – Conversion between Python variables and AppleEvent data containers
Платформы: Mac
Модуль aepack определяет функции для преобразования (упаковки) переменных Python в дескрипторы AppleEvent и обратно (распаковки). В Python дескриптор AppleEvent представляется объектами встроенного типа AEDesc, определённого в модуле Carbon.AE.
Примечание
Этот модуль был удалён в Python 3.x.
Модуль aepack определяет следующие функции:
- aepack.pack(x[, forcetype])¶
Возвращает объект AEDesc, содержащий преобразование значения Python x. Если указан forcetype, он задаёт тип дескриптора результата. В противном случае используется стандартное отображение типов Python в типы дескрипторов Apple Event, как показано ниже:
Тип Python тип дескриптора FSSpec typeFSS FSRef typeFSRef Alias typeAlias целое число typeLong (32-битное целое) float typeFloat (64-битное число с плавающей запятой) строка typeText unicode typeUnicodeText список typeAEList словарь typeAERecord экземпляр см. ниже Если x является экземпляром Python, то эта функция пытается вызвать метод __aepack__(). Этот метод должен возвращать объект AEDesc.
Если преобразование x не определено выше, эта функция возвращает строковое представление значения в Python (функция repr()), закодированное как текстовый дескриптор.
- aepack.unpack(x[, formodulename])¶
x должен быть объектом типа AEDesc. Эта функция возвращает представление данных из дескриптора AppleEvent x в виде объекта Python. Простые типы данных AppleEvent (целое, текст, число с плавающей запятой) возвращаются в очевидных для Python типах. Списки AppleEvent возвращаются как списки Python, элементы списка рекурсивно распаковываются. Ссылки на объекты (например, строка 3 из документа 1) возвращаются как экземпляры aetypes.ObjectSpecifier, если не указан formodulename. Дескрипторы AppleEvent с типом дескриптора typeFSS возвращаются как объекты FSSpec. Дескрипторы записей AppleEvent возвращаются как словари Python с четырёхсимвольными строковыми ключами и рекурсивно распакованными элементами.
Необязательный аргумент formodulename используется заглушечными пакетами, сгенерированными gensuitemodule, и гарантирует, что классы OSA для спецификаторов объектов ищутся в правильном модуле. Это гарантирует, что если, например, Finder возвращает спецификатор объекта для окна, вы получите экземпляр Finder.Window, а не общий aetypes.Window. Первый знает обо всех свойствах и элементах, которые есть у окна в Finder, тогда как второй ничего такого не знает.