class_docstr: Handles metadata supplied in configuration files.
class_docstr_tok: ["Handles","metadata","supplied","in","configuration","files","."]
docstr: this function will wrap around parameters that are deprecated
  
  :param msg: deprecation message
  :param func: function to be wrapped around
docstr_tok: ["this","function","will","wrap","around","parameters","that","are","deprecated",":","param","msg",":","deprecation","message",":","param","func",":","function","to","be","wrapped","around"]
code: def _deprecated_config_handler(self, func, msg, **kw):
      """this function will wrap around parameters that are deprecated
  
      :param msg: deprecation message
      :param func: function to be wrapped around
      """
  
      @wraps(func)
      def config_handler(*args, **kwargs):
          kw.setdefault("stacklevel", 2)
          _DeprecatedConfig.emit(
              "Deprecated config in `setup.cfg`", msg, **kw
          )
          return func(*args, **kwargs)
  
      return config_handler
  
imports: import contextlib
  import functools
  import os
  from collections import defaultdict
  from functools import partial
  from functools import wraps
  from typing import TYPE_CHECKING, Callable, Any, Dict, Generic, Iterable, List, Optional, Set, Tuple, TypeVar, Union
  from ..errors import FileError, OptionError
  from ..extern.packaging.markers import default_environment
  from ..extern.packaging.requirements import InvalidRequirement, Requirement
  from ..extern.packaging.specifiers import SpecifierSet
  from ..extern.packaging.version import InvalidVersion, Version
  from ..warnings import SetuptoolsDeprecationWarning
  from .None import expand
label_desc: Use image node_id 16 for calling the ConfigHandler obj's underlying member method code with example usage: obj._deprecated_config_handler(func, msg) and returns: config_handler, func