38.3. aepack — Python 変数と AppleEvent データコンテナ間の変換

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

注釈

このモジュールは Python 3.x で削除されました。

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

aepack.pack(x[, forcetype])

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

Python の型 デスクリプタの型
FSSpec typeFSS
FSRef typeFSRef
Alias typeAlias
integer typeLong (32 ビット整数)
float typeFloat (64 ビット浮動小数点数)
string typeText
unicode typeUnicodeText
list typeAEList
dictionary typeAERecord
instance 下記参照

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

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

aepack.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 定義