code: def read(self, n):
          '''Reads n bytes into the internal buffer'''
          bytes_wanted = n - self.buffer_length + self.pos + 1
          if bytes_wanted > 0:
              self._buffer_bytes(bytes_wanted)
  
          end_pos = self.pos + n
          ret = self.buffer[self.pos + 1:end_pos + 1]
          self.pos = end_pos
          return ref read(self, n):
          '''Reads n bytes into the internal buffer'''
          bytes_wanted = n - self.buffer_length + self.pos + 1
          if bytes_wanted > 0:
              self._buffer_bytes(bytes_wanted)
  
          end_pos = self.pos + n
          ret = self.buffer[self.pos + 1:end_pos + 1]
          self.pos = end_pos
          return ret
docs: Reads n bytes into the internal buffer