              return
          Session.initialize_session(model_dir, model_name, is_training=False)
          msg = full_path
          if len(msg) > 70:
              msg = "...{}".format(msg[-70:])
          self._set_session_summary(msg)
  
      def _reset_session(self):
          """ Reset currently training sessions. Clears the current session and loads in the latest
          data. """
 
</s> remove         return "{} - {}".format(title, model_dir)

    def _data_popup_get_position(self):
        """ Get the position of the next window to pop the summary graph to.

        Returns
        -------
        list
            The [x, y] co-ordinates that the pop up window should be placed at
        """
        logger.debug("getting poup position")
        init_pos = [120, 120]
        pos = init_pos
        while True:
            if pos not in self._popup_positions:
                self._popup_positions.append(pos)
                break
            pos = [item + 200 for item in pos]
            init_pos, pos = self._data_popup_check_boundaries(init_pos, pos)
        logger.debug("Position: %s", pos)
        return pos

    def _data_popup_check_boundaries(self, initial_position, position):
        """ Check that the popup remains within the screen boundaries.

        Parameters
        ----------
        initial_position: list
            The [x, y] position of the last displayed popup window
        position: list
            The requested [x, y] position for the new popup window

        Returns
        -------
        tuple
            The original initial_position and position, adjusted if the new window would go out of
            bounds
        """
        logger.debug("Checking poup boundaries: (initial_position: %s, position: %s)",
                     initial_position, position)
        boundary_x = self.winfo_screenwidth() - 120
        boundary_y = self.winfo_screenheight() - 120
        if position[0] >= boundary_x or position[1] >= boundary_y:
            initial_position = [initial_position[0] + 50, initial_position[1]]
            position = initial_position
        logger.debug("Returning poup boundaries: (initial_position: %s, position: %s)",
                     initial_position, position)
        return initial_position, position
 </s> add         return f"{title} - {model_dir}" </s> remove             title = "{} Model: Session #{}".format(model_name.title(), selected_id)
 </s> add             title = f"{model_name.title()} Model: Session #{selected_id}" </s> remove         toplevel.geometry("{}x{}+{}+{}".format(str(height),
                                               str(width),
                                               str(position[0]),
                                               str(position[1])))
 </s> add         toplevel.geometry(f"{height}x{width}+{offset[0]}+{offset[1]}")
 </s> remove         logs_dir = os.path.join(model_dir, "{}_logs".format(model_name))
 </s> add         logs_dir = os.path.join(model_dir, f"{model_name}_logs") </s> remove             cmd = getattr(self._parent, "_{}_session".format(btntype))
 </s> add             cmd = getattr(self._parent, f"_{btntype}_session")
            msg = f"...{msg[-70:]}"
              return
          Session.initialize_session(model_dir, model_name, is_training=False)
          msg = full_path
          if len(msg) > 70:
            msg = f"...{msg[-70:]}"
          self._set_session_summary(msg)
  
      def _reset_session(self):
          """ Reset currently training sessions. Clears the current session and loads in the latest
          data. """
keep keep keep keep replace keep keep keep keep keep
 Graph popup - Always open in same position 
lib/gui/display_analysis.py