code: def _convert_col_names_to_str_in_place(
      df: pd.DataFrame,
      x_column: str | None,
      y_column_list: List[str],
      color_column: str | None,
      size_column: str | None,
  ) -> Tuple[str | None, List[str], str | None, str | None]:
      """Converts column names to strings, since Vega-Lite does not accept ints, etc."""
      column_names = list(
          df.columns
      )  # list() converts RangeIndex, etc, to regular list.
      str_column_names = [str(c) for c in column_names]
      df.columns = pd.Index(str_column_names)
  
      return (
          None if x_column is None else str(x_column),
          [str(c) for c in y_column_list],
          None if color_column is None else str(color_column),
          None if size_column is None else str(size_column),
      )
  
imports: from __future__ import annotations
  from contextlib import nullcontext
  from datetime import date
  from enum import Enum
  from typing import TYPE_CHECKING, Any, Collection, Dict, List, Sequence, Tuple, cast
  import pandas
  from pandas.api.types import infer_dtype, is_integer_dtype
  from typing_extensions import Literal
  import streamlit.elements.arrow_vega_lite
  from streamlit import type_util
  from streamlit.color_util import Color, is_color_like, is_color_tuple_like, is_hex_color_like, to_css_color
  from streamlit.elements.altair_utils import AddRowsMetadata
  from streamlit.elements.arrow import Data
  from streamlit.elements.utils import last_index_for_melted_dataframes
  from streamlit.errors import Error, StreamlitAPIException
  from streamlit.proto.ArrowVegaLiteChart_pb2 import ArrowVegaLiteChart
  from streamlit.runtime.metrics_util import gather_metrics
label_desc: Use image node_id 8 for calling a global function with example usage: _convert_col_names_to_str_in_place(df, x_column, y_column_list, color_column, size_column) and returns: unknown,  unknown,  unknown,  unknown