          """
          if self._per_session_stats is None:
              logger.debug("Collating per session stats")
              compiled = []
              for session_id, ts_data in self._time_stats.items():
                  logger.debug("Compiling session ID: %s", session_id)
                  if self._state is None:
                      logger.debug("Session state dict doesn't exist. Most likely task has been "
                                   "terminated during compilation")
                      return
 
</s> remove                 compiled.append(self._collate_stats(session_id, ts_data))
 </s> add                 compiled.append(self._collate_stats(session_id)) </s> remove     def _get_time_stats(self):
 </s> add     def _get_time_stats(self) -> None: </s> remove     def logging_disabled(self):
 </s> add     def logging_disabled(self) -> bool: </s> remove     def _load_state_file(self):
 </s> add     def _load_state_file(self) -> None: </s> remove     def __init__(self, session_id, data_points):
 </s> add     def __init__(self, session_id: int, data_points: int) -> None:
            for session_id in self._time_stats:
          """
          if self._per_session_stats is None:
              logger.debug("Collating per session stats")
              compiled = []
            for session_id in self._time_stats:
                  logger.debug("Compiling session ID: %s", session_id)
                  if self._state is None:
                      logger.debug("Session state dict doesn't exist. Most likely task has been "
                                   "terminated during compilation")
                      return
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