code: def read(self, size=-1):
          
          part = self.peek(size)
          self._pos += len(part)
          return part
docs: Read bytes from the buffer and advance the read position. Returns
          the bytes in a bytestring.
  
          Parameters
          ----------
          size: int, optional
              Maximum number of bytes to read. If negative or not supplied, read
              all unread bytes in the buffer.
  
          Returns
          -------
          bytes