code: def _make_getattr(mod_name: str) -> Callable:
      """
      Create a metadata proxy for packaging information that uses *mod_name* in
      its warnings and errors.
      """
  
      def __getattr__(name: str) -> str:
          dunder_to_metadata = {
              "__title__": "Name",
              "__copyright__": "",
              "__version__": "version",
              "__version_info__": "version",
              "__description__": "summary",
              "__uri__": "",
              "__url__": "",
              "__author__": "",
              "__email__": "",
              "__license__": "license",
          }
          if name not in dunder_to_metadata:
              msg = f"module {mod_name} has no attribute {name}"
              raise AttributeError(msg)
  
          import sys
          import warnings
  
          if sys.version_info < (3, 8):
              from importlib_metadata import metadata
          else:
              from importlib.metadata import metadata
  
          if name not in ("__version__", "__version_info__"):
              warnings.warn(
                  f"Accessing {mod_name}.{name} is deprecated and will be "
                  "removed in a future release. Use importlib.metadata directly "
                  "to query for attrs's packaging metadata.",
                  DeprecationWarning,
                  stacklevel=2,
              )
  
          meta = metadata("attrs")
          if name == "__license__":
              return "MIT"
          if name == "__copyright__":
              return "Copyright (c) 2015 Hynek Schlawack"
          if name in ("__uri__", "__url__"):
              return meta["Project-URL"].split(" ", 1)[-1]
          if name == "__version_info__":
              return VersionInfo._from_version_string(meta["version"])
          if name == "__author__":
              return meta["Author-email"].rsplit(" ", 1)[0]
          if name == "__email__":
              return meta["Author-email"].rsplit("<", 1)[1][:-1]
  
          return meta[dunder_to_metadata[name]]
  
      return __getattr__
  
file_path: catboost/contrib/python/attrs/py3/attr/__init__.py
imports: from functools import partial
  from typing import Callable
  from .None import converters, exceptions, filters, setters, validators
  from ._cmp import cmp_using
  from ._compat import Protocol
  from ._config import get_run_validators, set_run_validators
  from ._funcs import asdict, assoc, astuple, evolve, has, resolve_types
  from ._make import NOTHING, Attribute, Factory, attrib, attrs, fields, fields_dict, make_class, validate
  from ._next_gen import define, field, frozen, mutable
  from ._version_info import VersionInfo
label_desc: Use image node_id 1 for calling a global function with example usage: _make_getattr(mod_name) and returns: __getattr__, meta, str, str, meta, VersionInfo, meta, meta