parameters: (self, size=-1)
return_statement: return bytes(res)
docstring: r"""Read and return a line of bytes from the stream.
  
          If size is specified, at most size bytes will be read.
          Size should be an int.
  
          The line terminator is always b'\n' for binary files; for text
          files, the newlines argument to open can be used to select the line
          terminator(s) recognized.
docstring_summary: r"""Read and return a line of bytes from the stream.
docstring_tokens: r Read and return a line of bytes from the stream .
function: def readline(self, size=-1):
          r"""Read and return a line of bytes from the stream.
  
          If size is specified, at most size bytes will be read.
          Size should be an int.
  
          The line terminator is always b'\n' for binary files; for text
          files, the newlines argument to open can be used to select the line
          terminator(s) recognized.
          """
          # For backwards compatibility, a (slowish) readline().
          if hasattr(self, "peek"):
              def nreadahead():
                  readahead = self.peek(1)
                  if not readahead:
                      return 1
                  n = (readahead.find(b"\n") + 1) or len(readahead)
                  if size >= 0:
                      n = min(n, size)
                  return n
          else:
              def nreadahead():
                  return 1
          if size is None:
              size = -1
          else:
              try:
                  size_index = size.__index__
              except AttributeError:
                  raise TypeError(f"{size!r} is not an integer")
              else:
                  size = size_index()
          res = bytearray()
          while size < 0 or len(res) < size:
              b = self.read(nreadahead())
              if not b:
                  break
              res += b
              if res.endswith(b"\n"):
                  break
          return bytes(res)
function_tokens: def readline ( self , size = - 1 ) : # For backwards compatibility, a (slowish) readline(). if hasattr ( self , "peek" ) : def nreadahead ( ) : readahead = self . peek ( 1 ) if not readahead : return 1 n = ( readahead . find ( b"\n" ) + 1 ) or len ( readahead ) if size >= 0 : n = min ( n , size ) return n else : def nreadahead ( ) : return 1 if size is None : size = - 1 else : try : size_index = size . __index__ except AttributeError : raise TypeError ( f"{size!r} is not an integer" ) else : size = size_index ( ) res = bytearray ( ) while size < 0 or len ( res ) < size : b = self . read ( nreadahead ( ) ) if not b : break res += b if res . endswith ( b"\n" ) : break return bytes ( res )