class documentation

class clear_and_catch_warnings(warnings.catch_warnings):

View In Hierarchy

Context manager that resets warning registry for catching warnings

Warnings can be slippery, because, whenever a warning is triggered, Python adds a __warningregistry__ member to the calling module. This makes it impossible to retrigger the warning in this module, whatever you put in the warnings filters. This context manager accepts a sequence of modules as a keyword argument to its constructor and:

  • stores and removes any __warningregistry__ entries in given modules on entry;
  • resets __warningregistry__ to its previous state on exit.

This makes it possible to trigger any warning afresh inside the context manager without disturbing the state of warnings outside.

For compatibility with Python 3.0, please consider all arguments to be keyword-only.

Parameters

record : bool, optional
Specifies whether warnings should be captured by a custom implementation of warnings.showwarning() and be appended to a list returned by the context manager. Otherwise None is returned by the context manager. The objects appended to the list are arguments whose attributes mirror the arguments to showwarning().
modules : sequence, optional
Sequence of modules for which to reset warnings registry on entry and restore on exit. To work correctly, all 'ignore' filters should filter by one of these modules.

Examples

>>> 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
Method __enter__ Undocumented
Method __exit__ Undocumented
Method __init__ Undocumented
Class Variable class​_modules Undocumented
Instance Variable ​_warnreg​_copies Undocumented
Instance Variable modules Undocumented
def __enter__(self):

Undocumented

def __exit__(self, *exc_info):

Undocumented

def __init__(self, record=False, modules=()):

Undocumented

class_modules: tuple =

Undocumented

_warnreg_copies: dict =

Undocumented

modules =

Undocumented