code: def _get_names(arrs, names, prefix: str = "row"):
      if names is None:
          names = []
          for i, arr in enumerate(arrs):
              if isinstance(arr, ABCSeries) and arr.name is not None:
                  names.append(arr.name)
              else:
                  names.append(f"{prefix}_{i}")
      else:
          if len(names) != len(arrs):
              raise AssertionError(
                  "arrays and names must have the same length"
              )
          if not isinstance(names, list):
              names = list(names)
  
      return names
  
imports: from __future__ import annotations
  from collections.abc import Hashable, Sequence
  from typing import TYPE_CHECKING, Callable, Literal, cast
  import warnings
  import numpy
  from pandas._libs import lib
  from pandas.util._decorators import Appender, Substitution
  from pandas.util._exceptions import find_stack_level
  from pandas.core.dtypes.cast import maybe_downcast_to_dtype
  from pandas.core.dtypes.common import is_list_like, is_nested_list_like, is_scalar
  from pandas.core.dtypes.dtypes import ExtensionDtype
  from pandas.core.dtypes.generic import ABCDataFrame, ABCSeries
  import pandas.core.common
  from pandas.core.frame import _shared_docs
  from pandas.core.groupby import Grouper
  from pandas.core.indexes.api import Index, MultiIndex, get_objs_combined_axis
  from pandas.core.reshape.concat import concat
  from pandas.core.reshape.util import cartesian_product
  from pandas.core.series import Series
label_desc: Use image node_id 11 for calling a global function with example usage: _get_names(arrs, names, prefix) and returns: names