numpy.testing.clear_and_catch_warnings#
- класс numpy.testing.clear_and_catch_warnings(запись=False, модули=())[источник]#
Контекстный менеджер, который сбрасывает реестр предупреждений для их перехвата
Предупреждения могут быть скользкими, потому что всякий раз, когда срабатывает предупреждение, Python добавляет
__warningregistry__член в вызов модуля. Это делает невозможным повторное срабатывание предупреждения в этом модуле, что бы вы ни поместили в фильтры предупреждений. Этот контекстный менеджер принимает последовательность модули как аргумент ключевого слова для его конструктора и:сохраняет и удаляет любые
__warningregistry__записи в заданных модули при входе;сбрасывает
__warningregistry__в исходное состояние при выходе.
Это позволяет вызвать любое предупреждение заново внутри контекстного менеджера, не нарушая состояние предупреждений снаружи.
Для совместимости с Python, пожалуйста, считайте все аргументы только ключевыми.
- Параметры:
- записьbool, необязательно
numpy.polynomial.laguerre.laggrid2d
warnings.showwarning()и добавляться к списку, возвращаемому контекстным менеджером. В противном случае контекстный менеджер возвращает None. Объекты, добавленные в список, являются аргументами, чьи атрибуты отражают аргументыshowwarning().- модулиsequence, optional
Последовательность модулей, для которых сбрасывается реестр предупреждений при входе и восстанавливается при выходе. Для правильной работы все фильтры 'ignore' должны фильтровать по одному из этих модулей.
Примеры
>>> import warnings >>> with np.testing.clear_and_catch_warnings( ... modules=[np._core.fromnumeric]): ... warnings.simplefilter('always') ... warnings.filterwarnings('ignore', module='np._core.fromnumeric') ... # do something that raises a warning but ignore those in ... # np._core.fromnumeric