# 38.2. `aetools` --- OSA クライアントのサポート

`aetools` モジュールは Python で AppleScript クライアントとしての機能をサポートするアプリケーションを構築するための基本的な機能を含んでいます。さらに、このモジュールは、 `aetypes` および `aepack` モジュールの中核機能をインポートし再エクスポートします。 `gensuitemodule` によって生成されたスタブパッケージは `aetools` のかなり適切な部分をインポートするので、通常はそれを明示的にインポートする必要はありません。生成されたパッケージ群を使用することができない場合と、スクリプト対応のためにより低いレベルのアクセスを必要としている場合、例外が発生します。

`aetools` モジュールはそれ自身、 `Carbon.AE` モジュールによって提供される AppleEvent サポートを利用します。このモジュールにはウィンドウマネージャへのアクセスを必要とするという 1 つの欠点があります。詳細は GUI でスクリプトを実行 を見てください。この制限は将来のリリースで撤廃されるかもしれません。

注釈

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

`aetools` モジュールは下記の関数を定義しています。

`aetools.``packevent`(ae, parameters, attributes)

  あらかじめ作成された `Carbon.AE.AEDesc` オブジェクト中のパラメータおよび属性を保存します。 `parameters` と `attributes` は Python オブジェクトの 4 文字の OSA パラメータのキーを写像した辞書です。このオブジェクトをパックするには `aepack.pack()` を使います。

`aetools.``unpackevent`(ae[, formodulename])

  再帰的に、 `Carbon.AE.AEDesc` イベントを Python オブジェクトへアンパックします。関数は引数の辞書および属性の辞書を返します。 `formodulename` 引数は AppleScript クラスをどこに捜しに行くか制御するために、生成されたスタブパッケージにより使用されます。

`aetools.``keysubst`(arguments, keydict)

  Python キーワード引数辞書 `arguments` を、写像による 4 文字の OSA キーとして `keydict` の中で指定された Python 識別子であるキーの交換により `packevent` によって要求されるフォーマットへ変換します。生成されたパッケージ群によって使用されます。

`aetools.``enumsubst`(arguments, key, edict)

  `arguments` 辞書が `key` へのエントリーを含んでいる場合、辞書 `edict` のエントリーに見合う値に変換します。これは人間に判読可能なように Python 列挙名を OSA 4 文字のコードに変換します。生成されたパッケージ群によって使用されます。

`aetools` モジュールは次のクラスを定義しています。

class `aetools.``TalkTo`([signature=None, start=0, timeout=0])

  アプリケーションとの対話に利用する代理の基底クラスです。 `signature` はクラス属性 `_signature` (サブクラスによって通常設定される) を上書きした、対話するアプリケーションを定義する 4 文字 クリエートコードです。 `start` にはクラスインスタンス上でアプリケーションを実行することを可能にするために、真を設定する事ができます。 `timeout` を明示的に設定する事で、 AppleEvent の返答を待つデフォルトのタイムアウト時間を変更する事ができます。

`TalkTo.``_start`()

  アプリケーションが起動していてるか確認し、起動していなければ起動しようとします。

`TalkTo.``send`(code, subcode[, parameters, attributes])

  OSA指示子 `code, subcode` (いずれも通常4文字の文字列です) を持った変数のために、 `parameters` をパックし、 `attributes` に戻し、目標アプリケーションにそれを送って、返答を待ち、 `unpackevent` を含んだ返答をアンパックし、AppleEvent の返答を返し、辞書としてアンパックした値と属性を返して、AppleEvent `Carbon.AE.AEDesc` を作成します。