def article(self, msgid_article=None, decode=None):
args = None<EOL>if msgid_article is not None:<EOL><INDENT>args = utils.unparse_msgid_article(msgid_article)<EOL><DEDENT>code, message = self.command("<STR_LIT>", args)<EOL>if code != <NUM_LIT>:<EOL><INDENT>raise NNTPReplyError(code, message)<EOL><DEDENT>parts = message.split(None, <NUM_LIT:1>)<EOL>try:<EOL><INDENT>articleno = int(parts[<NUM_LIT:0>])<EOL><DEDENT>except ValueError:<EOL><INDENT>raise NNTPProtocolError(message)<EOL><DEDENT>headers = utils.parse_headers(self.info_gen(code, message))<EOL>decode = "<STR_LIT>" in headers.get("<STR_LIT>", "<STR_LIT>")<EOL>escape = <NUM_LIT:0><EOL>crc32 = <NUM_LIT:0><EOL>body = []<EOL>for line in self.info_gen(code, message):<EOL><INDENT>if decode:<EOL><INDENT>if line.startswith("<STR_LIT>"):<EOL><INDENT>continue<EOL><DEDENT>line, escape, crc32 = yenc.decode(line, escape, crc32)<EOL><DEDENT>body.append(line)<EOL><DEDENT>return articleno, headers, "<STR_LIT>".join(body)<EOL>
ARTICLE command.