'Read a single section of a sparse file.'

def readsparsesection(self, size):

    section = self.sparse.find(self.position)
    if (section is None):
        return ''
    else:
        size = min(size, ((section.offset + section.size) - self.position))
        if isinstance(section, _data):
            realpos = ((section.realpos + self.position) - section.offset)
            self.fileobj.seek((self.offset + realpos))
            self.position += size
            return self.fileobj.read(size)
        self.position += size
        return (NUL * size)
        return
