docs: def seek(self, recIndex):
          """Seek to the beginning of the record identified by its
          record index. A succeeding read will load this record in
          memory.
  
          Args::
  
            recIndex  index of the record in the vdata; numbering
                      starts at 0. Legal values range from 0
                      (start of vdata) to the current number of
                      records (at end of vdata).
  
          Returns::
  
            record index
  
          An exception is raised if an attempt is made to seek beyond the
          last record.
  
          The C API prohibits seeking past the next-to-last record,
          forcing one to read the last record to advance to the end
          of the vdata. The python API removes this limitation.
  
          Seeking to the end of the vdata can also be done by calling
          method ``seekend()``.
  
          C library equivalent : VSseek
                                                  """
  
          if recIndex > self._nrecs - 1:
              if recIndex == self._nrecs:
                  return self.seekend()
              else:
                  raise HDF4Error("attempt to seek past last record")
          n = _C.VSseek(self._id, recIndex)
          _checkErr('seek', n, 'cannot seek')
          self._offset = n
          return n