With句の動作

参考:
with構文とは何なのか(@年中アイス)
Pythonのwithステートメントのまとめ(@$ cat /var/log/shin)
Pythonのwith構文で例外を補足する実例(@$ cat /var/log/shin)
Pythonのwith文(@まめりうむ )
with文(@PY習)

 結果から書くと、クラスを作って __enter__, __exit__メソッドの実装で、with
句開始行及びその後のブロックを抜ける際に其々実行される。
 ※__exit__の時に リソース開放処理(例えばcloseメソッド)を実行する。

 試しに、PySideのWidget.blockSignalを行う処理を自動開放してくれるクラスを書いてみたら、確かに自動開放された。

 こういうものをコンテキストマネジャと呼ぶらしい。
 Scipy lecture notesを読んでいて目にした。(コンテキストマネージャ)

Maya起動用バッチ

説明している人が居たので、メモしておく。

Maya起動バッチを作ろう@0303

コマンドラインからMaya起動する方法を知っていると、環境を複数用意することも可能になるので、特に開発を行っている人に必要になる知識。知っておくと、環境をキチンと分けられるので無用な問題も減って開発しやすいと思う。
※ただ、キチンと分けない人の環境で発生する問題に気付くことには疎くなる…という別のデメリットもあるけど。。

Maya終了時のスクリプトログを得るには。

そもそも、どうやって取るのか全然知らないので、ちょっと調べてみた。
方法はいろいろあるかもしれないが、環境変数”MAYA_CMD_FILE_OUTPUT”で指定したファイルにログを出すことができた。

予め上記のように環境変数に出力ファイルを指定しておくと、そのファイルにスクリプトログの結果が出力される。
Mayaが閉じる場合に実行されるスクリプトのログを取らないといけない場合には、こういう手段でもないと状況が判らない…

追記

上記はコマンドプロンプトからMayaを実行する場合の話なので、Mayaアイコンのダブルクリックで実行する場合にはWindowsのシステム設定の環境変数として”MAYA_CMD_FILE_OUTPUT”を登録する必要がある。

辿り方は2通り。
・コントロールパネル(アイコン表示時) > システム > システムの詳細設定 > 環境変数
・コントロールパネル(カテゴリ表示時) > システムとセキュリティ > システム > システムの詳細設定 > 環境変数

コントロールパネルには、表示方法が「カテゴリ」と「アイコン」の2通りがあるので、設定により辿る際のパスが違う点に留意。
※デフォルトでは、カテゴリ表示。
追記(その2)

掲題の目的とは別に、スクリプト実行時のログをファイルに残したい場合には「cmdFileOutput」というコマンドがあった。
こちらは自分でログファイルのopen/closeを指定する必要があるので終了時に使うようなコマンドではないが、特定のコマンドを実行する際にのみログを取りたい場合には、直前・直後にopen/close操作をすることで特定の処理のログだけをファイルに出力できる。

ファイル操作と同じくcloseを明示的に行う必要がある為、その点には注意が必要。(特に、例外発生でclose処理がskipされることがないように留意する事。)
その後

 MayaやMayaBatchの起動スイッチに -log というのがあって、これでもログをファイルに記録することが可能だった。