'Lazily load a single HDU from the fileobj or data string the `HDUList`
was opened from, unless no further HDUs are found.
Returns True if a new HDU was loaded, or False otherwise.'

def _read_next_hdu(self):

    if self._read_all:
        return False
    saved_compression_enabled = compressed.COMPRESSION_ENABLED
    (fileobj, data, kwargs) = (self._file, self._data, self._open_kwargs)
    if ((fileobj is not None) and fileobj.closed):
        return False
    try:
        self._in_read_next_hdu = True
        if (('disable_image_compression' in kwargs) and kwargs['disable_image_compression']):
            compressed.COMPRESSION_ENABLED = False
        try:
            if (fileobj is not None):
                try:
                    if (len(self) > 0):
                        last = self[(len(self) - 1)]
                        if (last._data_offset is not None):
                            offset = (last._data_offset + last._data_size)
                            fileobj.seek(offset, os.SEEK_SET)
                    hdu = _BaseHDU.readfrom(fileobj, **kwargs)
                except EOFError:
                    self._read_all = True
                    return False
                except IOError:
                    if self._file.close_on_error:
                        self._file.close()
                    if fileobj.writeonly:
                        self._read_all = True
                        return False
                    else:
                        raise
            else:
                if (not data):
                    self._read_all = True
                    return False
                hdu = _BaseHDU.fromstring(data, **kwargs)
                self._data = data[(hdu._data_offset + hdu._data_size):]
            super(HDUList, self).append(hdu)
            if (len(self) == 1):
                self.update_extend()
            hdu._new = False
            if ('checksum' in kwargs):
                hdu._output_checksum = kwargs['checksum']
        except (VerifyError, ValueError) as exc:
            warnings.warn('Error    validating    header    for    HDU    #{}    (note:    Astropy    uses    zero-based    indexing).\n{}\nThere    may    be    extra    bytes    after    the    last    HDU    or    the    file    is    corrupted.'.format(len(self), indent(str(exc))), VerifyWarning)
            del exc
            self._read_all = True
            return False
    finally:
        compressed.COMPRESSION_ENABLED = saved_compression_enabled
        self._in_read_next_hdu = False
    return True
