code: def pytorch_toolbelt_deprecated(reason):
      """
      Mark function or class as deprecated.
      It will result in a warning being emitted when the function is used.
      """
      if isinstance(reason, string_types):
          # The @deprecated is used with a 'reason'.
          #
          # .. code-block:: python
          #
          #    @deprecated("please, use another function")
          #    def old_function(x, y):
          #      pass
  
          def decorator(func1):
              if inspect.isclass(func1):
                  fmt1 = "Call to deprecated class {name} ({reason})."
              else:
                  fmt1 = (
                      "Call to deprecated function {name} ({reason})."
                  )
  
              @functools.wraps(func1)
              def new_func1(*args, **kwargs):
                  warnings.simplefilter("always", DeprecationWarning)
                  warnings.warn(
                      fmt1.format(name=func1.__name__, reason=reason),
                      category=DeprecationWarning,
                      stacklevel=2,
                  )
                  warnings.simplefilter("default", DeprecationWarning)
                  return func1(*args, **kwargs)
  
              return new_func1
  
          return decorator
  
      elif inspect.isclass(reason) or inspect.isfunction(reason):
          # The @deprecated is used without any 'reason'.
          #
          # .. code-block:: python
          #
          #    @deprecated
          #    def old_function(x, y):
          #      pass
  
          func2 = reason
  
          if inspect.isclass(func2):
              fmt2 = "Call to deprecated class {name}."
          else:
              fmt2 = "Call to deprecated function {name}."
  
          @functools.wraps(func2)
          def new_func2(*args, **kwargs):
              warnings.simplefilter("always", DeprecationWarning)
              warnings.warn(
                  fmt2.format(name=func2.__name__),
                  category=DeprecationWarning,
                  stacklevel=2,
              )
              warnings.simplefilter("default", DeprecationWarning)
              return func2(*args, **kwargs)
  
          return new_func2
  
      else:
          raise TypeError(repr(type(reason)))
  
label_desc: Use image node_id 1 for calling a global function with example usage: pytorch_toolbelt_deprecated(reason) and returns: decorator, new_func1, new_func2, func1, func2