          toplevel = SessionPopUp(self.session.modeldir,
                                  self.session.modelname,
                                  self.selected_id.get())
          toplevel.title(self.data_popup_title())
          toplevel.tk.call('wm', 'iconphoto', toplevel._w, get_images().icons["favicon"])
          position = self.data_popup_get_position()
          height = int(720 * scaling_factor)
          width = int(400 * scaling_factor)
          toplevel.geometry("{}x{}+{}+{}".format(str(height),
                                                 str(width),
 
</s> remove                                 self.selected_id.get())
 </s> add                                 self.selected_id.get(),
                                datapoints) </s> remove     def data_popup(self):
        """ Pop up a window and control it's position """
 </s> add             The default view is rolling average over 500 points.
            If there are fewer data points than this, switch the default
            to raw
        """
        get_config().set_cursor_busy()
        get_config().root.update_idletasks() </s> remove         message = "{}  |  {}  |  {}  |  {}".format(processtime,
                                                   tqdm["rte"],
                                                   tqdm["itm"],
                                                   tqdm["pct"])

        current, total = tqdm["itm"].split("/")
        position = int((float(current) / float(total)) * 1000)
 </s> add         message = "{}{}  |  {}  |  {}  |  {}".format(description,
                                                     processtime,
                                                     tqdm["rte"],
                                                     tqdm["itm"],
                                                     tqdm["pct"])

        position = tqdm["pct"].replace("%", "")
        position = int(position) if position.isdigit() else 0 </s> remove             batchsize = self.session.total_batchsize[sess_idx]
 </s> add             batchsize = self.session.total_batchsize.get(sess_idx, 0)
        toplevel.tk.call(
            'wm',
            'iconphoto',
            toplevel._w, get_images().icons["favicon"])  # pylint:disable=protected-access
          toplevel = SessionPopUp(self.session.modeldir,
                                  self.session.modelname,
                                  self.selected_id.get())
          toplevel.title(self.data_popup_title())
        toplevel.tk.call(
            'wm',
            'iconphoto',
            toplevel._w, get_images().icons["favicon"])  # pylint:disable=protected-access
          position = self.data_popup_get_position()
          height = int(720 * scaling_factor)
          width = int(400 * scaling_factor)
          toplevel.geometry("{}x{}+{}+{}".format(str(height),
                                                 str(width),
keep keep keep keep replace 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