docs: def validate_locations(locations):
      """Validate an iterable with multiple lat/lon coordinate pairs.
  
      Returns
      -------
      list[list[float, float]] or list[list[list[float, float]]]
  
      """
      locations = if_pandas_df_convert_to_numpy(locations)
      try:
          iter(locations)
      except TypeError:
          raise TypeError('Locations should be an iterable with coordinate pairs,'
                          ' but instead got {!r}.'.format(locations))
      try:
          next(iter(locations))
      except StopIteration:
          raise ValueError('Locations is empty.')
      try:
          float(next(iter(next(iter(next(iter(locations)))))))
      except (TypeError, StopIteration):
          # locations is a list of coordinate pairs
          return [validate_location(coord_pair) for coord_pair in locations]
      else:
          # locations is a list of a list of coordinate pairs, recurse
          return [validate_locations(lst) for lst in locations]