一度にロードされたすべての機能の__warningregistry__
をリセットする方法はありますか?Python - 一度警告を表示する(すべての警告レジストリをリセットする)
「once」フィルタでフィルタリングされたすべての警告を強制的に再表示したいとします。私はロードされたすべての関数(インポートされたモジュールの一部であるものを含む)に<func>.__globals__['__warningregistry__'].clear()
を呼び出す以外にこれを行う方法は見つけられませんでした。warnings.clear()
関数は次のようなものです:
>>> import warnings
>>> warnings.warn('blah')
WARNING:root:blah ->UserWarning at ...
>>> warnings.warn('blah')
>>> warnings.clear()
>>> warnings.warn('blah')
WARNING:root:blah ->UserWarning at ...
そして、私はまた、明確なすべての警告レジストリだけでなく、現在の名前空間にこのwarnings.clear()
機能が欲しいです。
これは既に存在しますか?おそらく私は明らかに何かを見逃しているか、またはモジュールを間違って使用していますか?
これは、問題を追跡しているPythonのバグです。http://bugs.python.org/issue21724 –