code: def validate_index(index_vals):
      """
      Validates if a list contains all numbers or all strings
  
      :raises: (PlotlyError) If there are any two items in the list whose
          types differ
      """
      from numbers import Number
  
      if isinstance(index_vals[0], Number):
          if not all(isinstance(item, Number) for item in index_vals):
              raise exceptions.PlotlyError(
                  "Error in indexing column. "
                  "Make sure all entries of each "
                  "column are all numbers or "
                  "all strings."
              )
  
      elif isinstance(index_vals[0], str):
          if not all(isinstance(item, str) for item in index_vals):
              raise exceptions.PlotlyError(
                  "Error in indexing column. "
                  "Make sure all entries of each "
                  "column are all numbers or "
                  "all strings."
              )
  
file_path: plotly.py/packages/python/plotly/plotly/figure_factory/utils.py
imports: from collections.abc import Sequence
  from plotly import exceptions
  from plotly.colors import DEFAULT_PLOTLY_COLORS, PLOTLY_SCALES, color_parser, colorscale_to_colors, colorscale_to_scale, convert_to_RGB_255, find_intermediate_color, hex_to_rgb, label_rgb, n_colors, unconvert_from_RGB_255, unlabel_rgb, validate_colors, validate_colors_dict, validate_colorscale, validate_scale_values
label_desc: Use image node_id 2 for calling a global function with example usage: validate_index(index_vals) without return types