code: def write(self, data):
          
          data_off = 0
          while data_off < len(data):
              left = len(self._buf) - self._pos
              if left <= 0:
                  self._write_packet(final=False)
              else:
                  to_write = min(left, len(data) - data_off)
                  self._buf[self._pos:self._pos + to_write] = data[data_off:data_off + to_write]
                  self._pos += to_write
                  data_off += to_write
docs: Writes given bytes buffer into the stream
  
          Function returns only when entire buffer is written