          # Reload the state file to get approx currently training iterations
          self.session.load_state_file()
          self.set_session_summary(msg)
  
      def set_session_summary(self, message):
          """ Set the summary data and info message """
          logger.debug("Setting session summary. (message: '%s')", message)
          self.summary = self.session.full_summary
          self.set_info("Session: {}".format(message))
 
</s> remove         return self.state["sessions"][str(session_id)]["iterations"]
 </s> add         session = self.state["sessions"].get(str(session_id), None)
        if session is None:
            logger.warning("No session data found for session id: %s", session_id)
            return 0
        return session["iterations"] </s> remove         session = get_config().session
 </s> add         session = get_config()().session
        get_config().set_cursor_default()
          # Reload the state file to get approx currently training iterations
          self.session.load_state_file()
          self.set_session_summary(msg)
        get_config().set_cursor_default()
  
      def set_session_summary(self, message):
          """ Set the summary data and info message """
          logger.debug("Setting session summary. (message: '%s')", message)
          self.summary = self.session.full_summary
          self.set_info("Session: {}".format(message))
keep keep add keep keep keep keep keep keep
 GUI Fixups

- Analysis: Handle missing session Ids
- Analysis: Handle invalid data selections
- Analysis: Don't update graph on check box selection
- Analysis: Add cursor events to analysis tab
- Analysis: Change default graph view
- Training: Prevent GUI from attempting to close graphs which do not exist
- Extract/Convert: Make file extensions case-insensitive for preview
- Progress bar: Make compatible for downloads
- Progress bar: Add TQDM Description to progress bar stats text 
lib/gui/display_analysis.py