code: def _is_col_list(columns, arg):
      """Returns True if arg looks like it's a list of columns or references to columns
      in df_input, and False otherwise (in which case it's assumed to be a single column
      or reference to a column).
      """
      if arg is None or isinstance(arg, str) or isinstance(arg, int):
          return False
      if isinstance(arg, pd.MultiIndex):
          return False  # just to keep existing behaviour for now
      try:
          iter(arg)
      except TypeError:
          return False  # not iterable
      for c in arg:
          if isinstance(c, str) or isinstance(c, int):
              if columns is None or c not in columns:
                  return False
          else:
              try:
                  iter(c)
              except TypeError:
                  return False  # not iterable
      return True
  
imports: import plotly.graph_objs
  import plotly.io
  from collections import namedtuple, OrderedDict
  from ._special_inputs import IdentityMap, Constant, Range
  from .trendline_functions import ols, lowess, rolling, expanding, ewm
  from _plotly_utils.basevalidators import ColorscaleValidator
  from plotly.colors import qualitative, sequential
  import math
  from packaging import version
  import pandas
  import numpy
  from plotly._subplots import make_subplots, _set_trace_grid_reference, _subplot_type_for_trace_type
label_desc: Use image node_id 25 for calling a global function with example usage: _is_col_list(columns, arg) and returns: True, False, False, False, False, False