def status(self):
line = next(self.__line_gen()).rstrip()<EOL>parts = line.split(None, <NUM_LIT:1>)<EOL>try:<EOL><INDENT>code, message = int(parts[<NUM_LIT:0>]), "<STR_LIT>"<EOL><DEDENT>except ValueError:<EOL><INDENT>raise NNTPProtocolError(line)<EOL><DEDENT>if code < <NUM_LIT:100> or code >= <NUM_LIT>:<EOL><INDENT>raise NNTPProtocolError(line)<EOL><DEDENT>if len(parts) > <NUM_LIT:1>:<EOL><INDENT>message = parts[<NUM_LIT:1>]<EOL><DEDENT>if <NUM_LIT> <= code <= <NUM_LIT>:<EOL><INDENT>raise NNTPTemporaryError(code, message)<EOL><DEDENT>if <NUM_LIT> <= code <= <NUM_LIT>:<EOL><INDENT>raise NNTPPermanentError(code, message)<EOL><DEDENT>return code, message<EOL>
Reads a command response status.

        If there is no response message then the returned status message will
        be an empty string.

        Raises:
            NNTPError: If data is required to be read from the socket and fails.
            NNTPProtocolError: If the status line can't be parsed.
            NNTPTemporaryError: For status code 400-499
            NNTPPermanentError: For status code 500-599

        Returns:
            A tuple of status code (as an integer) and status message.