4| d Z ddlmZ ddlmZ ddlmZ g dZddlZddlmZm Z ddl mZmZ dd l mZ dd lmZ G d de Z G d de Z G d de Z G d de ZdS )z-A parser of RFC 2822 and MIME email messages. )unicode_literals)division)absolute_import)ParserHeaderParserBytesParserBytesHeaderParserN)StringIO TextIOWrapper) FeedParserBytesFeedParser)Message)compat32c ( e Zd ZefdZddZddZdS )r c P d|v r|d }|d= nt }|| _ || _ dS )a Parser 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 preceeded 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. policyN)r _classr )selfr _3to2kwargsr s o/builddir/build/BUILD/cloudlinux-venv-1.0.10/venv/lib/python3.11/site-packages/future/backports/email/parser.py__init__zParser.__init__ s: * {""[-BFT\H]H]f Fc t | j | j }|r| | d }|sn| | .| 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 Ti )r r r _set_headersonlyreadfeedclose)r fpheadersonly feedparserdatas r parsezParser.parse/ s~ DK@@@ *''))) "774==D OOD!!! " !!!r c J | t | | 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 )r" r r textr s r parsestrzParser.parsestrA s zz(4..kzBBBr NF)__name__ __module____qualname__r r r" r' r r r r sY % 4" " " "$C C C C C Cr r c e Zd ZddZddZdS )r Tc : t | |d S NT)r r" r r r s r r" zHeaderParser.parseN s ||D"d+++r c : t | |d S r/ )r r' r% s r r' zHeaderParser.parsestrQ s tT4000r NT)r) r* r+ r" r' r, r r r r M s<