Module redvox.api900.deprecation
This module provides functions for gracefully deprecating functionality in this SDK.
Expand source code
"""
This module provides functions for gracefully deprecating functionality in this SDK.
"""
import functools
import logging
import traceback
import typing
LOGGER = logging.getLogger("DeprecationWarningLogger")
def deprecated(in_version: str, alt_fn: typing.Callable) -> typing.Callable:
"""
Decorator used for deprecating functions in the SDK.
This decorator will display a warning of the deprecated function being called, where it was called from, and then
call the alternate function.
:param in_version: Version that the function was deprecated in.
:param alt_fn: An alternate function to use instead of the deprecated one.
"""
def decorator_repeat(func):
"""
Wraps a function.
:param func: Function to wrap.
:return: A decorator.
"""
warn = "%s has been deprecated in version %s. Use %s instead." % (
func.__name__,
in_version,
alt_fn.__name__)
@functools.wraps(func)
def wrapper_decorator(*args, **kwargs):
"""
Displays the deprecation warning and runs the alternate function.
:param args: Original args.
:param kwargs: Original kwargs.
:return: The result of running the alternate function.
"""
_traceback = traceback.extract_stack(limit=2)[0]
LOGGER.warning("RedVox SDK Deprecation Warning: %s", warn)
LOGGER.warning(" -- %s %d %s", _traceback.filename, _traceback.lineno, _traceback.name)
return alt_fn(*args, **kwargs)
wrapper_decorator.__doc__ = warn
return wrapper_decorator
return decorator_repeat
Functions
def deprecated(in_version: str, alt_fn: Callable) ‑> Callable
-
Decorator used for deprecating functions in the SDK. This decorator will display a warning of the deprecated function being called, where it was called from, and then call the alternate function. :param in_version: Version that the function was deprecated in. :param alt_fn: An alternate function to use instead of the deprecated one.
Expand source code
def deprecated(in_version: str, alt_fn: typing.Callable) -> typing.Callable: """ Decorator used for deprecating functions in the SDK. This decorator will display a warning of the deprecated function being called, where it was called from, and then call the alternate function. :param in_version: Version that the function was deprecated in. :param alt_fn: An alternate function to use instead of the deprecated one. """ def decorator_repeat(func): """ Wraps a function. :param func: Function to wrap. :return: A decorator. """ warn = "%s has been deprecated in version %s. Use %s instead." % ( func.__name__, in_version, alt_fn.__name__) @functools.wraps(func) def wrapper_decorator(*args, **kwargs): """ Displays the deprecation warning and runs the alternate function. :param args: Original args. :param kwargs: Original kwargs. :return: The result of running the alternate function. """ _traceback = traceback.extract_stack(limit=2)[0] LOGGER.warning("RedVox SDK Deprecation Warning: %s", warn) LOGGER.warning(" -- %s %d %s", _traceback.filename, _traceback.lineno, _traceback.name) return alt_fn(*args, **kwargs) wrapper_decorator.__doc__ = warn return wrapper_decorator return decorator_repeat