Spaces:
Running
on
Zero
Running
on
Zero
from functools import wraps | |
import warnings | |
def suppress_traceback(fn): | |
def wrapper(*args, **kwargs): | |
try: | |
return fn(*args, **kwargs) | |
except Exception as e: | |
e.__traceback__ = e.__traceback__.tb_next.tb_next | |
raise | |
return wrapper | |
class no_warnings: | |
def __init__(self, action: str = 'ignore', **kwargs): | |
self.action = action | |
self.filter_kwargs = kwargs | |
def __call__(self, fn): | |
def wrapper(*args, **kwargs): | |
with warnings.catch_warnings(): | |
warnings.simplefilter(self.action, **self.filter_kwargs) | |
return fn(*args, **kwargs) | |
return wrapper | |
def __enter__(self): | |
self.warnings_manager = warnings.catch_warnings() | |
self.warnings_manager.__enter__() | |
warnings.simplefilter(self.action, **self.filter_kwargs) | |
def __exit__(self, exc_type, exc_val, exc_tb): | |
self.warnings_manager.__exit__(exc_type, exc_val, exc_tb) | |