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

aepack.md

53 строк · 5.4 КБ · обычная страница · сырой текст · скачать

1> **Источник:** https://python-all.ru/2.7/library/aepack.html2>3> «Документация Python на русском» – неофициальный перевод официальной документации Python: версии от 2.6 до 3.16, полнотекстовый поиск, английский оригинал рядом с переводом. Эта Markdown-версия страницы предназначена для работы с LLM: вставьте её в ChatGPT, Claude или Cursor.45---67# 38.3. [`aepack`](https://python-all.ru/2.7/library/aepack.html#module-aepack) – Преобразование между переменными Python и контейнерами данных AppleEvent89Модуль [`aepack`](https://python-all.ru/2.7/library/aepack.html#module-aepack) определяет функции для преобразования (упаковки) переменных Python в дескрипторы AppleEvent и обратно (распаковки). В Python дескриптор AppleEvent представлен объектами встроенного типа `AEDesc`, определённого в модуле [`Carbon.AE`](https://python-all.ru/2.7/library/carbon.html#module-Carbon.AE).1011> **Примечание**12>13> Этот модуль был удалён в Python 3.x.1415Модуль [`aepack`](https://python-all.ru/2.7/library/aepack.html#module-aepack) определяет следующие функции:1617#### `aepack.pack(x[, forcetype])`1819Возвращает объект `AEDesc`, содержащий преобразование значения Python x. Если указан *forcetype*, он задаёт тип дескриптора результата. В противном случае используется отображение типов Python на типы дескрипторов Apple Event по умолчанию, как показано ниже:2021| Тип Python | тип дескриптора |22| --- | --- |23| `FSSpec` | typeFSS |24| `FSRef` | typeFSRef |25| `Alias` | typeAlias |26| целое число | typeLong (32-битное целое) |27| float | typeFloat (64-битное число с плавающей запятой) |28| строка | typeText |29| unicode | typeUnicodeText |30| список | typeAEList |31| словарь | typeAERecord |32| экземпляр | *см. ниже* |3334Если *x* является экземпляром Python, то эта функция пытается вызвать метод `__aepack__()`. Этот метод должен возвращать объект `AEDesc`.3536Если преобразование *x* не определено выше, эта функция возвращает строковое представление значения в Python (функция repr()), закодированное как текстовый дескриптор.3738#### `aepack.unpack(x[, formodulename])`3940*x* должен быть объектом типа `AEDesc`. Эта функция возвращает представление данных из дескриптора Apple Event *x* в виде объекта Python. Простые типы данных AppleEvent (целое, текст, число с плавающей запятой) возвращаются как соответствующие типы Python. Списки Apple Event возвращаются как списки Python, а элементы списка рекурсивно распаковываются. Ссылки на объекты (например, `line 3 of document 1`) возвращаются как экземпляры [`aetypes.ObjectSpecifier`](https://python-all.ru/2.7/library/aetypes.html#aetypes.ObjectSpecifier), если не указан `formodulename`. Дескрипторы AppleEvent с типом дескриптора typeFSS возвращаются как объекты `FSSpec`. Дескрипторы записей AppleEvent возвращаются как словари Python с 4-символьными строковыми ключами и рекурсивно распакованными элементами.4142Необязательный аргумент `formodulename` используется пакетами-заглушками, сгенерированными [`gensuitemodule`](https://python-all.ru/2.7/library/gensuitemodule.html#module-gensuitemodule), и гарантирует, что классы OSA для спецификаторов объектов будут найдены в правильном модуле. Это гарантирует, что если, скажем, Finder возвращает спецификатор объекта для окна, вы получите экземпляр `Finder.Window`, а не универсальный `aetypes.Window`. Первый знает обо всех свойствах и элементах, которые окно имеет в Finder, в то время как второй ничего такого не знает.4344> **См. также**45>46> **Модуль [`Carbon.AE`](https://python-all.ru/2.7/library/carbon.html#module-Carbon.AE)**47>48> Встроенный доступ к процедурам Apple Event Manager.49>50> **Модуль [`aetypes`](https://python-all.ru/2.7/library/aetypes.html#module-aetypes)**51>52> Определения Python для кодов типов дескрипторов Apple Event.53