          self.stats = self.get_raw()
          self.get_calculations()
          self.remove_raw()
          logger.debug("Refreshed")
  
      def get_raw(self):
          """ Add raw data to stats dict """
          logger.debug("Getting Raw Data")
 
</s> remove             return
 </s> add             return None </s> remove         else:
            logger.debug("Getting Popup from background Thread")
            self.display_data = self.thread.get_result()
            self.thread = None
            if not self.check_valid_data():
                logger.warning("No valid data to display. Not refreshing")
                self.vars["status"].set("")
                return False
            logger.debug("Compiled Display Data")
            self.vars["buildgraph"].set(True)
 </s> add 
        return self
          self.stats = self.get_raw()
          self.get_calculations()
          self.remove_raw()
          logger.debug("Refreshed")
        return self
  
      def get_raw(self):
          """ Add raw data to stats dict """
          logger.debug("Getting Raw Data")
keep keep keep add keep keep keep keep
 GUI responsiveness and feature updates

- Add error handling to LongRunningTask
- Analysis: Fix timestats bug for missing session data
- Training: Update training graph inside LongRunningTask
- Training: Smoothing Amount Slider geometry fix
- Training: Auto update Analysis tab on training start and save interval
- Scripts: Keep control of the UI when terminating by terminating using LongRunningTask 
lib/gui/stats.py