Python警告システム

Astropy Pythonを使用 warnings モジュールは警告メッセージを発する.警告モジュールの使用詳細はPythonに適用され、このシステムを使用する任意のPythonソフトウェアに適用されます。ユーザーはpythonコマンドラインパラメータを使用して警告を隠蔽することができます -W"ignore" インタラクティブなPythonセッションを開始する際に。例えば:

$ python -W"ignore"

ユーザは、以下のように、Pythonスクリプトを実行する際にコマンドラインパラメータを使用することもできます。

$ python -W"ignore" myscript.py

また、pythonスクリプト内部からの警告を抑制することができます。たとえば,単一の呼び出しからの警告 astropy.io.fits.writeto 関数はPythonスクリプトで使用できます warnings.filterwarnings 機能は以下のとおりである.

>>> import warnings
>>> from astropy.io import fits
>>> warnings.filterwarnings('ignore', category=UserWarning, append=True)
>>> fits.writeto(filename, data, overwrite=True)

簡単に呼び出された警告フィルタ仕様リストにエントリを挿入する等価方法 warnings.simplefilter **

>>> warnings.simplefilter('ignore', UserWarning)

Astropyには自分の警告クラスが含まれています AstropyWarning そして AstropyUserWarning それがそうです。Astropyによって発行されるすべての警告は、これらの警告カテゴリに基づく(それらの間の区別を理解するために以下の警告カテゴリを参照されたい)。したがって,ユーザはAstropyからのすべての警告(Numpyなどの他のライブラリを介した警告を同時に許可する)を無視することができ,方法は以下のとおりである.

>>> from astropy.utils.exceptions import AstropyWarning
>>> warnings.simplefilter('ignore', category=AstropyWarning)

警告フィルタは、特定のコンテキストでのみ使用されてもよい warnings.catch_warnings コンテキストマネージャ::

>>> with warnings.catch_warnings():
...     warnings.simplefilter('ignore', AstropyWarning)
...     fits.writeto(filename, data, overwrite=True)

以上のように実際には two Astropy警告の基本クラス。主な違いは AstropyUserWarning 警告に使う 意欲がある. 典型的なユーザ(例えば“警告:単位が明確でない”は,入力が正しくないためかもしれない).対照的に AstropyWarning 警告は? not AstropyUserWarning より低いレベルの警告に適用可能であり,以下のコードを作成する開発者の方が有用である. uses Astropy(例えば、以下で議論する廃棄警告)。したがって、すべてを静かにしたいユーザーであれば、上のコードで十分ですが、もしあなたが開発者であり、あなたのユーザーに開発に関する警告を隠したい場合、あなたは依然として通過を許可したいかもしれません。 AstropyUserWarning それがそうです。

使用を推奨しないAPI機能を使用する場合,Astropyも警告する.もしあなたが望むなら 静かに騒音を起こす. 警告の使用は推奨されていません。以下のコマンドを使用してPythonを起動すること -Wi::Deprecation それがそうです。これはすべての廃棄警告を無視に設定するだろう。Astropy特有の AstropyDeprecationWarning それはAstropyでの廃棄警告を無効にするためにのみ使用されることができる。

the CPython documentation -Wパラメータの詳細については,以下の操作を実行してください.