code: def wrapped_groupby(
      obj,
      by=None,
      axis=0,
      level=None,
      as_index=True,
      sort=True,
      group_keys=_default_group_keys,
      squeeze=False,
      observed=False,
      dropna=True,
  ):
      groupby_kw = dict(
          by=by,
          axis=axis,
          level=level,
          as_index=as_index,
          sort=sort,
          group_keys=group_keys,
          squeeze=squeeze,
          observed=observed,
          dropna=dropna,
      )
      if not _HAS_SQUEEZE:  # pragma: no branch
          groupby_kw.pop("squeeze")
      if not _HAS_DROPNA:  # pragma: no branch
          groupby_kw.pop("dropna")
  
      groupby_obj = obj.groupby(**groupby_kw)
      return GroupByWrapper(
          obj, groupby_obj=groupby_obj, as_index=as_index
      )
  
imports: import sys
  from collections.abc import Iterable
  import cloudpickle
  import numpy
  from pandas.core.groupby import DataFrameGroupBy, SeriesGroupBy
  from ..utils import estimate_pandas_size, pd_release_version, no_default
label_desc: Use image node_id 1 for calling a global function with example usage: wrapped_groupby(obj, by, axis, level, as_index, sort, group_keys, squeeze, observed, dropna) and returns: GroupByWrapper