class_docstr: Provide an exponential moving window groupby implementation.
code: def __init__(self, obj, *args, _grouper=None, **kwargs) -> None:
      super().__init__(obj, *args, _grouper=_grouper, **kwargs)
  
      if not obj.empty and self.times is not None:
          # sort the times and recalculate the deltas according to the groups
          groupby_order = np.concatenate(
              list(self._grouper.indices.values())
          )
          self._deltas = _calculate_deltas(
              self.times.take(groupby_order),
              self.halflife,
          )
  
imports: from __future__ import annotations
  import datetime
  from functools import partial
  from textwrap import dedent
  from typing import TYPE_CHECKING
  import numpy
  from pandas._libs.tslibs import Timedelta
  import pandas._libs.window.aggregations
  from pandas.util._decorators import doc
  from pandas.core.dtypes.common import is_datetime64_dtype, is_numeric_dtype
  from pandas.core.dtypes.dtypes import DatetimeTZDtype
  from pandas.core.dtypes.generic import ABCSeries
  from pandas.core.dtypes.missing import isna
  from pandas.core import common
  from pandas.core.arrays.datetimelike import dtype_to_unit
  from pandas.core.indexers.objects import BaseIndexer, ExponentialMovingWindowIndexer, GroupbyIndexer
  from pandas.core.util.numba_ import get_jit_arguments, maybe_use_numba
  from pandas.core.window.common import zsqrt
  from pandas.core.window.doc import _shared_docs, create_section_header, kwargs_numeric_only, numba_notes, template_header, template_returns, template_see_also, window_agg_numba_parameters
  from pandas.core.window.numba_ import generate_numba_ewm_func, generate_numba_ewm_table_func
  from pandas.core.window.online import EWMMeanState, generate_online_numba_ewma_func
  from pandas.core.window.rolling import BaseWindow, BaseWindowGroupby
label_desc: Use image node_id 1 to create a new ExponentialMovingWindowGroupby object from inherited base classes: BaseWindowGroupby, ExponentialMovingWindow with example: obj = ExponentialMovingWindowGroupby(obj)