              if key.startswith("raw"):
                  del self._stats[key]
          logger.debug("Removed Raw Data from output")
  
      def _calc_rate(self):
          """ Calculate rate per iteration.
  
          Returns
          -------
          :class:`numpy.ndarray`
 
</s> remove     def _calc_rate_total(cls):
 </s> add     def _calc_rate_total(cls) -> np.ndarray: </s> remove     def _remove_raw(self):
 </s> add     def _remove_raw(self) -> None: </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 __call__(self):
 </s> add     def __call__(self) -> np.ndarray: </s> remove     def _get_max_row_size(self):
 </s> add     def _get_max_row_size(self) -> int:
    def _calc_rate(self) -> np.ndarray:
              if key.startswith("raw"):
                  del self._stats[key]
          logger.debug("Removed Raw Data from output")
  
    def _calc_rate(self) -> np.ndarray:
          """ Calculate rate per iteration.
  
          Returns
          -------
          :class:`numpy.ndarray`
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