code: def read1(self, size=-1):
          
          # Usually, read1() calls _fp.read() at most once. However, sometimes
          # this does not give enough data for the decompressor to make progress.
          # In this case we make multiple reads, to avoid returning b"".
          self._check_can_read()
          if size is None:
              #This is not needed on Python 3 where the comparison to zero
              #will fail with a TypeError. 
              raise TypeError("Read size should be an integer, not None")
          if (size == 0 or self._mode == _MODE_READ_EOF or
              not self._fill_buffer()):
              return b""
          if 0 < size < len(self._buffer):
              data = self._buffer[:size]
              self._buffer = self._buffer[size:]
          else:
              data = self._buffer
              self._buffer = None
          self._pos += len(data)
          return data
docs: Read up to size uncompressed bytes, while trying to avoid
          making multiple reads from the underlying stream.
  
          Returns b"" if the file is at EOF.