code: def _calc_data_alphas(cls, op: "DataFrameEwmAgg", in_data, order):
      exec_cache = cls._exec_cache[op.key]
      cache_key = ("_calc_data_alphas", order, id(in_data))
      try:
          return exec_cache[cache_key]
      except KeyError:
          pass
  
      cum_df = in_data.copy()
      cum_df[cum_df.notna()] = 1
      if not op.alpha_ignore_na:
          cum_df.ffill(inplace=True)
      cum_df = cum_df.cumsum(axis=op.axis) - 1
      if not op.alpha_ignore_na:
          cum_df[in_data.isna()] = np.nan
  
      result = exec_cache[cache_key] = (1 - op.alpha) ** (
          order * cum_df
      )
      return result
  
imports: from collections import namedtuple
  import numpy
  import pandas
  from ....None import opcodes
  from ....serialization.serializables import BoolField, Float64Field
  from ..aggregation import BaseDataFrameExpandingAgg
label_desc: Use image node_id 7 for calling the DataFrameEwmAgg obj's underlying member method code with example usage: obj._calc_data_alphas(cls, op, in_data, order) and returns: result, exec_cache