code: def get_component_name(obj):
      """
      Return the human-readable name of the class of `obj`.
      Document the type of a config field and can be used as a Union value
      in a json config.
      """
      if obj is type(None):
          return None
      if not hasattr(obj, "__module__"):  # builtins
          return obj.__class__.__name__
      if obj.__module__ == "typing":
          return str(obj)[7:]
      if hasattr(obj, "__qualname__"):  # Class name unaltered by meta
          ret = obj.__qualname__
      elif hasattr(obj, "__name__"):
          ret = obj.__name__
      else:
          ret = obj.__class__.__name__
      if ret.endswith(".Config"):
          return obj.__COMPONENT__.__name__
      return ret
  
imports: import collections
  import enum
  from typing import Any, Dict, List, Tuple, Type, Union
  import torch
  from pytext.utils.usage import log_class_usage
  from .pytext_config import ConfigBase, PyTextConfig
label_desc: Use image node_id 14 for calling a global function with example usage: get_component_name(obj) and returns: ret, None, obj, str, obj