'Read up to size uncompressed bytes, while trying to avoid
making multiple reads from the underlying stream. Reads up to a
buffer\'s worth of data if size is negative.
Returns b\'\' if the file is at EOF.'

def read1(self, size=(-1)):

    with self._lock:
        self._check_can_read()
        if (size < 0):
            size = io.DEFAULT_BUFFER_SIZE
        return self._buffer.read1(size)
