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