code: def _convert_by(by):
      if by is None:
          by = []
      elif (
          is_scalar(by)
          or isinstance(by, (np.ndarray, Index, ABCSeries, Grouper))
          or hasattr(by, "__call__")
      ):
          by = [by]
      else:
          by = list(by)
      return by
  
imports: import numpy
  from pandas.compat import lrange, range, zip
  from pandas.util._decorators import Appender, Substitution
  from pandas.core.dtypes.cast import maybe_downcast_to_dtype
  from pandas.core.dtypes.common import is_integer_dtype, is_list_like, is_scalar
  from pandas.core.dtypes.generic import ABCDataFrame, ABCSeries
  from pandas import compat
  import pandas.core.common
  from pandas.core.frame import _shared_docs
  from pandas.core.groupby import Grouper
  from pandas.core.index 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 6 for calling a global function with example usage: _convert_by(by) and returns: by