code: def has(cls):
      """
      Check whether *cls* is a class with *attrs* attributes.
  
      :param type cls: Class to introspect.
      :raise TypeError: If *cls* is not a class.
  
      :rtype: bool
      """
      attrs = getattr(cls, "__attrs_attrs__", None)
      if attrs is not None:
          return True
  
      # No attrs, maybe it's a specialized generic (A[str])?
      generic_base = get_generic_base(cls)
      if generic_base is not None:
          generic_attrs = getattr(generic_base, "__attrs_attrs__", None)
          if generic_attrs is not None:
              # Stick it on here for speed next time.
              cls.__attrs_attrs__ = generic_attrs
          return generic_attrs is not None
      return False
  
file_path: catboost/contrib/python/attrs/py3/attr/_funcs.py
imports: import copy
  from ._compat import PY_3_9_PLUS, get_generic_base
  from ._make import NOTHING, _obj_setattr, fields
  from .exceptions import AttrsAttributeNotFoundError
label_desc: Use image node_id 4 for calling a global function with example usage: has(cls) and returns: False, True, unknown