code: def _maybe_reset_index_in_place(
      df: pd.DataFrame, x_column: str | None, y_column_list: List[str]
  ) -> str | None:
      if x_column is None and len(y_column_list) > 0:
          if df.index.name is None:
              # Pick column name that is unlikely to collide with user-given names.
              x_column = SEPARATED_INDEX_COLUMN_NAME
          else:
              # Reuse index's name for the new column.
              x_column = df.index.name
  
          df.index.name = x_column
          df.reset_index(inplace=True)
  
      return x_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 5 for calling a global function with example usage: _maybe_reset_index_in_place(df, x_column, y_column_list) and returns: x_column