MCPcopy Index your code
hub / github.com/python/cpython / readline

Method readline

Lib/imaplib.py:376–409  ·  view source on GitHub ↗

Read line from remote.

(self)

Source from the content-addressed store, hash-verified

374
375
376 def readline(self):
377 """Read line from remote."""
378 # The comment in read() explains why we implement our own readline().
379
380 LF = b'\n'
381 parts = []
382 length = 0
383
384 while length < _MAXLINE:
385
386 if len(parts) < len(self._readbuf):
387 buf = self._readbuf[len(parts)]
388 else:
389 try:
390 buf = self.sock.recv(DEFAULT_BUFFER_SIZE)
391 except ConnectionError:
392 break
393 if not buf:
394 break
395 self._readbuf.append(buf)
396
397 pos = buf.find(LF)
398 if pos != -1:
399 pos += 1
400 parts.append(buf[:pos])
401 self._readbuf = [buf[pos:]] + self._readbuf[len(parts):]
402 break
403 parts.append(buf)
404 length += len(buf)
405
406 line = b''.join(parts)
407 if len(line) > _MAXLINE:
408 raise self.error("got more than %d bytes" % _MAXLINE)
409 return line
410
411
412 def send(self, data):

Callers 2

_get_lineMethod · 0.95
readlineMethod · 0.45

Calls 5

recvMethod · 0.45
appendMethod · 0.45
findMethod · 0.45
joinMethod · 0.45
errorMethod · 0.45

Tested by

no test coverage detected