                  if self._state is None:
                      logger.debug("Session state dict doesn't exist. Most likely task has been "
                                   "terminated during compilation")
                      return
                  compiled.append(self._collate_stats(session_id, ts_data))
  
              self._per_session_stats = list(sorted(compiled, key=lambda k: k["session"]))
  
          elif self._session.is_training:
              logger.debug("Collating per session stats for latest training data")
 
</s> remove             for session_id, ts_data in self._time_stats.items():
 </s> add             for session_id in self._time_stats: </s> remove     def _get_time_stats(self):
 </s> add     def _get_time_stats(self) -> None: </s> remove                 self._per_session_stats.append(self._collate_stats(session_id, ts_data))
 </s> add                 self._per_session_stats.append(self._collate_stats(session_id)) </s> remove     def get_summary_stats(self):
 </s> add     def get_summary_stats(self) -> List[dict]: </s> remove     def __init__(self):
 </s> add     def __init__(self) -> None:
                compiled.append(self._collate_stats(session_id))
                  if self._state is None:
                      logger.debug("Session state dict doesn't exist. Most likely task has been "
                                   "terminated during compilation")
                      return
                compiled.append(self._collate_stats(session_id))
  
              self._per_session_stats = list(sorted(compiled, key=lambda k: k["session"]))
  
          elif self._session.is_training:
              logger.debug("Collating per session stats for latest training data")
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