code: def read(self, size=-1):
          
          self._check_can_read()
          if size is None:
              #This is not needed on Python 3 where the comparison to zeo
              #will fail with a TypeError.
              raise TypeError("Read size should be an integer, not None")
          if self._mode == _MODE_READ_EOF or size == 0:
              return b""
          elif size < 0:
              return self._read_all()
          else:
              return self._read_block(size)
docs: Read up to size uncompressed bytes from the file.
  
          If size is negative or omitted, read until EOF is reached.
          Returns b"" if the file is already at EOF.