code: def read_line(self):
          
          buf = b''
          while not self.eof and buf.endswith(b'\n') is False:
              buf += yield from self.read_byte()
  
          if self.eof:
              buf = b''
  
          # Remove \n character
          buf = buf.replace(b'\n', b'')
  
          return buf
docs: Read data until \n is found