in awswrangler/s3/_fs.py [0:0]
def readline(self, length: int | None = -1) -> bytes:
"""Read until the next line terminator."""
length = -1 if length is None else length
end: int = self._loc + self._s3_block_size
end = self._size if end > self._size else end
self._fetch(self._loc, end)
while True:
found: int = self._cache[self._loc - self._start :].find(self._newline.encode(encoding=self._encoding))
if 0 < length < found:
return self.read(length + 1)
if found >= 0:
return self.read(found + 1)
if self._end >= self._size:
return self.read(-1)
end = self._end + self._s3_half_block_size
end = self._size if end > self._size else end
self._fetch(self._loc, end)