code: def _get_dtype(arr_or_dtype):
      
  
      if arr_or_dtype is None:
          raise TypeError("Cannot deduce dtype from null object")
  
      # fastpath
      elif isinstance(arr_or_dtype, np.dtype):
          return arr_or_dtype
      elif isinstance(arr_or_dtype, type):
          return np.dtype(arr_or_dtype)
  
      # if we have an array-like
      elif hasattr(arr_or_dtype, 'dtype'):
          arr_or_dtype = arr_or_dtype.dtype
  
      return pandas_dtype(arr_or_dtype)
docs: Get the dtype instance associated with an array
      or dtype object.
  
      Parameters
      ----------
      arr_or_dtype : array-like
          The array-like or dtype object whose dtype we want to extract.
  
      Returns
      -------
      obj_dtype : The extract dtype instance from the
                  passed in array or dtype object.
  
      Raises
      ------
      TypeError : The passed in object is None.