earthengine-api/python/ee/deprecation.py
Max Heinritz 2d0264c512 v0.1.42
2015-01-15 16:31:11 -08:00

46 lines
1.2 KiB
Python

"""Decorators to mark function deprecated."""
import functools
import warnings
def Deprecated(message):
"""Returns a decorator with a given warning message."""
def Decorator(func):
"""Emits a deprecation warning when the decorated function is called.
Also adds the deprecation message to the function's docstring.
Args:
func: The function to deprecate.
Returns:
func: The wrapped function.
"""
@functools.wraps(func)
def Wrapper(*args, **kwargs):
warnings.warn_explicit(
'%s() is deprecated: %s' % (func.__name__, message),
category=DeprecationWarning,
filename=func.func_code.co_filename,
lineno=func.func_code.co_firstlineno + 1)
return func(*args, **kwargs)
Wrapper.__doc__ += '\nDEPRECATED: ' + message
return Wrapper
return Decorator
def CanUseDeprecated(func):
"""Ignores deprecation warnings emitted while the decorated function runs."""
@functools.wraps(func)
def Wrapper(*args, **kwargs):
with warnings.catch_warnings():
warnings.filterwarnings('ignore', category=DeprecationWarning)
return func(*args, **kwargs)
return Wrapper