code: def safe_cast_to_index(array: Any) -> pd.Index:
      
      if isinstance(array, pd.Index):
          index = array
      elif hasattr(array, 'to_index'):
          index = array.to_index()
      else:
          kwargs = {}
          if hasattr(array, 'dtype') and array.dtype.kind == 'O':
              kwargs['dtype'] = object
          index = pd.Index(np.asarray(array), **kwargs)
      return _maybe_cast_to_cftimeindex(index)
docs: Given an array, safely cast it to a pandas.Index.
  
      If it is already a pandas.Index, return it unchanged.
  
      Unlike pandas.Index, if the array has dtype=object or dtype=timedelta64,
      this function will not attempt to do automatic type conversion but will
      always return an index with dtype=object.