Source code for visions.utils.warning_handling

import functools
import os
import sys
import warnings
from typing import Callable, TypeVar

T = TypeVar("T")


[docs]def suppress_warnings(func: Callable[..., T]) -> Callable[..., T]: """Suppress warnings produces while executing the wrapped function.""" @functools.wraps(func) def inner(*args, **kwargs) -> T: with warnings.catch_warnings(): warnings.simplefilter("ignore") return func(*args, **kwargs) return inner
[docs]def discard_stderr(func: Callable[..., T]) -> Callable[..., T]: """Shapely logs failures at a silly severity, just trying to suppress it's output on failures. Only known way to get rid of sys output when wkt.loads hits a bad value""" @functools.wraps(func) def wrapper(*args, **kwargs) -> T: sys.stderr = open(os.devnull, "w") res = func(*args, **kwargs) sys.stderr = sys.__stderr__ return res return wrapper