code: def read_times(self, filename=None):
          
          filename = get_default(filename, self.filename)
          fd = pt.openFile(filename, mode='r')
  
          steps = sorted(int(name[4:]) for name in fd.root._v_groups.keys()
                         if name.startswith('step'))
          times = []
          nts = []
          for step in steps:
              ts_group = fd.getNode(fd.root, 'step%d/ts' % step)
  
              times.append(ts_group.t.read())
              nts.append(ts_group.nt.read())
          fd.close()
  
          steps = nm.asarray(steps, dtype=nm.int32)
          times = nm.asarray(times, dtype=nm.float64)
          nts = nm.asarray(nts, dtype=nm.float64)
  
          return steps, times, nts
docs: Read true time step data from individual time steps.
  
          Returns
          -------
          steps : array
              The time steps.
          times : array
              The times of the time steps.
          nts : array
              The normalized times of the time steps, in [0, 1].