警告フィルタは、ある警告を無視すべきか、表示すべきか、あるいは (例外を送出する) エラーにするべきかを制御します。
概念的には、警告フィルタは複数のフィルタ仕様からなる順番付けられた リストを維持しています; 何らかの特定の警告が生じると、フィルタ仕様の 一致するものが見つかるまで、リスト中の各フィルタとの照合が行われます; 一致したフィルタ仕様がその警告の処理方法を決定します。 フィルタの各エントリは (action, message, category, module, lineno) からなるタプルです。ここで:
値 | 処理方法 |
---|---|
"error" |
一致した警告を例外に変えます |
"ignore" |
一致した警告を決して出力しません |
"always" |
一致した警告を常に出力します |
"default" |
一致した警告のうち、警告の原因になった ソースコード上の場所ごとに、最初の警告のみ出力します。 |
"module" |
一致した警告のうち、警告の原因になった モジュールごとに、最初の警告のみ出力します。 |
"once" |
一致した警告のうち、警告の原因になった 場所にかかわらず最初の警告のみ出力します。 |
0
になります。
Warning クラスは組み込みの Exception クラスから
導出されているので、警告をエラーに変えるには単に
category(message)
を raise
します。
警告フィルタは Python インタプリタのコマンドラインに渡される
-W オプションで初期化されます。インタプリタは
-W オプションに渡される全ての引数を
sys.warnoptions
; に変換せずに保存します; warnings
モジュールは最初に import
された際にこれらの引数を解釈します
(無効なオプションはsys.stderr
にメッセージを出力した後
無視されます)。
デフォルトでは無視される警告を -Wd をインタプリタに渡すこ とで有効にすることができます。このオプションは通常はデフォルトで無視さ れるようなものを含む全ての警告のデフォルトでの扱いを有効化します。この ような振る舞いは開発中のパッケージをインポートする問題をデバッグする時 にImportWarning を有効化するために使えます。ImportWarning は次のよう な Python コードを使って明示的に有効化することもできます。
warnings.simplefilter('default', ImportWarning)
ご意見やご指摘をお寄せになりたい方は、 このドキュメントについて... をご覧ください。