# 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