code: def read_redo_file(self, redo_file):
          
          if not self.clear_interpretations():
              return
          print("-I- read redo file and processing new bounds")
          fin = open(redo_file, 'r')
  
          new_s = ""
          for Line in fin.read().splitlines():
              line = Line.split('\t')
              specimen = line[0]
              if specimen.startswith("current_"):
                  specimen = specimen.lstrip("current_")
                  new_s = specimen
                  if len(line) < 6:
                      continue
  
              if len(line) < 6:
                  print(("insuffecent data for specimen %s and fit %s" %
                         (line[0], line[4])))
                  continue
              if len(line) == 6:
                  line.append('g')
              if specimen not in self.specimens:
                  print(
                      ("specimen %s not found in this data set and will be ignored" % (specimen)))
                  continue
  
              tmin, tmax = self.parse_bound_data(line[2], line[3], specimen)
              new_fit = self.add_fit(
                  specimen, line[4], tmin, tmax, line[1], line[5])
  
              if line[6] == 'b' and new_fit != None:
                  self.bad_fits.append(new_fit)
  
          fin.close()
  
          if new_s != "":
              self.select_specimen(new_s)
          if (self.s not in self.pmag_results_data['specimens']) or (not self.pmag_results_data['specimens'][self.s]):
              self.current_fit = None
          else:
              self.current_fit = self.pmag_results_data['specimens'][self.s][-1]
          self.calculate_high_levels_data()
          if self.ie_open:
              self.ie.update_editor()
          self.update_selection()
docs: Reads a .redo formated file and replaces all current interpretations
          with interpretations taken from the .redo file
  
          Parameters
          ----------
          redo_file : path to .redo file to read