                  # Don't show graph icon for non-existent sessions
                  kwargs["image"] = get_images().icons["graph"]
              if values[0] == "Total":
                  kwargs["tags"] = "total"
              self.tree.insert("", "end", **kwargs)
  
      def tree_clear(self):
          """ Clear the totals tree """
          logger.debug("Clearing treeview data")
          try:
 
</s> remove             if self.check_valid_data(values):
 </s> add             if self._check_valid_data(values): </s> remove         """ Clear the totals tree """
 </s> add         """ Clear all of the summary data from the tree-view. """ </s> remove             values = [item[column] for column in self.columns]
 </s> add             values = [item[column] for column in self._columns] </s> remove             self.tree.delete(* self.tree.get_children())
            self.tree.configure(height=1)
 </s> add             self._tree.delete(* self._tree.get_children())
            self._tree.configure(height=1) </s> remove         self.tree.configure(height=len(sessions_summary))
 </s> add         self._tree.configure(height=len(sessions_summary))
            self._tree.insert("", "end", **kwargs)
                  # Don't show graph icon for non-existent sessions
                  kwargs["image"] = get_images().icons["graph"]
              if values[0] == "Total":
                  kwargs["tags"] = "total"
            self._tree.insert("", "end", **kwargs)
  
      def tree_clear(self):
          """ Clear the totals tree """
          logger.debug("Clearing treeview data")
          try:
keep keep keep keep replace keep keep keep keep keep
 GUI - Stats optimization (#1067)

* Faster stat loading + caching

* Compress data in cache

* Optimize some calculations

* Vectorize smoothing

* stats.Calculations optimized

* Load latest training data from live iterator

* Add options to training graph 
lib/gui/display_analysis.py