Edit File: feedparser.cpython-36.opt-2.pyc
3 � \�X������������������@���s����d�dgZ�ddlZddlmZ�ddlmZ�ddlmZ�ddlm Z �ej d�Zej d �Zej d �Z ej d �Zej 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����(/usr/lib64/python3.6/email/feedparser.py�__init__5���s����zBufferedSubFile.__init__c�������������C���s���|�j�j|��d�S�)N)r����append)r���Zpredr���r���r����push_eof_matcher@���s����z BufferedSubFile.push_eof_matcherc�������������C���s ���|�j�j��S�)N)r����pop)r���r���r���r����pop_eof_matcherC���s����zBufferedSubFile.pop_eof_matcherc�������������C���s<���|�j�jd��|�j|�j�j����|�j�jd��|�j�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�j��}x*t|�j�D�]}||�r*|�j�j|��dS�q*W�|S�)Nr���)r ���r����NeedMoreData�popleft�reversedr���� appendleft)r����lineZateofr���r���r����readlineN���s���� zBufferedSubFile.readlinec�������������C���s���|�j�j|��d�S�)N)r ���r ���)r���r!���r���r���r���� unreadline`���s����zBufferedSubFile.unreadlinec�������������C���sx���|�j�j|��d|kr d|kr d�S�|�j�jd��|�j�j��}|�j�jd��|�j�j���|d�jd�sj|�j�j|j����|�j|��d�S�)Nr ���� r����������)r����writer���r���r����endswithr���r���)r����data�partsr���r���r����pushe���s���� zBufferedSubFile.pushc�������������C���s���|�j�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���|�j���}|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.���r0���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 ��j|�_d�|�_ d�|�_d|�_d�S�)NFr���)�Message)r4���T)r4����_old_style_factoryZmessage_factoryZ email.messager5����_factory� TypeErrorr ����_input� _msgstack� _parsegenr0����_parse�_cur�_last�_headersonly)r���r7���r4���r5���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�j|��|�j���d�S�)N)r9���r+����_call_parse)r���r)���r���r���r����feed����s����zFeedParser.feedc�������������C���s&���y|�j����W�n�tk r ���Y�nX�d�S�)N)r<���r/���)r���r���r���r���rA�������s����zFeedParser._call_parsec�������������C���sJ���|�j�j���|�j���|�j��}|j��dkrF|j���rFtj��}|�jj ||��|S�)N� multipart) r9���r���rA����_pop_message�get_content_maintypeZis_multipartr���Z!MultipartInvariantViolationDefectr4���� handle_defect)r����root�defectr���r���r���r�������s���� zFeedParser.closec�������������C���sn���|�j�r|�j��}n|�j|�jd�}|�jr<|�jj��dkr<|jd��|�jrR|�jd�j|��|�jj|��||�_||�_ d�S�)N)r4���zmultipart/digestzmessage/rfc822r%���r&���) r6���r7���r4���r=����get_content_typeZset_default_typer:���Zattachr���r>���)r����msgr���r���r����_new_message����s���� zFeedParser._new_messagec�������������C���s(���|�j�j��}|�j�r|�j�d�|�_nd�|�_|S�)Nr%���r&���)r:���r���r=���)r����retvalr���r���r���rD�������s ���� zFeedParser._pop_messagec�������������c���s6��|�j����g�}xb|�jD�]X}|tkr(tV��qtj|�sbtj|�s`tj��}|�jj |�j |��|�jj|��P�|j|��qW�|�j |��|�jr�g�}x2|�jj��}|tkr�tV��q�|dkr�P�|j|��q�W�|�j jtj|���d�S�|�j j��dk�r�x�|�jjtj��x$|�j��D�]}|tk�rtV��q�P�q�W�|�j��}|�jj���x&|�jj��}|tk�rFtV���q(P��q(W�x&|�jj��}|tk�rntV���qPP��qPW�|dk�r�P�|�jj|��q�W�d�S�|�j j��dk�r�x(|�j��D�]}|tk�r�tV���q�P��q�W�|�j���d�S�|�j j��dk�r�|�j j��}|d�k�rbtj��}|�jj |�j |��g�}x.|�jD�]$}|tk�r<tV���q$|j|���q$W�|�j jtj|���d�S�|�j jdd�j��dk�r�tj��}|�jj |�j |��d |�}tjd tj |��d��} d} g�}d }d } �x|�jj��}|tk�r�tV���q�|dk�r�P�| j|�}|�r�|j!d��rd} |j!d�}P�| �r~|�rj|d�}t"j#|�}|�r\|d�t$|j!d�����|d<�tj|�|�j _%d } |�jj|���q�xB|�jj��}|tk�r�tV���q�| j|�}|�s�|�jj|��P��q�W�|�jj| j��x(|�j��D�]}|tk�r�tV���q�P��q�W�|�j&j��dk�rb|�j&j'}|dk�r&d�|�j&_'n:|d�k �r�t"j#|�}|�r�t$|j!d��}|d�|���|�j&_'nD|�j&j(}t)|t*��r�t"j#|�}|�r�|d�t$|j!d�����}||�j&_(|�jj���|�j���|�j |�_&n |j|���q�W�| �r>tj+��}|�jj |�j |��|�j jtj|���g�}x$|�jD�]}|tk�rtV���q�qW�tj|�|�j _'d�S�| �s`tj,��}|�jj |�j |��d�S�|�rndg}ng�}x.|�jD�]$}|tk�r�tV���qz|j|���qzW�|�r�|d�}t-j|�}|�r�|t$|j!d��d���|d<�tj|�|�j _'d�S�g�}x.|�jD�]$}|tk�rtV���q�|j|���q�W�|�j jtj|���d�S�)Nr���zmessage/delivery-status�messagerC���zcontent-transfer-encoding�8bit�7bit�binaryz--z(?P<sep>z4)(?P<end>--)?(?P<ws>[ \t]*)(?P<linesep>\r\n|\r|\n)?$TF�end�linesepr%���r���)rO���rN���rP���r&���r&���).rK���r9���r����headerRE�match�NLCREr���Z MissingHeaderBodySeparatorDefectr4���rF���r=���r#���r����_parse_headersr?���r"���Zset_payload�EMPTYSTRING�joinrI���r���r;���rD���r���rE���Zget_boundaryZNoBoundaryInMultipartDefect�get�lowerZ-InvalidMultipartContentTransferEncodingDefect�re�compile�escape�group� NLCRE_eol�search�len�preambler>����epilogueZ_payload� isinstance�strZStartBoundaryNotFoundDefectZCloseBoundaryNotFoundDefect� NLCRE_bol)r���Zheadersr!���rH���r-���rL���rJ����boundaryZ separatorZ boundaryreZcapturing_preamblerb���rR���Zclose_boundary_seen�moZlastlineZeolmorc���rQ���Zpayload� firstlineZbolmor���r���r���r;�������sf��� zFeedParser._parsegenc������� ������C���s^��d}g�}�x4t�|�D��]&\}}|d�dkrV|sJtj|�}|�jj|�j|��q|j|��q|rx|�jj|�jj|����dg��}}|j d���r�|dkr�t j|�}|r�|d�t|j d�����}|�jj|��qn:|t|�d�kr�|�jj|��d�S�tj|�}|�jjj|��q|jd�}|dk�r*tjd�}|�jjj|��q|d�|��}|g}qW�|�rZ|�jj|�jj|����d�S�)Nr���r���z zFrom r%����:zMissing header name.)� enumerater���Z#FirstHeaderLineIsContinuationDefectr4���rF���r=���r���Zset_rawZheader_source_parse� startswithr_���r`���ra���r^���Zset_unixfromr9���r#���ZMisplacedEnvelopeHeaderDefectZdefects�findZInvalidHeaderDefect) r���r-���Z lastheaderZ lastvalue�linenor!���rH���rh����ir���r���r���rV������sF���� zFeedParser._parse_headers)N) r1���r2���r3���r���r���r@���rB���rA���r���rK���rD���r;���rV���r���r���r���r���r�������s��� �~c�������������������s���e�Zd�Z��fdd�Z���ZS�)r���c����������������s���t���j|jdd���d�S�)N�ascii�surrogateescape)�superrB����decode)r���r)���)� __class__r���r���rB�����s����zBytesFeedParser.feed)r1���r2���r3���rB���� __classcell__r���r���)rt���r���r�����s���)�__all__r[���Zemailr���Zemail._policybaser����collectionsr����ior���r\���rU���rf���r_���ZNLCRE_crackrS���rW����NL�objectr���r ���r���r���r���r���r���r����<module>���s&��� [���