3.3 aepack -- Python変数とAppleEventデータコンテナ間の変換

Macintoshプラットフォームで利用できます。

aepack モジュールは、Python 変数から AppleEvent ディスクリプ タへの変換(パック)と、その逆に変換(アンパック)する関数を定義しています。 Python 内では AppleEvent ディスクリプタは、組み込み型である AEDesc の Python オブジェクトとして扱われます。AEDescCarbon.AE モジュールで定義されています。

aepack モジュールは次の関数を定義しています。

pack( x[, forcetype])

Python 値 x を変換した値を保持する AEDesc オブジェクトを返しま す。forcetype が与えることで、結果のディスクリプタ型を指定できま す。それ以外では、Python 型から Apple Eventディスクリプタ型へのデフォ ルトのマッピングが使われます。マッピングは次の通りとなります。

Python type descriptor type
FSSpec typeFSS
FSRef typeFSRef
Alias typeAlias
integer typeLong (32 bit integer)
float typeFloat (64 bit floating point)
string typeText
unicode typeUnicodeText
list typeAEList
dictionary typeAERecord
instance see below

x がPythonインスタンスなら、この関数は __aepack__() メ ソッドを呼びだそうとします。このメソッドは AEDesc オブジェ クトを返します。

x の変換が上で定義されていない場合は、この関数は、テキストディス クリプタとしてエンコードされた、値の(repr()関数による)Python文字列表現 が返されます。

unpack( x[, formodulename])

xAEDesc タイプのオブジェクトでなければいけません。 この関数は、Apple Eventディスクリプタ x のデータのPythonオブジェ クト表現を返します。単純なAppleEventデータ型(整数、テキスト、浮動少 数点数)の、対応するPython型が返されます。Apple EventリストはPythonリ ストとして返され、リストの要素は再帰的にアンパックされます。 formodulename の指定がない場合、オブジェクト参照 (例:line 3 of document 1)が、aetypes.ObjectSpecifier のインスタ ンスとして返されます。ディスクリプタ型がtypeFSSであるAppleEventディ スクリプタが、FSSpec オブジェクトとして返されます。 AppleEventレコードディスクリプタが、再帰的にアンパックされた、型の4 文字キーと要素を持つPython辞書として返されます。

オプションの formodulename 引数は gensuitemodule よ り作成されるスタブパッケージにより利用され、オブジェクト指定子のため の OSA クラスをモジュールの中で見つけられることを保証します。これは、 例えば、ファインダがウィンドウに対してオブジェクト指定子を返す場合、 Finder.Window のインスタンスが得られ、aetypes.Window が得られないことを保証します。前者は、ファインダ上のウィンドウが持っ ている、すべての特性および要素のことを知っています。一方、後者のもの はそれらのことを知りません。

参考:

Carbon.AE:モジュール
Apple Eventマネージャルーチンへの組み込みアクセス.
aetypes:モジュール
Apple Eventディスクリプタ型としてコードされたPython定義.
Inside Macintosh: Interapplication Communication
Macintosh上でのプロセス間通信に関する情報
ご意見やご指摘をお寄せになりたい方は、 このドキュメントについて... をご覧ください。