2.5 MacOS -- Mac OS インタプリタ機能へのアクセス

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

このモジュールは、Python インタプリタ内の MacOS 固有の機能に対するアク セスを提供します。例えば、インタプリタのイベントループ関数などです。十 分注意して利用してください。

モジュール名が大文字で始まることに注意してください。これは昔からの約束 です。

runtimemodel
'carbon''macho' のいずれかです。現在利用している Python が Mac OS X および Mac OS 9互換性をもつ CarbonLib 形式、あるい は Mac OS X のみの Mach-O 形式をのどちらであるか判断できます。Python の初期のバージョンでは、値がさらに古い Mac OS 8 ランタイムモデル用の 'ppc' である事があります。

linkmodel
インタープリタがどのような方法でリンクされているかを返します。拡張モ ジュールがリンクモデル間で非互換性かもしれない場合、パッケージはより多 くの適切なエラーメッセージを伝えるためにこの情報を使用することができま す。値は静的リンクした Python は 'static'、Mac OS X framework で構築した Python は 'framework'、標準の unix 共有ライブラリ (shared library)で構築された Python は 'shared'、Mac OS 9 互換 Python では 'cfm' となります。

exception Error
MacOS でエラーがあると、このモジュールの関数か、Mac 固有なツールボック スインターフェースモジュールから、この例外が生成されます。引数は、整数 エラーコード(OSErr 値)とテキストで記述されたエラーコードです。 分かっている全てのエラーコードのシンボル名は、標準モジュール macerrors で定義されています。

SetEventHandler( handler)
内部のインタプリタループでは、ScheduleParams() で止めないか ぎり、Python は時々イベントをチェックします。イベントがある場合は、こ の関数を使うと、Pythonイベントハンドラ関数を渡せます。イベントはパラメー タとして渡され、イベントが完全に処理された場合は、ハンドラ関数は非ゼロ を返さなくてはなりません。それ以外はイベント処理は継続されます(例えば、 イベントをコンソールウィンドウパッケージ渡すなど)。

イベントハンドラをクリアするには、パラメータなしで SetEventHandler() を呼び出します。既にイベントハンドラがセッ トされているのに、さらにセットしようとするとエラーになります。

有効性:MacPython-OS9

SchedParams( [doint[, evtmask[, besocial[, interval[, bgyield]]]]])

これはインタプリタの内部ループイベントハンドラに影響を与えます。 Interval は、インタプリタがどれだけの頻度(浮動小数点数の秒で表わさ れる)でイベント処理コードに入るかを指定します。真なら doint は割 り込み(コマンドドット)チェックが行われます。evtmask はインタプリ タに、イベントをマスクして (再描画、他のアプリケーションに切り替わるマ ウスクリックなど)イベント処理するよう指示します。besocial フラグは、 他のプロセスが動作するチャンスを与えます。Python が最前面で動いている 時は、最小限の実行時間が割り当てられ、Python が背景にある場合は、 interval 当りに bgyield 秒が与えられます。

全てのパラメータはオプションで、現在の値がデフォルト値となります。この 関数で返される値は、これらのオプションの既存の値からなるタプルです。デ フォルトの初期値は、全ての処理がオンで、チェックは 1/4 秒毎、バックグ ラウンドで動作している場合はプロセッサも 1/4 秒毎に割り当てられます。

最も一般的な使用ケースは完全にインタープリタメインループ中の処理をで きなくするために SchedParams(0, 0) を呼ぶことです。

有効性:MacPython-OS9

HandleEvent( ev)

イベントレコード ev を Python のイベントループに渡す、というより は、sys.stdout ウィンドウ(Pythonをビルドしたコンパイラにもとづ いて) のハンドラに渡されることになります。こうすると、Python プログラ ムが独自のイベント処理を行え、コマンドピリオドやウィンドウの切り替えが 行えます。

SetEventHandler() でセットしたイベントハンドラからこの関数 を呼びだそうとすると、例外が生じます。

有効性:MacPython-OS9

GetErrorString( errno)

MacOSのエラーコード errno のテキスト表現を返します。

splash( resid)

この関数は、resid で与えた DLOG リソースの内容で、スプラッシュウィ ンドウを画面に表示します。引数なしで呼びだすと、スプラッシュ画面を取り 除きます。拡張モジュールをたくさんロードさせる前に、初期化のタイミング でアプレットにスプラッシュ画面を表示させたいときに、この関数が便利でしょ う。

有効性:MacPython-OS9

DebugStr( message [, object])

Mac OS 9上では、メッセージ message を出してローレベルデバッガに 入ります。オプションの object 引数は使われませんが、デバッガから 内容を容易に検査することができます。Mac OS X 上では 文字列が単に stderr に印字されます。

この関数を使うときは十分気を付けてください。MacsBug などのローレベルデ バッガがインストールされていない場合は、システムがクラッシュしてしまい ます。この関数は主に Python 拡張モジュールの開発者のために用意されてい ます。

SysBeep( )

ベルを鳴らします。

GetTicks( )

システム起動時からのチック数(clock ticks、1/60秒)を得ます。

GetCreatorAndType( file)

2つの4文字の文字列としてファイルクリエータおよびファイルタイプを返しま す。file 引数はパスもしくは、FSSpecFSRef オブジェ クトを与える事ができます。

SetCreatorAndType( file, creator, type)

ファイルクリエータおよびファイルタイプを設定します。file 引数は パスもしくは、FSSpecFSRef オブジェクトを与える事ができ ます。creatortype は4文字の文字列が必要です。

openrf( name [, mode])

ファイルのリソースフォークを開きます。引数は組み込み関数 open() と同じです。返されたオブジェクトはファイルのように 見えるかもしれませんが、これは Python のファイルオブジェクトではあり ませんので扱いに微妙な違いがあります。

WMAvailable( )

現在のプロセスが動作しているウィンドウマネージャにアクセスします。例え ば、Mac OS X サーバー上、あるいは SSH でログインしている、もしくは現在 のインタープリタがフルブローンアプリケーションバンドル(fullblown application bundle)から起動されていない場合などのような、ウィンドウマネー ジャが存在しない場合は False を返します。

Mac OS 9 上ではこの関数はつねに True を返します。

ご意見やご指摘をお寄せになりたい方は、 このドキュメントについて... をご覧ください。