fodZgdZddlmZmZddlmZmZddlm Z GddZ Gdd e Z Gd d Z Gd d e Z y)z-A parser of RFC 2822 and MIME email messages.)Parser HeaderParser BytesParserBytesHeaderParser FeedParserBytesFeedParser)StringIO TextIOWrapper)rr)compat32c*eZdZdeddZddZddZy)rNpolicyc ||_||_y)aParser of RFC 2822 and MIME email messages. Creates an in-memory object tree representing the email message, which can then be manipulated and turned over to a Generator to return the textual representation of the message. The string must be formatted as a block of RFC 2822 headers and header continuation lines, optionally preceded by a `Unix-from' header. The header block is terminated either by the end of the string or by a blank line. _class is the class to instantiate for new message objects when they must be created. This class must have a constructor that can take zero arguments. Default is Message.Message. The policy keyword specifies a policy object that controls a number of aspects of the parser's operation. The default policy maintains backward compatibility. N)_classr)selfrrs #/usr/lib/python3.12/email/parser.py__init__zParser.__init__s*  ct|j|j}|r|j|j dx}r%|j ||j dx}r%|j S)a\Create a message structure from the data in a file. Reads all the data from the file and returns the root of the message structure. Optional headersonly is a flag specifying whether to stop parsing after reading the headers or not. The default is False, meaning it parses the entire contents of the file. r i )rrr_set_headersonlyreadfeedclose)rfp headersonly feedparserdatas rparsez Parser.parse)sj  DKK@   ' ' )ggdm#d# OOD !ggdm#d#!!rc:|jt||S)a-Create a message structure from a string. Returns the root of the message structure. Optional headersonly is a flag specifying whether to stop parsing after reading the headers or not. The default is False, meaning it parses the entire contents of the file. r)rr rtextrs rparsestrzParser.parsestr8szz(4.kzBBr)NF)__name__ __module__ __qualname__r rrr#rrrrsh0 "CrrceZdZddZddZy)rc0tj||dSNT)rrrrrs rrzHeaderParser.parseDs||D"d++rc0tj||dSr+)rr#r!s rr#zHeaderParser.parsestrGstT400rNT)r%r&r'rr#r(rrrrCs ,1rrc"eZdZdZddZddZy)rc$t|i||_y)aParser of binary RFC 2822 and MIME email messages. Creates an in-memory object tree representing the email message, which can then be manipulated and turned over to a Generator to return the textual representation of the message. The input must be formatted as a block of RFC 2822 headers and header continuation lines, optionally preceded by a `Unix-from' header. The header block is terminated either by the end of the input or by a blank line. _class is the class to instantiate for new message objects when they must be created. This class must have a constructor that can take zero arguments. Default is Message.Message. N)rparser)rargskws rrzBytesParser.__init__Ms d)b) rct|dd} |jj|||jS#|jwxYw)acCreate a message structure from the data in a binary file. Reads all the data from the file and returns the root of the message structure. Optional headersonly is a flag specifying whether to stop parsing after reading the headers or not. The default is False, meaning it parses the entire contents of the file. asciisurrogateescape)encodingerrors)r r1rdetachr,s rrzBytesParser.parse_s?28I J ;;$$R5 IIKBIIKs <Ac`|jdd}|jj||S)a2Create a message structure from a byte string. Returns the root of the message structure. Optional headersonly is a flag specifying whether to stop parsing after reading the headers or not. The default is False, meaning it parses the entire contents of the file. ASCIIr6)r8)decoder1r#r!s r parsebyteszBytesParser.parsebytesns.{{7+<{={{##D+66rNr$)r%r&r'rrr=r(rrrrKs*$  7rrceZdZddZddZy)rc2tj||dSNTr )rrr,s rrzBytesHeaderParser.parse{s  rt <rGsN 4 ,'8&0C0Cf161,7,7^D Dr