def __enter__(self):
# let parent class archive filter state
ret = super(reset_warnings, self).__enter__()
# reset the filter to list everything
if self._reset_filter:
warnings.resetwarnings()
warnings.simplefilter(self._reset_filter)
# archive and clear the __warningregistry__ key for all modules
# that match the 'reset' pattern.
pattern = self._reset_registry
if pattern:
orig = self._orig_registry = {}
for name, mod in sys.modules.items():
if pattern.match(name):
reg = getattr(mod, "__warningregistry__", None)
if reg:
orig[name] = reg.copy()
reg.clear()
return ret
评论列表
文章目录