38.1. gensuitemodule — OSA スタブ作成パッケージ

gensuitemodule モジュールは AppleScript 辞書によって特定のアプリケーションに実装されている AppleScript 群のためのスタブコードを実装した Python パッケージを作成します。

このモジュールは、通常は PythonIDE からユーザによって起動されますが、コマンドラインからスクリプトとして実行する (オプションとしてヘルプに --help を与えてみてください) こともできますし、Python コードでインポートして利用する事もできます。使用例として、どのようにして標準ライブラリに含まれているスタブパッケージを生成するか、 Mac/scripts/genallsuites.py にあるソースを見てください。

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

gensuitemodule.is_scriptable(application)

application としてパス名を与えたアプリケーションがスクリプト可能でありそうな場合、真を返します。返り値はやや不確実な場合があります。 Internet Explorer はスクリプト不可能なように見えてしまいますが、実際はスクリプト可能です。

gensuitemodule.processfile(application[, output, basepkgname, edit_modnames, creatorsignature, dump, verbose])

フルパス名として渡された application のためのスタブパッケージを作成します。 .app として一つのパッケージにまとめてあるプログラム群のために内部の実行プログラムそのものではなくパッケージへのパス名を渡すだけでよくなっています。パッケージ化されていないCFM アプリケーションではアプリケーションバイナリのファイル名を渡す事もできます。

この関数は、アプリケーションの OSA 用語リソースを捜し、これらのリソースを読み取り、その結果データをクライアントスタブを実装した Python コードパッケージを作成するために使用します。

output は作成結果のパッケージを保存するパス名で、指定しない場合は標準の「別名で保存(save file as)」ダイアログが表示されます。 basepkgname はこのパッケージの基盤となるパッケージを指定します。デフォルトは StdSuites になります。 StdSuites 自体を生成する場合だけ、このオプションを指定する必要があります。 edit_modnames は自動生成によって作成されてあまり綺麗ではないモジュール名を変更するために使用することができる辞書です。 creator_signature はパッケージ中の PkgInfo ファイル、あるいは CFM ファイルクリエータ署名から通常得られる 4 文字クリエータコードを上書きするために使用することができます。 dump にはファイルオブジェクトを与え、これを指定すると processfile はリソースを読取った後に停止し、コード化した用語リソースの Python 表現をダンプします。 verbose にもまたファイルオブジェクトを与え、これを指定すると processfile の行なっている処理の詳細を出力します。

gensuitemodule.processfile_fromresource(application[, output, basepkgname, edit_modnames, creatorsignature, dump, verbose])

この関数は、用語リソースを得るのに異なる方法を使用する以外は、 processfile と同じです。この関数では、リソースファイルとして application を開き、このファイルから "aete" および "aeut" リソースをすべて読み込む事で、AppleScript 用語リソース読み込みを行ないます。