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