code: def raise_assert_detail(
      obj,
      message,
      left,
      right,
      diff=None,
      first_diff=None,
      index_values=None,
  ):
      __tracebackhide__ = True
  
      msg = f"""{obj} are different
  
  {message}"""
  
      if isinstance(index_values, np.ndarray):
          msg += f"\n[index]: {pprint_thing(index_values)}"
  
      if isinstance(left, np.ndarray):
          left = pprint_thing(left)
      elif isinstance(
          left, (CategoricalDtype, PandasDtype, StringDtype)
      ):
          left = repr(left)
  
      if isinstance(right, np.ndarray):
          right = pprint_thing(right)
      elif isinstance(
          right, (CategoricalDtype, PandasDtype, StringDtype)
      ):
          right = repr(right)
  
      msg += f"""
  [left]:  {left}
  [right]: {right}"""
  
      if diff is not None:
          msg += f"\n[diff]: {diff}"
  
      if first_diff is not None:
          msg += f"\n{first_diff}"
  
      raise AssertionError(msg)
  
imports: from __future__ import annotations
  import operator
  from typing import Literal, cast
  import numpy
  from pandas._libs.missing import is_matching_na
  from pandas._libs.sparse import SparseIndex
  import pandas._libs.testing
  from pandas._libs.tslibs.np_datetime import compare_mismatched_resolutions
  from pandas.core.dtypes.common import is_bool, is_categorical_dtype, is_extension_array_dtype, is_integer_dtype, is_interval_dtype, is_number, is_numeric_dtype, needs_i8_conversion
  from pandas.core.dtypes.dtypes import CategoricalDtype, DatetimeTZDtype, PandasDtype
  from pandas.core.dtypes.missing import array_equivalent
  import pandas
  from pandas import Categorical, DataFrame, DatetimeIndex, Index, IntervalIndex, MultiIndex, PeriodIndex, RangeIndex, Series, TimedeltaIndex
  from pandas.core.algorithms import take_nd
  from pandas.core.arrays import DatetimeArray, ExtensionArray, IntervalArray, PeriodArray, TimedeltaArray
  from pandas.core.arrays.datetimelike import DatetimeLikeArrayMixin
  from pandas.core.arrays.string_ import StringDtype
  from pandas.core.indexes.api import safe_sort_index
  from pandas.io.formats.printing import pprint_thing
label_desc: Use image node_id 14 for calling a global function with example usage: raise_assert_detail(obj, message, left, right, diff, first_diff, index_values) without return types