Edit File: feedparser.cpython-37.opt-2.pyc
B ����0��c�X������������������@���s����d�dgZ�ddlZddlmZ�ddlmZ�ddlmZ�ddlm Z �e� d�Ze� d �Ze� d �Z e� d �Ze� d�ZdZd Ze��ZG�dd��de�ZG�dd���d��ZG�dd��de�ZdS�)� FeedParser�BytesFeedParser�����N)�errors)�compat32)�deque)�StringIOz \r\n|\r|\nz(\r\n|\r|\n)z(\r\n|\r|\n)\Zz%^(From |[\041-\071\073-\176]*:|[\t ])��� c���������������@���s\���e�Zd�Zdd��Zdd��Zdd��Zdd��Zd d ��Zdd��Zd d��Z dd��Z dd��Zdd��ZdS�)�BufferedSubFilec�������������C���s$���t�dd�|�_t��|�_g�|�_d|�_d�S�)Nr���)�newlineF)r����_partialr����_lines� _eofstack�_closed)�self��r����5/opt/alt/python37/lib64/python3.7/email/feedparser.py�__init__5���s����zBufferedSubFile.__init__c�������������C���s���|�j��|��d�S�)N)r����append)r���Zpredr���r���r����push_eof_matcher@���s����z BufferedSubFile.push_eof_matcherc�������������C���s ���|�j����S�)N)r����pop)r���r���r���r����pop_eof_matcherC���s����zBufferedSubFile.pop_eof_matcherc�������������C���s<���|�j��d��|��|�j������|�j��d��|�j�����d|�_d�S�)Nr���T)r����seek� pushlines� readlines�truncater���)r���r���r���r����closeF���s ���� zBufferedSubFile.closec�������������C���sN���|�j�s|�jrdS�tS�|�j����}x*t|�j�D�]}||�r*|�j��|��dS�q*W�|S�)Nr���)r ���r����NeedMoreData�popleft�reversedr���� appendleft)r����lineZateofr���r���r����readlineN���s���� zBufferedSubFile.readlinec�������������C���s���|�j��|��d�S�)N)r ���r ���)r���r!���r���r���r���� unreadline`���s����zBufferedSubFile.unreadlinec�������������C���sx���|�j��|��d|kr d|kr d�S�|�j��d��|�j����}|�j��d��|�j�����|d��d�sj|�j��|�����|��|��d�S�)Nr ���� r������)r����writer���r���r����endswithr���r���)r����data�partsr���r���r����pushe���s���� zBufferedSubFile.pushc�������������C���s���|�j��|��d�S�)N)r ����extend)r����linesr���r���r���r���z���s����zBufferedSubFile.pushlinesc�������������C���s���|�S�)Nr���)r���r���r���r����__iter__}���s����zBufferedSubFile.__iter__c�������������C���s���|�����}|dkrt�|S�)Nr���)r"���� StopIteration)r���r!���r���r���r����__next__����s����zBufferedSubFile.__next__N) �__name__� __module__�__qualname__r���r���r���r���r"���r#���r*���r���r-���r/���r���r���r���r���r ���-���s���r ���c���������������@���s\���e�Zd�Zded�dd�Zdd��Zdd��Zd d ��Zdd��Zd d��Z dd��Z dd��Zdd��ZdS�)r���N)�policyc������������C���s����||�_�d|�_|d�kr<|jd�kr2ddlm}�||�_qn|j|�_n2||�_y||�j�d��W�n�tk rl���d|�_Y�nX�t��|�_g�|�_ |�� ��j|�_d�|�_ d�|�_d|�_d�S�)NFr���)�Message)r3���T)r3����_old_style_factoryZmessage_factoryZ email.messager4����_factory� TypeErrorr ����_input� _msgstack� _parsegenr/����_parse�_cur�_last�_headersonly)r���r6���r3���r4���r���r���r���r�������s$���� zFeedParser.__init__c�������������C���s ���d|�_�d�S�)NT)r>���)r���r���r���r����_set_headersonly����s����zFeedParser._set_headersonlyc�������������C���s���|�j��|��|�����d�S�)N)r8���r*����_call_parse)r���r(���r���r���r����feed����s����zFeedParser.feedc�������������C���s&���y|������W�n�tk r ���Y�nX�d�S�)N)r;���r.���)r���r���r���r���r@�������s����zFeedParser._call_parsec�������������C���sH���|�j�����|�����|����}|���dkrD|���sDt���}|�j� ||��|S�)N� multipart) r8���r���r@����_pop_message�get_content_maintypeZis_multipartr���Z!MultipartInvariantViolationDefectr3���� handle_defect)r����root�defectr���r���r���r�������s���� zFeedParser.closec�������������C���sn���|�j�r|����}n|�j|�jd�}|�jr<|�j���dkr<|�d��|�jrR|�jd��|��|�j�|��||�_||�_ d�S�)N)r3���zmultipart/digestzmessage/rfc822r%���) r5���r6���r3���r<����get_content_typeZset_default_typer9���Zattachr���r=���)r����msgr���r���r����_new_message����s���� zFeedParser._new_messagec�������������C���s(���|�j����}|�j�r|�j�d�|�_nd�|�_|S�)Nr%���)r9���r���r<���)r����retvalr���r���r���rC�������s ���� zFeedParser._pop_messagec�������������c���s:��|������g�}xb|�jD�]X}|tkr(tV��qt�|�sbt�|�s`t���}|�j� |�j |��|�j�|��P�|�|��qW�|�� |��|�jr�g�}x2|�j���}|tkr�tV��q�|dkr�P�|�|��q�W�|�j �t�|���d�S�|�j ���dk�r�x�|�j�tj��x$|����D�]}|tk�rtV��q�P�q�W�|����}|�j����x&|�j���}|tk�rFtV���q(P��q(W�x&|�j���}|tk�rntV���qPP��qPW�|dk�r�P�|�j�|��q�W�d�S�|�j ���dk�r�x(|����D�]}|tk�r�tV���q�P��q�W�|�����d�S�|�j ���dk�r�|�j ���}|d�k�rbt���}|�j� |�j |��g�}x.|�jD�]$}|tk�r<tV���q$|�|���q$W�|�j �t�|���d�S�t|�j �dd�����dk�r�t���}|�j� |�j |��d|�}t� d t�!|��d ��} d} g�}d}d} �x|�j���}|tk�r�tV���q�|dk�r�P�| �|�}|�r�|�"d ��r d} |�"d�}P�| �r�|�rn|d�}t#�$|�}|�r`|d�t%|�"d�����|d<�t�|�|�j _&d} |�j�|���q�xB|�j���}|tk�r�tV���q�| �|�}|�s�|�j�|��P��q�W�|�j�| j��x(|����D�]}|tk�r�tV���q�P��q�W�|�j'���dk�rf|�j'j(}|dk�r*d�|�j'_(n:|d�k �r�t#�$|�}|�r�t%|�"d��}|d�|���|�j'_(nD|�j'j)}t*|t��r�t#�$|�}|�r�|d�t%|�"d�����}||�j'_)|�j����|�����|�j |�_'n |�|���q�W�| �rBt�+��}|�j� |�j |��|�j �t�|���g�}x$|�jD�]}|tk�rtV���q�qW�t�|�|�j _(d�S�| �sdt�,��}|�j� |�j |��d�S�|�rrdg}ng�}x.|�jD�]$}|tk�r�tV���q~|�|���q~W�|�r�|d�}t-�|�}|�r�|t%|�"d��d���|d<�t�|�|�j _(d�S�g�}x.|�jD�]$}|tk�rtV���q�|�|���q�W�|�j �t�|���d�S�)Nr���zmessage/delivery-status�messagerB���zcontent-transfer-encoding�8bit)Z7bitrM���Zbinaryz--z(?P<sep>z4)(?P<end>--)?(?P<ws>[ \t]*)(?P<linesep>\r\n|\r|\n)?$TF�end�linesepr%���r���).rJ���r8���r����headerRE�match�NLCREr���Z MissingHeaderBodySeparatorDefectr3���rE���r<���r#���r����_parse_headersr>���r"���Zset_payload�EMPTYSTRING�joinrH���r���r:���rC���r���rD���Zget_boundaryZNoBoundaryInMultipartDefect�str�get�lowerZ-InvalidMultipartContentTransferEncodingDefect�re�compile�escape�group� NLCRE_eol�search�len�preambler=����epilogueZ_payload� isinstanceZStartBoundaryNotFoundDefectZCloseBoundaryNotFoundDefect� NLCRE_bol)r���Zheadersr!���rG���r,���rK���rI����boundaryZ separatorZ boundaryreZcapturing_preambler`���rO���Zclose_boundary_seen�moZlastlineZeolmora���rN���Zpayload� firstlineZbolmor���r���r���r:�������sf��� zFeedParser._parsegenc������� ������C���s\��d}g�}�x2t�|�D��]$\}}|d�dkrV|sJt�|�}|�j�|�j|��q|�|��q|rx|�jj|�j�|����dg��}}|� d�r�|dkr�t �|�}|r�|d�t|� d�����}|�j�|��qn:|t|�d�kr�|�j�|��d�S�t�|�}|�jj�|��q|�d�}|dk�r(t�d�}|�jj�|��q|d�|��}|g}qW�|�rX|�jj|�j�|����d�S�)Nr���r���z zFrom �����:zMissing header name.)� enumerater���Z#FirstHeaderLineIsContinuationDefectr3���rE���r<���r���Zset_rawZheader_source_parse� startswithr]���r^���r_���r\���Zset_unixfromr8���r#���ZMisplacedEnvelopeHeaderDefectZdefects�findZInvalidHeaderDefect) r���r,���Z lastheaderZ lastvalue�linenor!���rG���re����ir���r���r���rS������sF���� zFeedParser._parse_headers)N) r0���r1���r2���r���r���r?���rA���r@���r���rJ���rC���r:���rS���r���r���r���r���r�������s��� �~c�������������������s���e�Zd�Z��fdd�Z���ZS�)r���c����������������s���t����|�dd���d�S�)N�ascii�surrogateescape)�superrA����decode)r���r(���)� __class__r���r���rA�����s����zBytesFeedParser.feed)r0���r1���r2���rA���� __classcell__r���r���)rr���r���r�����s���)�__all__rY���Zemailr���Zemail._policybaser����collectionsr����ior���rZ���rR���rc���r]���ZNLCRE_crackrP���rT����NL�objectr���r ���r���r���r���r���r���r����<module>���s&��� [���