<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def peek(self, size=-1):
 """Get bytes from the buffer without advancing the read position. Returns the bytes in a bytestring. Parameters size: int, optional Maximum number of bytes to return. If negative or not supplied, return all unread bytes in the buffer. Returns ------- bytes """

        if size < 0 or size > len(self):
            size = len(self)

        part = self._bytes[self._pos:self._pos+size]
        return part