# 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 引数はパスもしくは、`FSSpec`、`FSRef` オブジェ クトを与える事ができます。

`SetCreatorAndType`( | file, creator, type)

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

`openrf`( | name [, mode])

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

`WMAvailable`( | )

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

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