class_docstr: Creates a dummy class or function that returns the class/fun it is deprecated by,
          along with a warning
  
      Loosely adapted from https://github.com/scikit-learn/scikit-learn/blob/master/sklearn/utils/deprecation.py
          but we want to return the new class or function here instead.
  
  Example
  -------
  # New function renaming old_fun
  def fun(msg='hello'):
      pass
  
  # Old fun will return fun but issue a deprecation warning
  old_fun = DefineDeprecated('f', fun)
  
  >>> f()
  DeprecationWarning: f is deprecated, use fun instead.
code: def _wrap_fun(cls, deprecated_name, use_instead, msg):
      def wrapped(*args, **kwargs):
          warning = f"{deprecated_name} is deprecated, use {use_instead.__name__} instead."
          if msg:
              warning += "\n" + {msg}
  
          warnings.warn(warning, DeprecationWarning)
  
          return use_instead(*args, **kwargs)
  
      wrapped.__name__ = deprecated_name
      return wrapped
  
imports: import warnings
label_desc: Use image node_id 2 for calling the DefineDeprecated obj's underlying member method code with example usage: obj._wrap_fun(cls, deprecated_name, use_instead, msg) and returns: wrapped, use_instead