          retval = np.array(rate)
          logger.debug("Calculated totals rate: Item_count: %s", len(retval))
          return retval
  
      def _get_calculations(self):
          """ Perform the required calculations and populate :attr:`stats`. """
          for selection in self._selections:
              if selection == "raw":
                  continue
              logger.debug("Calculating: %s", selection)
 
</s> remove     def _calc_rate_total(cls):
 </s> add     def _calc_rate_total(cls) -> np.ndarray: </s> remove         return _ExponentialMovingAverage(data, self._args["smooth_amount"])()
 </s> add         retval = _ExponentialMovingAverage(data, self._args["smooth_amount"])()
        logger.debug("Calculated Smoothed data: shape: %s", retval.shape)
        return retval </s> remove     def _ewma_vectorized_safe(self):
 </s> add     def _ewma_vectorized_safe(self) -> None: </s> remove     def set_iterations_limit(self, limit):
 </s> add     def set_iterations_limit(self, limit: int) -> None: </s> remove     def _get_time_stats(self):
 </s> add     def _get_time_stats(self) -> None:
    def _get_calculations(self) -> None:
          retval = np.array(rate)
          logger.debug("Calculated totals rate: Item_count: %s", len(retval))
          return retval
  
    def _get_calculations(self) -> None:
          """ Perform the required calculations and populate :attr:`stats`. """
          for selection in self._selections:
              if selection == "raw":
                  continue
              logger.debug("Calculating: %s", selection)
keep keep keep keep replace keep keep keep keep keep
 Bugfixes:
  - Stats graph - Handle NaNs in data
  - logger - de-elevate matplotlib font messages 
lib/gui/analysis/stats.py